开发者中心

事件

事件接口包括三个部分:

  • 事件API资源将URI和URI模板返回到事件集合, 使得可以检索指定类型和/或特定源设备的所有事件或事件。
  • 事件集合资源检索事件并启用创建新事件。
  • 事件资源表示可以查询和删除的各个事件。

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

事件API

事件API [application/vnd.com.nsn.cumulocity.eventApi+json]
名称 类型 次数 描述
self URL 1 资源链接。
events EventCollection 1 所有事件集合。
eventsForType EventCollection URI template 1 所有特定类型事件的只读集合 (占位符 {type})。
eventsForSource EventCollection URI template 1 来自特定源对象的所有事件的只读集合 (占位符 {source})。
eventsForSourceAndType EventCollection URI template 1 特定类型和特定源的所有事件的只读集合 (占位符 {type} 和 {source})。
eventsForTime EventCollection URI template 1 来自特定时间段的所有事件的只读集合 (占位符 {dateFrom}, {dateTo})。
eventsForFragmentType EventCollection URI template 1 包含特定片段类型的所有事件的只读集合 (占位符 {fragmentType})。
eventsForSourceAndTime EventCollection URI template 1 来自特定时间段的特定源对象的所有事件的只读集合 (占位符 {source}, {dateFrom}, {dateTo})。
eventsForSourceAndFragmentType EventCollection URI template 1 包含特定片段类型的特定源对象的所有事件的只读集合 (placeholders {source}, {fragmentType}).
eventsForDateAndFragmentType EventCollection URI template 1 包含特定片段类型的特定时间段内所有事件的只读集合 (占位符 {dateFrom}, {dateTo}, {fragmentType})。
eventsForFragmentTypeAndType EventCollection URI template 1 包含特定片段类型的特定类型的所有事件的只读集合 (占位符 {fragmentType}, {type}).
eventsForTimeAndType EventCollection URI template 1 对特定时间段内具有特定类型的所有事件的只读集合 (placeholders {type}, {dateFrom}, {dateTo})。
eventsForSourceAnd DateAndFragmentType EventCollection URI template 1 来自特定源对象的所有事件的只读集合, 包含特定时间段内的特定片段类型 (占位符 {source}, {dateFrom}, {dateTo}, {fragmentType})。
eventsForSourceAnd DateAndFragmentTypeAndType EventCollection URI template 1 来自特定源对象的所有事件的只读集合, 具有特定类型, 包含特定时段的特定片段类型 (占位符 {source}, {dateFrom}, {dateTo}, {fragmentType}, {type})。
eventsForSourceAnd FragmentTypeAndType EventCollection URI template 1 来自特定源对象的所有事件的只读集合, 具有特定类型, 包含特定片段类型 (占位符 {source}, {fragmentType}, {type})。
eventsForSourceAndTimeAndType EventCollection URI template 1 来自特定时间段的特定源对象(具有特定类型)的所有事件的只读集合 (占位符 {source}, {type}, {dateFrom}, {dateTo})。
eventsForDateAnd FragmentTypeAndType EventCollection URI template 1 来自特定时间段的特定类型的所有事件的只读集合, 包含特定片段类型 (占位符 {type}, {dateFrom}, {dateTo}, {fragmentType})。
GET - 查询事件API资源

应答正文: 查询事件API

所需角色: ROLE_EVENT_READ 请求示例: 查询事件API资源信息

GET /event
                       Host: [hostname]
                       Authorization: Basic xxxxxxxxxxxxxxxxxxx
                       Accept: application/vnd.com.nsn.cumulocity.eventApi+json;ver=0.9
                     

应答示例:

