开发者中心

应用程序

以下API没有列入"/platform", 可以通过"/application"访问。

应用程序接口组成:

  • 应用程序API 用于应用程序集合的URI和URI模板, 可以用各种条件查询应用程序。
  • 应用程序集合 用于应用程序集合和创建应用程序。
  • 应用程序 用于应用程序查询和删除。

注意: 所有的PUT/POST请求必须设置accept头, 否则会返回空的应答正文。

应用程序API

应用程序API [application/vnd.com.nsn.cumulocity.applicationApi+json]
名称 类型 次数 描述
self URL 1 此资源链接地址。
applicationById Application/URI-Template 1 应用程序引用 (占位符 {id})
applications ApplicationCollection 1 应用程序集合
applicationsByName ApplicationCollection URI-Template 1 特定应用程序名称的只读集合 (占位符 {name}).
applicationsByTenant ApplicationCollection URI-Template 1 特定租户订阅的应用程序只读集合 (占位符 {tenant}).
applicationsByOwner ApplicationCollection URI-Template 1 特定租户拥有的应用程序只读集合 (占位符 {tenant}).
GET - 查询应用程序API资源

应答正文: 应用程序Api

所需角色: ROLE_Application_READ

请求示例:

GET /application
                        Host: ...
                        Authorization: Basic ...
                      

应答示例:

HTTP/1.1 200 OK
                        Content-Type: application/vnd.com.nsn.cumulocity.ApplicationApi+json;ver=...
                        Content-Length: ...
                        {
                        "self" : "<<应用程序API URL>>",
                        "applicationsByID" : "<<应用程序集合 URL>>/{id}",
                        "applications" : "<<应用程序集合 URL>>",
                        "applicationsByName" : "<<应用程序API URL>>/applicationByName/{名称}",
                        "applicationsByOwner" : "<<应用程序API URL>>/applicationsByOwner/{租户名}",
                        "applicationsByTenant" : "<<应用程序API URL>>/applicationsByTenant/{租户名}"
                      }
                    

应用程序集合

应用程序集合 [application/vnd.com.nsn.cumulocity.applicationCollection+json]
名称 类型 次数 描述
self URI 1 此资源链接地址。
applications Application 0..n 应用程序列表, 如下所示。
statistics PagingStatistics 1 分页统计信息。
prev URI 0..1 上一页链接。
next URI 0..1 下一页链接。
GET - 查询应用程序集合

应答正文: 应用程序集合

所需角色: ROLE_APPLICATIN_MANAGEMENT_READ

请求示例:

GET /application/applications
                      Host: ...
                      Authorization: Basic ...
                    

应答示例:

HTTP/1.1 200 OK
                      Content-Type: application/vnd.com.nsn.cumulocity.applicationCollection+json;ver=...
                      Content-Length: ...
                      {
                      "self" : "...",
                      "next" : "...",
                      "prev" : "...",
                      "applications": [
                      {
                      "availability": "PRIVATE",
                      "id": "101",
                      "key": "...",
                      "name": "myOwnApplcation",
                      "owner": {
                      "self": "...",
                      "tenant": {
                      "id": "test"
                    }
                  },
                  "self": "...",
                  "type": "HOSTED",
                  "contextPath": "/my_own_application",
                  "resourcesUrl":"...",
                  "resourcesUsername": "...",
                  "resourcesPassword": "..."
                },
                {
                "availability": "MARKET",
                "id": "3",
                "key": "...",
                "name": "energyapp",
                "owner": {
                "self": "...",
                "tenant": {
                "id": "management"
              }
            },
            "self": "...",
            "type": "EXTERNAL",
            "externalUrl": "..."

          }
          ],
          "statistics": {
          "currentPage": 1,
          "pageSize": 5,
          "totalPages": 1
        }
      }
    
POST - 创建应用程序

请求正文: 应用程序

应答正文: 应用程序

所需角色: ROLE_APPLICATION_MANAGEMENT_ADMIN.

请求示例:

POST /application/applications
      Host: ...
      Authorization: Basic ...
      Content-Length: ...
      Content-Type: application/vnd.com.nsn.cumulocity.application+json;ver=...

      {
      "key": "vehicleControlApplicationSecretKey",
      "name": "vehicleControlApplication",
      "type": "HOSTED",
      "contextPath": "/vehicleControlApplication",
      "resourcesUrl":"http://external.host.com/basedir"
    }
  

应答示例:

HTTP/1.1 201 Created
    Content-Type: application/vnd.com.nsn.cumulocity.application+json;ver=...
    Content-Length: ...
    Location: <<新应用程序URL>>

    {
    "availability": "PRIVATE",
    "id": "105",
    "key": "...",
    "name": "vehicleControlApplication",
    "owner": {
    "self": "...",
    "tenant": {
    "id": "taxiCorp"
  }
},
"self": "...",
"type": "HOSTED",
"contextPath": "/vehicleControlApplication",
"resourceUrl":"http://external.host.com/basedir",
"resourcesUsername": "..."
}