HTTP/1.1 200 OK
                      Content-Type: application/vnd.com.nsn.cumulocity.eventApi+json;ver=...
                      Content-Length: ...
                      {
                      "self" : "<<Event API URL>>",
                      "events" : {
                      "self" :"<<EventCollection URL>>"
                    },
                    "eventsForType" : "<<EventCollection URL>>?type={type}",
                    "eventsForSource" : "<<EventCollection URL>>?source={source}",
                    "eventsForTime" : "<<EventCollection URL>>?dateFrom={dateFrom}&dateTo={dateTo}",
                    "eventsForFragmentType" : "<<EventCollection URL>>?fragmentType={fragmentType}",
                    "eventsForSourceAndType" : "<<EventCollection URL>>?type={type}&source={source}",
                    "eventsForSourceAndTime" : "<<EventCollection URL>>?source={source}&dateFrom={dateFrom}&dateTo={dateTo}",
                    "eventsForSourceAndFragmentType" : "<<EventCollection URL>>?source={source}&fragmentType={fragmentType}",
                    "eventsForDateAndFragmentType" : "<<EventCollection URL>>?dateFrom={dateFrom}&dateTo={dateTo}&fragmentType={fragmentType}",
                    "eventsForFragmentTypeAndType" : "<<EventCollection URL>>?fragmentType={fragmentType}&type={type}",
                    "eventsForTimeAndType" : "<<EventCollection URL>>?dateFrom={dateFrom}&dateTo={dateTo}&type={type}",
                    "eventsForSourceAndDateAndFragmentType" : "<<EventCollection URL>>?source={source}&dateFrom={dateFrom}&dateTo={dateTo}&fragmentType={fragmentType}",
                    "eventsForSourceAndDateAndFragmentTypeAndType" : "<<EventCollection URL>>?source={source}&dateFrom={dateFrom}&dateTo={dateTo}&fragmentType={fragmentType}&type={type}",
                    "eventsForSourceAndFragmentTypeAndType" : "<<EventCollection URL>>?source={source}&fragmentType={fragmentType}&type={type}",
                    "eventsForSourceAndTimeAndType" : "<<EventCollection URL>>?source={source}&dateFrom={dateFrom}&dateTo={dateTo}&type={type}",
                    "eventsForDateAndFragmentTypeAndType" : "<<EventCollection URL>>?dateFrom={dateFrom}&dateTo={dateTo}&fragmentType={fragmentType}&type={type}"
                  }
                

事件集合

事件集合 [application/vnd.com.nsn.cumulocity.eventCollection+json]
名称 类型 次数 描述
self URI 1 资源链接。
events Event 0..n 事件列表,如下所示。
statistics PagingStatistics 1 分页统计信息。
prev URI 0..1 上一页链接。
next URI 0..1 下一页链接。
GET - 查询事件集合

应答正文: 事件集合

所需角色: ROLE_EVENT_READ 请求示例: 查询事件集合信息

GET /event/events
                   Host: [hostname]
                   Authorization: Basic xxxxxxxxxxxxxxxxxxx
                   Accept: application/vnd.com.nsn.cumulocity.eventCollection+json;ver=0.9
                 

应答示例:

HTTP/1.1 200 OK
                  Content-Type: application/vnd.com.nsn.cumulocity.eventCollection+json;ver=...
                  Content-Length: ...

                  {
                  "self":"...",
                  "events":[
                  {
                  "id" : "10",
                  "self" : "...",
                  "creationTime" : "2011-09-06T12:03:27.927+02:00",
                  "type" : "com_cumulocity_model_DoorSensorEvent",
                  "time" : "2011-09-06T12:03:27.845+02:00",
                  "text" : "Door sensor was triggered.",
                  "com_othercompany_Extension" : { ... },
                  "source":{ "id":"12345", "self": "..." }
                }, {
                "id":"11",
                ...
              }
              ],
              "statistics" : {
              "totalPages" : 2,
              "pageSize" : 5,
              "currentPage : 1
            }
          }
        
POST - 创建新事件

请求正文: 事件

应答正文: 事件

所需角色: ROLE_EVENT_ADMIN 或源对象所有者

请求示例: 创建新对象

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

          {
          "time" : "2011-09-06T12:03:27.845+02:00",
          "type" : "com_cumulocity_model_DoorSensorEvent",
          "text" : "Door sensor was triggered.",
          "source": { "id" : "12345", ... }
        }
      

应答示例:

HTTP/1.1 201 Created
        Content-Type: application/vnd.com.nsn.cumulocity.event+json;ver=...
        Content-Length: ...
        Location: <<URL of new event>>

        {
        "id" : "10",
        "self" : "<<URL of new event>>",
        "time" : "2011-09-06T12:03:27.845+02:00",
        "creationTime" : "2011-09-06T12:03:27.927+02:00",
        "type" : "com_cumulocity_model_DoorSensorEvent",
        "text" : "Door sensor was triggered.",
        "source" : { "id":"12345", "self ": "..." }
      }
    