应用程序

应用程序 [application/vnd.com.nsn.cumulocity.application+json;ver=0.9]
名称 类型 次数 描述 PUT/POST
self URL 1 此资源的链接地址。
id String 1 应用程序唯一标志。
name String 1 应用程序名称 POST: 必选 PUT: 可选
key String 1 应用程序共享密钥 POST: 必选 PUT: 可选
type String 1 应用程序类型。值可能是: EXTERNAL, HOSTED, MICROSERVICE POST: 必选 PUT: 否
availability String 0..1 其他租户访问级别。值可能是 : "MARKET", "PRIVATE"(缺省) 可选
owner TenantReference 1 此应用程序的所有者
contextPath String 0..1 托管应用程序的上下文路径 POST: 必选 (应用程序类型为HOSTED时) PUT: 可选
resourcesUrl String 0..1 托管在外部服务器的应用程序根目录URL POST: 必选 (应用程序类型为HOSTED时) PUT: 可选
resourcesUsername String 0..1 访问资源Url的授权用户名 可选
resourcesPassword String 0..1 访问资源Url的授权密码 可选
externalUrl String 0..1 外部应用程序的URL POST: 必选 (应用程序类型为EXTERNAL时)

PUT: 可选|

POST - 刷新应用程序

"刷新"资源的POST请求会重新部署包含在应用程序中的CEL模块。如果更新应用程序中的CEL代码执行此操作。请求和应答没有正文。

所需角色: ROLE_APPLICATION_MANAGMENT_ADMIN

请求示例:

POST /applications/application/<<应用程序Id>>/refresh
  Host: ...
  Authorization: Basic ...

应答示例:

204 No Content
POST - 克隆应用程序

"克隆"资源的POST请求基于已有的应用程序创建新应用程序。 属性复制到新创建的应用程序。 对于名称, 密钥和上下文路径都添加"clone"前缀以保证唯一性。 如果目标应用程序是托管的并且有活跃的版本, 新应用程序也会有同样内容的活跃版本。 应答包含新创建的应用程序。

所需角色: ROLE_APPLICATION_MANAGMENT_ADMIN

请求示例:

POST /application/applications/<<应用程序Id>>/clone HTTP/1.1
    Authorization: Basic ...
    Accept: application/vnd.com.nsn.cumulocity.application+json
  

应答示例:

HTTP/1.1 201 Created
    Location: .../application/applications/{{应用程序Id}}
    Content-Type: application/vnd.com.nsn.cumulocity.application+json; charset=UTF-8; ver=0.9

    {
    "activeVersionId": "10414",
    "availability": "MARKET",
    "contextPath": "clonetest",
    "id": "1115",
    "key": "clonesecretKeyForTheApplication",
    "manifest": {},
    "name": "clonetestApplicationName",
    "owner": {
    "self": ".../tenant/tenants/management",
    "tenant": {
    "id": "management"
  }
},
"resourcesUrl": "/test",
"self": ".../application/applications/1115",
"type": "HOSTED"
}
PUT - 更新应用程序

请求正文: 应用程序

应答正文: 应用程序 (如果有"ACCEPT"头)。

所需角色: ROLE_APPLICATION_MANAGMENT_ADMIN

请求示例:

PUT /application/applications/<<应用程序Id>>
  Host: ...
  Authorization: Basic ...
  Content-Length: ...
  Content-Type: application/vnd.com.nsn.cumulocity.application+json;ver=...
  {
  "availability" : "MARKET"
}
GET - 查询应用程序

应答正文: 应用程序

所需角色: ROLE_APPLICATION_MANAGEMENT_READ

应答示例:

HTTP/1.1 200 OK
  Content-Type: application/vnd.com.nsn.cumulocity.application+json;ver=...
  Content-Length: ...
  {
  "availability": "PRIVATE",
  "id": "105",
  "key": "...",
  "name": "vehicleControlApplication",
  "owner": {
  "self": "...",
  "tenant": {
  "id": "taxiDrive"
}
},
"self": "...",
"type": "EXTERNAL",
"externalUrl":"http://external.host.com/application"
}
DELETE - 删除应用程序

请求正文: N/A.

应答正文: N/A.

所需角色: ROLE_APPLICATION_MANAGMENT_ADMIN 以及所有者

注意: 应用程序为PRIVATE或者没有订阅者时可以删除。

请求示例: 删除应用程序

DELETE /application/applications/<<应用程序Id>>
 Host: [主机名]
 Authorization: Basic xxxxxxxxxxxxxxxxxxx

应答示例:

HTTP/1.1  204 NO CONTENT