对于POST请求, source参数必须只有一个id。

新事件的"id"和"creationTime"由服务器生成, 并在对POST操作的响应中返回。

PUT - 更新事件

请求正文: 事件

应答正文: 事件

所需角色: ROLE_EVENT_ADMIN 或源对象所有者

请求视力: 修改事件文本

PUT /event/events/<<eventId>>
      Host: ...
      Authorization: Basic ...
      Accept: application/vnd.com.nsn.cumulocity.event+json;ver=...
      Content-Type: application/vnd.com.nsn.cumulocity.event+json;ver=...
      Content-Length: ...
      {
      "text": "Life full of events"
    }
  

应答示例:

HTTP/1.1 200 OK
    Content-Type: application/vnd.com.nsn.cumulocity.event+json;ver=...
    {
    "creationTime": "2016-11-08T16:07:40.917+01:00",
    "time": "2014-03-03T12:03:27.845Z",
    "id": "10400",
    "self": ".../event/events/10400",
    "source": {
    "id": "10216",
    "self": ".../inventory/managedObjects/10216"
  },
  "text": "Life full of events",
  "type": "TestAlarm"
}
DELETE - 删除事件集合

DELETE方法允许删除事件集合。 适用的查询参数等同于GET方法。

请求正文: N/A

应答正文: N/A

所需角色: ROLE_EVENT_ADMIN

请求示例:

 DELETE: /event/events....
 Host: ...
 Authorization: Basic ...

应答示例:

HTTP/1.1  204 NO CONTENT

事件

事件 [application/vnd.com.nsn.cumulocity.event+json]
名称 类型 次数 描述
id String 1 唯一标识事件。
self URI 1 资源链接。
creationTime String 1 在数据库中创建事件的时间。
type String 1 标识此事件的类型。
time String 1 事件的时间。
text String 1 事件的文本描述。
source ManagedObject 1 事件源自的托管对象, 作为包含属性"id", "self", "name"和"type"的对象。
* Object 0..n 事件的其他属性。
GET - 查询事件表示

应答正文: 事件

所需角色: ROLE_EVENT_READ

请求示例: 查询事件信息

GET /event/events/<<eventID>>
 Host: [hostname]
 Authorization: Basic xxxxxxxxxxxxxxxxxxx
 Accept: application/vnd.com.nsn.cumulocity.event+json;ver=0.9

应答示例:

HTTP/1.1 200 OK
  Content-Type: application/vnd.com.nsn.cumulocity.event+json;ver=...
  Content-Length: ...

  {
  "id" : "10",
  "self" : "...",
  "time" : "2011-09-06T12:03:27.845+02:00",
  "creationTime" : "2011-09-06T12:03:27.927+02:00",
  "type" : "com_cumulocity_model_DoorSensorEvent",
  "text" : "Door sensor was triggered.",
  "source" : { "id":"12345", "self ": "..." }
}
DELETE - 删除事件

请求正文: N/A.

应答正文: N/A.

所需角色: ROLE_EVENT_ADMIN 或源对象所有者。

请求示例: 删除事件

DELETE /event/events/<<eventID>>
 Host: [hostname]
 Authorization: Basic xxxxxxxxxxxxxxxxxxx

应答示例:

HTTP/1.1  204 NO CONTENT

通知

使用事件通知API, 可以接收特定设备的所有事件的更新。 接收通知的基本协议参见 "实时通知"。 URL是

/cep/realtime
  

订阅频道需要包含设备的管理对象ID或作为占位符的"*", 以接收所有设备的事件的通知

/events/<<deviceId>>
  

应答将附加到事件对象包含"realtimeAction"以标识哪个动作导致给定对象(CREATE, UPDATE 或 DELETE)。 在删除的情况下, 数据将仅包含已删除事件的ID。

应答示例:

HTTP/1.1 200 OK 
    Content-Type: application/json
    [
    {
    "channel": "/events/12345", 
    "successful": true, 
    "error": "", 
    "data": [{
    "realtimeAction": "CREATE",
    "data": {
    "id": "1",
    "self": "...",
    "source": { 
    "12345"
  },
  "creationTime": "2011-09-06T12:03:27.927+02:00",
  "text": "event has been triggered"
}
}], 
"clientId": "Un1q31d3nt1f13r" 
}
]

所需角色: ROLE_EVENT_READ