介绍
iOTA 提供遵从 REST 规范的 HTTPS API,以供开发者远程调用 iOTA 提供的服务,为开发者的 APP 应用提供管理接口。
为了保证安全,REST API 仅提供 HTTPS 接口。
版本
当对任何 iOTA API 进行向后不兼容的更改时,新版本发布时会变更 URL 前缀;对于旧版本中的具体接口:
- 如果依旧可以使用,则不作特殊说明;
- 如果不可使用,则会明确声明废弃。
版本 | 前缀 | 说明 |
---|---|---|
0.0.4 | /v1/api | 完成设备模型重构。 |
0.0.8 | /v1/api | 增加策略限制; |
增加规则; | ||
调整部分接口; | ||
0.0.11 | /v1/api | 调整部分接口; |
0.0.12 | /v1/api | 新增接口; |
0.0.15 | /v1/api | 指标/告警/设备公开; |
0.0.16~0.0.28 | /v1/api | 调整部分接口/新增公式; |
变更记录
日期 | 变更内容 |
---|---|
2017.04.19 | 0.0.4 版本发布。 |
2017.07.20 | 0.0.8 版本。 |
2017.08.12 | 0.0.11 版本。 |
2017.08.22 | 0.0.12 版本。 |
2017.09.22 | 0.0.15 版本。 |
2018.03.22 | 0.0.16~0.0.28 版本。 |
0.0.8
说明 | 详细内容 |
---|---|
请求频率限制 | 增加频率限制功能,对API请求频率次数进行保护。 |
资源的共享、公开 | iOTA内对资源的在用户间的互通方式说明。 |
接受用户组邀请接口 | 修改为GET请求,url修改为/v1/api/user_groups/:userGroupId/invite_users/accept |
协议测试 | 新增协议基本测试接口 |
新增查询Thing下所部署的所有设备原型接口 | 通过此接口,可直接查询到在某个Thing里使用到的设备原型信息 |
Thing部署增加编辑器设置 | 部署/更新部署 即可增加编辑的settings配置 |
规则管理接口 | 支持规则的相关操作 |
数据查询接口 | 根据Thing\设备查询其产生的数据 |
0.0.11
说明 | 详细内容 |
---|---|
新增查询Thing下所部署的所有设备实例接口 | 通过此接口,可直接查询到在某个Thing里使用到的设备实例信息 |
0.0.12
说明 | 详细内容 |
---|---|
故障修复 | |
支持资源过滤功能 | 满足应用筛选所支持的资源 |
设备查询接口 | 支持按照接口及接口方向查询设备 |
设备/能力定义 | 将原型定义中的协议修改为非必选,在部署的能力维度定义中,支持设议的选择,优先使用此处的协议定义 |
0.0.15
说明 | 详细内容 |
---|---|
故障修复 | |
指标统计 | 增加用户类指标统计及接口 |
基于指标的告警 | 采集告警/连接状态告警/超量程告警 |
设备公开功能 | 设备公开、审核及接口 |
原查询Thing部署中的设备实例接口 | 调整路由 |
新增接口 | 查询Thing中的Scheme接口 |
查询用户所有Scheme接口 | |
查询用户所有设备实例接口 | |
查询用户所有使用到的设备原型接口 |
0.0.16~0.0.28
说明 | 详细内容 |
---|---|
故障修复 | |
增加复制设备接口 | 快速复制某个设备定义 |
增加能力公式 | 可定义能力所使用的公式及其参数 |
增加能力即时触发接口 | 可即时对部署设备上的某个能力发起请求 |
告警模块调整 | 增加告警管理相关接口 |
规则模块调整 | 调整规则模块的接口 |
基本规则
HTTP状态码
iOTA REST API 遵循 HTTP 状态码规范。
- 200 / 204 均表示正确,区别是,204无内容返回。
- 业务逻辑上的错误,有特别的错误码尽量使用 4xx,否则使用 400。
- 业务错误时,返回内容使用 JSON 格式定义 错误信息。
- 服务器端内部错误,无特别错误码使用 500。
状态码定义
状态码 | 描述 | 解释 |
---|---|---|
200 | OK | 请求成功。 |
204 | 请求处理成功 | 服务器成功处理了请求,但不返回任何实体内容。 |
302 | 请求重定向 | 请求已经被处理,需要重定向至其他页面。 |
400 | 错误的请求 | 该请求是无效的。相应的错误信息会说明原因。 |
401 | 未认证 | 没有认证信息或认证失败。 |
403 | 请求被禁止 | 请求被服务器拒绝。相应的错误信息会说明原因。 |
404 | 未找到 | 资源不存在。相应的错误信息会说明原因。 |
408 | 请求超时 | 未能在指定的时间内返回。 |
409 | 请求冲突 | 由于和被请求的资源的当前状态之间存在冲突,请求无法完成。相应的错误信息会说明原因。 |
500 | 内部服务错误 | 服务器内部错误,请与我们联系:sevice@theiota.cn。 |
504 | 代理超时 | 服务器在运行,但是无法响应请求。请稍后重试。 |
错误
所有错误都以 JSON 的形式返回,带有 name 和 message,如有详细信息,会有 detail 字段。 所有字段均采用英文。
{
"name":"错误名称",
"message":"错误信息",
"detail":"错误详情"
}
请求
根据 RESTful 设计模式,iOTA API 实现以下 HTTP 动词:
- GET - 查询资源
- POST - 创建新的资源
- PUT - 修改现有资源
- DELETE - 删除资源
当发起请求时,参数可通过URL Parameters/Query Parameters/表单/JSON(注意使用正确的 Content-Type)传递。 见具体接口的说明。
请求需采用UTF-8编码。
如无特殊说明,发起请求前都必须通过认证。
应答
如无特殊说明,带有返回信息的应答均采用 JSON 格式,UTF-8编码。
分页与排序
如无特殊说明,查询结果中携带 total 字段的接口,均支持分页与排序功能。
HTTP Request
GET /v1/api/meta/devices?limit=20&offset=0&orderBy=createdAt&orderDirection=DESC
在返回结果中,包含 total 字段,表示符合查询条件的资源总数。遍历多页或者所有数据时,需要根据返回结果中的 total 字段,利用 limit 计算 offset ,从而查询其他页面数据。
符合条件的资源,以 资源名s:[] 形式返回,详见具体接口的说明。
Request
GET /v1/api/meta/devices?limit=20&offset=0&orderBy=createdAt&orderDirection=DESC
Response
{
"total": 100,
"devices":[
...
]
}
Query Parameters
参数 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
limit | integer | 20 | 否 | 每页数量, 范围:[1, 200]。 |
offset | integer | 0 | 否 | 在符合条件的记录中偏移的记录数。 |
orderBy | string | createdAt | 否 | 排序字段。如无特殊说明,返回结果中主模型的所有字段名均可用于排序。 |
orderDirection | enum | DESC | 否 | 排序方向,DESC or ASC。 |
请求频率限制
一定的时间窗口内,API 允许调用的次数是有限制的,限制可以通过购买服务包调整。 参考 GitHub Rete Limiting。
iOTA有两类限制:
- 频率 - 较短单位时间内的请求次数,防止请求过频
- 次数 - 较长时间内的请求次数,防止请求超限
正常请求
POST /v1/api/meta/devices
Request
GET /v1/api/meta/devices HTTP/1.1
...
> Response
```HTTPS
HTTP/1.1 200 OK
X-RateLimit-Limit:60
X-RateLimit-Remaining :56
X-RateLimit-Reset:1372700873
{
total:0,
devices:[]
}
请求超频或者超限
POST /v1/api/meta/devices
Request
GET /v1/api/meta/devices HTTP/1.1
...
> Response
```HTTPS
HTTP/1.1 429 OK
X-RateLimit-Limit:60
X-RateLimit-Remaining 0
X-RateLimit-Reset:1372700873
Rate limit exceeded, retry in ...
针对不同的场景,有不同的限制策略。
频率限制策略
场景 | 限制对象 | 单位时间 | 次数限制 | 说明 |
---|---|---|---|---|
已登录用户,服务未过期 | 用户ID | 以服务包配置为准 | ||
已登录用户,服务已过期 | 用户ID | 待定 | ||
未登录用户 | IP地址 | 待定 |
次数限制策略
场景 | 限制对象 | 单位时间 | 次数限制 | 说明 |
---|---|---|---|---|
已登录用户,服务未过期 | 用户ID | 以服务包配置为准 | ||
已登录用户,服务已过期 | 用户ID | 待定 | ||
未登录用户 | IP地址 | 待定 |
认证
iOTA API 主要面向开发者的 APP 应用,因此认证是针对开发者的 APP 应用。实现上基于 OAuth 2 规范的 客户端授权 流程。
术语/关键字段
术语 | 描述 | 说明 |
---|---|---|
App ID | 开发者为某类应用分配的ID | |
App Secret | 系统为开发者创建的应用所分配的Secret | 与App ID组合(编码后)作为认证接口中所需的 Authorization;开发者在 iOTA 控制台->应用管理->应用列表 功能分配或获得 App ID及 App Secret。 |
grant_type | OAuth 2 中规定的授权模式。 | 客户端授权 流程中主要有两类: client_credentials / refresh_token |
access_token | 访问令牌 | iOTA API 为通过认证的应用分配的访问凭证。 |
refresh_token | 更新令牌 | 用来获取新的访问令牌。 |
Authorization | 需要在请求认证接口的Headers中提供的凭证。 | 得到访问令牌前,一般由 App ID/ App Secret组后(编码后)构成;得到访问令牌后,一般填写访问令牌。 |
流程
在访问 iOTA API 时,除去一些静态资源接口,都必须通过认证,主要流程:
- 获取访问令牌 接口进行认证,并得到系统返回的访问令牌;
- 然后通过携带 访问令牌 来发起请求;
- 默认情况下,为了减少 访问令牌 的危险窗口期,访问令牌的超时时间是30天,访问令牌过期后(过期前亦可),应用可通过 更新访问令牌 接口来重新获得 访问令牌,因此,为了保证应用的长时间运行,应用应有一定 访问令牌 更新策略;
- 同时,应用也可以通过 作废访问令牌 接口来废弃 访问令牌。
获取访问令牌
编码 App ID/ App Secret
将应用程序的 App ID 和 App Secret 编码为一组凭据以获取访问令牌:
- 根据RFC 1738对 App ID 和 App Secret 进行编码。通常情况下,系统生成的 App ID / App Secret 没有特殊字符,编码前后没有变化;
- 将编码后的 App ID 与 App Secret 通过":“连接为一个字符串;
- 使用Base64对上一步中的字符串进行编码。
样例
字段 | 值 |
---|---|
App ID | 8bfd991124ba4c762ddb6ce0ccc31504e71febb0 |
App Secret | de9e9aa24ec938b0079980b64a6e0537bc4c5b0c |
RFC 1738编码 App ID | 8bfd991124ba4c762ddb6ce0ccc31504e71febb0 |
RFC 1738编码 App Secret | de9e9aa24ec938b0079980b64a6e0537bc4c5b0c |
Authorization | 8bfd991124ba4c762ddb6ce0ccc31504e71febb0:de9e9aa24ec938b0079980b64a6e0537bc4c5b0c |
Base64 编码 Authorization | OGJmZDk5MTEyNGJhNGM3NjJkZGI2Y2UwY2NjMzE1MDRlNzFmZWJiMDpkZTllOWFhMjRlYzkzOGIwMDc5OTgwYjY0YTZlMDUzN2JjNGM1YjBj |
认证
使用编码后的 Authorization 通过认证接口获取访问令牌:
HTTP Request
POST /v1/api/oauth2/token
Request
POST /oauth2/token HTTP/1.1
Host: api.theiota.cn
Authorization: Basic OGJmZDk5MTEyNGJhNGM3NjJkZGI2Y2UwY2NjMzE1MDRlNzFmZWJiMDpkZTllOWFhMjRlYzkzOGIwMDc5OTgwYjY0YTZlMDUzN2JjNGM1YjBj
Content-Type: application/x-www-form-urlencoded;charset=UTF-8
...
grant_type=client_credentials
Response
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
...
Content-Encoding: gzipd
{
"access_token": "5b3827e9e2f25505acb308c23ff7843dcf7a057d83bb1bc63bcbcdc3021a0fbc",
"token_type": "bearer",
"expires_in": 2592000000,
"refresh_token": "753b10f28d4207b44feb13402ef85a5373e5ff4cb970a01b1309fb476fbebf38"
}
接口要求:
- 请求必须是HTTP POST请求
- Headers 中包含 Authorization 信息, Authorization : Basic <编码后的 Authorization>
- Content-Type = application/x-www-form-urlencoded;charset=UTF-8
- 请求正文为:grant_type=client_credentials
通过令牌发起请求
获取访问令牌后,即可访问 iOTA API。
Request
GET /v1/api/meta/devices?limit=20&offset=0&orderBy=createdAt&orderDirection=DESC HTTP/1.1
Host: api.theiota.cn
Authorization: Bearer 5b3827e9e2f25505acb308c23ff7843dcf7a057d83bb1bc63bcbcdc3021a0fbc
Accept-Encoding: gzip
...
刷新访问令牌
当令牌过期或其他原因失效时,需应用主动更新令牌:
HTTP Request
POST /v1/api/oauth2/token/refresh
Request
POST /v1/api/oauth2/token/refresh HTTP/1.1
Authorization: Basic OGJmZDk5MTEyNGJhNGM3NjJkZGI2Y2UwY2NjMzE1MDRlNzFmZWJiMDpkZTllOWFhMjRlYzkzOGIwMDc5OTgwYjY0YTZlMDUzN2JjNGM1YjBj
Host: api.theiota.cn
Content-Type: application/x-www-form-urlencoded
...
grant_type=refresh_token&refresh_token=753b10f28d4207b44feb13402ef85a5373e5ff4cb970a01b1309fb476fbebf38
Response
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
...
Content-Encoding: gzipd
{
"access_token": "be13d5912586be84dc5bcc097eef8774cea0b5be5cc5ce6d7db122b79f522153",
"token_type": "bearer",
"expires_in": 2592000000,
"refresh_token": "1acb34ada2b6f145172c998af6b0c00793f52ac3e07a3ebeb89031e73cac4d71"
}
作废访问令牌
某些情况下,应用需要主动作废访问令牌,可通过以下接口:
HTTP Request
POST /v1/api/oauth2/token/invalidate
Request
POST /v1/api/oauth2/token/invalidate HTTP/1.1
Authorization: Basic OGJmZDk5MTEyNGJhNGM3NjJkZGI2Y2UwY2NjMzE1MDRlNzFmZWJiMDpkZTllOWFhMjRlYzkzOGIwMDc5OTgwYjY0YTZlMDUzN2JjNGM1YjBj
Host: api.theiota.cn
Content-Type: application/x-www-form-urlencoded
...
access_token=5b3827e9e2f25505acb308c23ff7843dcf7a057d83bb1bc63bcbcdc3021a0fbc
Response
HTTP/1.1 204 No Content
Content-Type: application/json; charset=utf-8
资源的共享、公开
iOTA内可通过共享、公开方式设置用户自身的资源的可见性:
- 共享 - 用户通过授权管理,以共享的形式使自身的某类资源对已授权的用户可见,并分配一定的操作权限;共享是用户与用户间的资源交互,资源的拥有者有权收回资源或变更资源
- 公开 - 用户通过申请公开,使得自身的某类资源对iOTA所有用户可见;公开是用户间、iOTA多方的行为,需通过iOTA申请、审核控制资源的收回或变更
可共享的资源
- 接口
- 协议
- 设备
- Thing - Thing的基本配置,以及Thing所产生的数据
- Deploy- Thing的设备布设组网,通常与Thing资源组合共享
- 规则
可公开的资源
- 接口
- 协议
- 设备
对相关接口的要求
可见性 Query Parameters
支持共享、公开的资源查询接口,可通过设置 Query Parameters : visibility 的值来指定查询的数据范围。
Query Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
visibility | string | 否 | 资源可见性: public\shared\private\all |
Filtered Query Parameters
为了解决应用在实现自己应用时,过滤掉应用系统不支持的各种资源,增加过滤功能,应用可以设置哪些iOTA的资源在应用系统内可用,同时配合查询参数来获取响应资源。
Query Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
filtered | string | 否 | 资源可见性: true\false, true 表示应用系统内可用的,false表示应用系统内不可用的 |
当前用户 标识
非查询接口根据判断 当前用户 标识来控制对相关资源所具备的权限。 当前用户 标识需在接口请求时通过HTTP Header设置,未设置时iOTA认为用户标识为当前登录用户。
主用户可用 当前用户 来操作子用户的资源,主用户对子用户的所有资源有完整的操作权限。
Header字段 | 说明 |
---|---|
iota-user-view | 用户当前视图: default\Sub |
iota-user-id | iota-user-view 为 Sub 时 需填写子用户id |
公开资源的限制
公开资源仅支持查询,相关查询接口需使用 Http Query 参数
原型管理
基本类型
查询接口分类
查询接口分类信息。
HTTP Request
GET /v1/api/interface_types
Request
GET /v1/api/interface_types
Response
{
"interfaceTypes": [
{
"id": 1,
"name": "Serial",
"key": "serial",
"desc": "串口",
"createdAt": "2017-04-14T11:40:46.187Z",
"updatedAt": "2017-04-14T11:40:46.187Z"
},
{
"id": 2,
"name": "ZigBee",
"key": "zigbee",
"desc": "ZigBee",
"createdAt": "2017-04-14T11:40:46.218Z",
"updatedAt": "2017-04-14T11:40:46.218Z"
},
{
"id": 3,
"name": "LoRa",
"key": "lora",
"desc": "低速率广域网",
"createdAt": "2017-04-14T11:40:46.218Z",
"updatedAt": "2017-04-14T11:40:46.218Z"
},
{
"id": 4,
"name": "SoIP",
"key": "soip",
"desc": "串口 Over IP",
"createdAt": "2017-04-14T11:40:46.218Z",
"updatedAt": "2017-04-14T11:40:46.218Z"
}
]
}
查询属性分类
查询属性分类信息。
HTTP Request
GET /v1/api/property_types
Request
GET /v1/api/property_types
Response
{
"properties": [
{
"id": 1,
"name": "整型",
"key": "integer",
"desc": "Integer",
"createdAt": "2017-04-14T11:40:46.156Z",
"updatedAt": "2017-04-14T11:40:46.156Z"
},
{
"id": 2,
"name": "浮点型",
"key": "float",
"desc": "Float",
"createdAt": "2017-04-14T11:40:46.171Z",
"updatedAt": "2017-04-14T11:40:46.171Z"
},
{
"id": 3,
"name": "布尔型",
"key": "boolean",
"desc": "Boolean",
"createdAt": "2017-04-14T11:40:46.171Z",
"updatedAt": "2017-04-14T11:40:46.171Z"
},
{
"id": 4,
"name": "枚举",
"key": "enum",
"desc": "Enumerate",
"createdAt": "2017-04-14T11:40:46.171Z",
"updatedAt": "2017-04-14T11:40:46.171Z"
},
{
"id": 5,
"name": "字符串",
"key": "string",
"desc": "String",
"createdAt": "2017-04-14T11:40:46.171Z",
"updatedAt": "2017-04-14T11:40:46.171Z"
}
]
}
查询能力分类
查询能力分类信息。
HTTP Request
GET /v1/api/capability_categories
Request
GET /v1/api/capability_categories
Response
{
"capabilityCategories": [
{
"id": 1,
"name": "诊断",
"image": null,
"desc": null,
"createdAt": "2017-04-14T11:40:46.250Z",
"updatedAt": "2017-04-14T11:40:46.250Z",
"capabilities": []
},
{
"id": 2,
"name": "控制",
"image": null,
"desc": null,
"createdAt": "2017-04-14T11:40:46.250Z",
"updatedAt": "2017-04-14T11:40:46.250Z",
"capabilities": [
{
"id": "81e499ba-834b-492c-816c-2cc8cc55cc87",
"name": "接入IOTA",
"image": "",
"desc": "",
"createdAt": "2017-04-14T11:53:08.372Z",
"updatedAt": "2017-04-14T11:53:08.372Z",
"deviceMetaId": "de07a19a-eb81-48b4-9078-8646684e4962",
"capabilityCategoryId": 2,
"protocolMetaId": "cc58ebc2-81ec-4275-a665-c9a2c9bda868"
}
]
},
{
"id": 3,
"name": "采集",
"image": null,
"desc": null,
"createdAt": "2017-04-14T11:40:46.250Z",
"updatedAt": "2017-04-14T11:40:46.250Z",
"capabilities": [
{
"id": "b5f799ea-a266-48bd-82e9-844aed077738",
"name": "测斜",
"image": "",
"desc": "",
"createdAt": "2017-04-14T11:54:05.280Z",
"updatedAt": "2017-04-14T11:54:05.280Z",
"deviceMetaId": "b1ac10e0-2c67-4463-b822-d9bd02bd8d49",
"capabilityCategoryId": 3,
"protocolMetaId": "cc58ebc2-81ec-4275-a665-c9a2c9bda868"
}
]
}
]
}
资源过滤管理
为了解决应用在实现自己应用时,过滤掉应用系统不支持的各种资源,增加过滤功能,应用可以设置哪些iOTA的资源在应用系统内可用,同时配合查询参数来获取响应资源。
添加为过滤资源的表示应用系统内可用,为添加过滤资源的表示应用系统内不可用。
添加过滤资源
添加过滤资源
HTTP Request
POST /v1/api/meta/filtered_resources
Request:
POST /v1/api/meta/filtered_resources
body {
"resources": [{
"type": "Device",
"key": "bda28056-9078-4b25-84a5-2abaa54e2a57"
"properties": "{}"
}]
}
Response:
[
{
"type": "Device",
"properties": "{}",
"key": "bda28056-9078-4b25-84a5-2abaa54e2a57",
"id": "2cc1a19e-84a5-447e-9b2c-2abaa54e2a57"
}
]
Body Parameters
参数 | 类型 | 必填 | 说明 | |
---|---|---|---|---|
resources | array of object | 是 | 添加的资源 | |
type | enum | 是 | 资源类型 Protocol/Interface/Device/Thing/Deploy | |
key | string | 是 | 添加的资源的id | |
properties | string of JSON | 否 | 应用可扩展的属性,不提供查询功能 |
修改过滤资源
修改已经创建的过滤资源。
HTTP Request
PUT /v1/api/meta/filtered_resources/:id
Request:
PUT /v1/api/meta/filtered_resources/2cc1a19e-84a5-447e-9b2c-2abaa54e2a57
body {
"type": "Device",
"key": "655b28f3-3945-4f14-a3ae-24e8e666102b",
"properties": "{"a":1}"
}
URL Parameters
参数 | 类型 | 必填 | 说明 | |
---|---|---|---|---|
id | string | 是 | 资源id |
Body Parameters
参数 | 类型 | 必填 | 说明 | |
---|---|---|---|---|
type | enum | 是 | 资源类型 Protocol/Interface/Device/Thing/Deploy | |
key | string | 是 | 添加的资源的id | |
properties | string of JSON | 否 | 应用可扩展的属性,不提供查询功能 |
删除过滤资源
删除已经创建的过滤资源。
HTTP Request
DELETE /v1/api/meta/filtered_resources/:id?
Request:
DELETE /v1/api/meta/filtered_resources
body {
"ids":[
"2cc1a19e-84a5-447e-9b2c-2abaa54e2a57"
]
}
URL Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
id | string | 否 | 资源id |
Body Parameters
参数 | 类型 | 必填 | 说明 | |
---|---|---|---|---|
ids | array | 否 | 资源id |
接口原型管理
查询接口原型
查询接口原型信息。
HTTP Request
GET /v1/api/meta/interfaces
Request
GET /v1/api/meta/interfaces
Response
{
"total": 2,
"interfaces": [
{
"id": "9a114538-9137-47cf-b0e7-5cef0a101dd0",
"name": "RS485",
"createBy": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"belongTo": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"investor": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"public": false,
"image": null,
"desc": "",
"createdAt": "2017-04-14T11:51:48.570Z",
"updatedAt": "2017-04-14T11:51:48.570Z",
"interfaceTypeId": 1,
"interfaceType": {
"id": 1,
"name": "Serial",
"key": "serial",
"desc": "串口",
"createdAt": "2017-04-14T11:40:46.187Z",
"updatedAt": "2017-04-14T11:40:46.187Z"
},
"properties": [
{
"id": 2,
"name": "mno",
"enum": "",
"defaultValue": "1336",
"precision": 0,
"max": "65535",
"min": "1024",
"desc": "",
"createdAt": "2017-04-14T11:51:48.574Z",
"updatedAt": "2017-04-14T11:58:46.691Z",
"propertyTypeId": 1,
"interfaceMetaId": "9a114538-9137-47cf-b0e7-5cef0a101dd0"
}
]
},
{
"id": "b14d3424-59cb-4fdb-ba9c-a8a3c1846a0a",
"name": "SOIP",
"createBy": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"belongTo": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"investor": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"public": false,
"image": null,
"desc": "",
"createdAt": "2017-04-14T11:51:02.434Z",
"updatedAt": "2017-04-14T11:51:02.434Z",
"interfaceTypeId": 4,
"interfaceType": {
"id": 4,
"name": "SoIP",
"key": "soip",
"desc": "串口 Over IP",
"createdAt": "2017-04-14T11:40:46.218Z",
"updatedAt": "2017-04-14T11:40:46.218Z"
},
"properties": [
{
"id": 1,
"name": "id",
"enum": "",
"defaultValue": "2233",
"precision": 0,
"max": "65535",
"min": "1024",
"desc": "",
"createdAt": "2017-04-14T11:51:02.439Z",
"updatedAt": "2017-04-14T12:07:06.439Z",
"propertyTypeId": 1,
"interfaceMetaId": "b14d3424-59cb-4fdb-ba9c-a8a3c1846a0a"
}
]
}
]
}
Query Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
name | string | 是 | 接口名称,模糊查询 |
interfaceTypeId | string | 是 | 接口类型id |
查询指定接口原型
查询指定接口原型信息。
HTTP Request
GET /v1/api/meta/interfaces/:id
Request
GET /v1/api/meta/interfaces/9a114538-9137-47cf-b0e7-5cef0a101dd0
Response
{
"id": "9a114538-9137-47cf-b0e7-5cef0a101dd0",
"name": "RS485",
"createBy": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"belongTo": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"investor": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"public": false,
"image": null,
"desc": "",
"createdAt": "2017-04-14T11:51:48.570Z",
"updatedAt": "2017-04-14T11:51:48.570Z",
"interfaceTypeId": 1,
"interfaceType": {
"id": 1,
"name": "Serial",
"key": "serial",
"desc": "串口",
"createdAt": "2017-04-14T11:40:46.187Z",
"updatedAt": "2017-04-14T11:40:46.187Z"
},
"properties": [
{
"id": 2,
"name": "mno",
"enum": "",
"defaultValue": "1336",
"precision": 0,
"max": "65535",
"min": "1024",
"desc": "",
"createdAt": "2017-04-14T11:51:48.574Z",
"updatedAt": "2017-04-14T11:58:46.691Z",
"propertyTypeId": 1,
"interfaceMetaId": "9a114538-9137-47cf-b0e7-5cef0a101dd0"
}
]
}
URL Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
id | string | 是 | 接口原型id |
创建接口原型
创建接口原型。
HTTP Request
POST /v1/api/meta/interfaces
Request
POST /v1/api/meta/interfaces
body {
"name": "新增接口",
"properties": [
{
"name": "测试接口属性"
}
]
}
Response
{
"id": "821d3a1f-d4b5-4237-92f9-a9a8476abf40",
"name": "新增接口",
"createBy": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"belongTo": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"investor": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"public": false,
"image": null,
"desc": null,
"createdAt": "2017-04-18T10:51:22.777Z",
"updatedAt": "2017-04-18T10:51:22.777Z",
"interfaceTypeId": null,
"interfaceType": null,
"properties": [
{
"id": 6,
"name": "测试接口属性",
"enum": null,
"defaultValue": null,
"precision": null,
"max": null,
"min": null,
"desc": null,
"propertyTypeId": null,
"interfaceMetaId": "821d3a1f-d4b5-4237-92f9-a9a8476abf40"
}
]
}
Body Parameters
参数 | 类型 | 必填 | 说明 | |
---|---|---|---|---|
name | string | 是 | 名称 | |
image | string | 否 | 图片地址 | |
desc | string | 否 | 描述说明 | |
interfaceTypeId | integer | 否 | 接口类型id | |
properties | array of object | 否 | 接口属性 | |
name | string | 是 | 属性名称,若增加接口属性则该字段必填 | |
enum | string | 否 | 属性枚举类型数据 | |
defaultValue | string | 否 | 属性默认值 | |
precision | integer | 否 | 属性精度 | |
max | string | 否 | 属性最大值 | |
min | string | 否 | 属性最小值 | |
desc | string | 否 | 属性描述 | |
propertyTypeId | integer | 否 | 属性类型id |
修改指定接口原型
修改指定接口原型信息。
HTTP Request
PUT /v1/api/meta/interfaces/:id
Request
PUT /v1/api/meta/interfaces/821d3a1f-d4b5-4237-92f9-a9a8476abf40
body {
"name": "更改接口"
}
URL Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
id | string | 是 | 接口原型id |
Body Parameters
参数 | 类型 | 必填 | 说明 | |
---|---|---|---|---|
name | string | 否 | 名称 | |
image | string | 否 | 图片地址 | |
desc | string | 否 | 描述说明 | |
interfaceTypeId | integer | 否 | 接口类型id | |
properties | array of object | 否 | 接口属性 | |
name | string | 否 | 属性名称 | |
enum | string | 否 | 属性枚举类型数据 | |
defaultValue | string | 否 | 属性默认值 | |
precision | integer | 否 | 属性精度 | |
max | string | 否 | 属性最大值 | |
min | string | 否 | 属性最小值 | |
desc | string | 否 | 属性描述 | |
propertyTypeId | integer | 否 | 属性类型id |
删除指定接口原型
删除指定接口原型。
HTTP Request
DELETE /v1/api/meta/interfaces/:id
Request
DELETE /v1/api/meta/interfaces/821d3a1f-d4b5-4237-92f9-a9a8476abf40
URL Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
id | string | 是 | 接口原型id |
查询接口原型属性
查询指定接口原型的属性信息。
HTTP Request
GET /v1/api/meta/interfaces/:interfaceId/properties
Request
GET /v1/api/meta/interfaces/9a114538-9137-47cf-b0e7-5cef0a101dd0/properties
Response
{
"properties": [
{
"id": 2,
"name": "mno",
"enum": "",
"defaultValue": "1336",
"precision": 0,
"max": "65535",
"min": "1024",
"desc": "",
"propertyTypeId": 1,
"interfaceMetaId": "9a114538-9137-47cf-b0e7-5cef0a101dd0",
"propertyType": {
"id": 1,
"name": "整型",
"key": "integer",
"desc": "Integer"
},
"interface": {
"id": "9a114538-9137-47cf-b0e7-5cef0a101dd0",
"name": "RS485",
"createBy": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"belongTo": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"investor": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"public": false,
"image": null,
"desc": "",
"interfaceTypeId": 1
}
}
]
}
URL Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
interfaceId | string | 是 | 接口原型id |
查询指定接口原型指定属性
查询指定接口原型的指定属性信息。
HTTP Request
GET /v1/api/meta/interfaces/:interfaceId/properties/:id
Request
GET /v1/api/meta/interfaces/9a114538-9137-47cf-b0e7-5cef0a101dd0/properties/2
Response
{
"id": 2,
"name": "mno",
"enum": "",
"defaultValue": "1336",
"precision": 0,
"max": "65535",
"min": "1024",
"desc": "",
"propertyTypeId": 1,
"interfaceMetaId": "9a114538-9137-47cf-b0e7-5cef0a101dd0",
"propertyType": {
"id": 1,
"name": "整型",
"key": "integer",
"desc": "Integer"
},
"interface": {
"id": "9a114538-9137-47cf-b0e7-5cef0a101dd0",
"name": "RS485",
"createBy": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"belongTo": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"investor": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"public": false,
"image": null,
"desc": "",
"interfaceTypeId": 1
}
}
URL Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
interfaceId | string | 是 | 接口原型id |
id | string | 是 | 接口原型属性id |
创建指定接口原型属性
创建指定接口原型属性。
HTTP Request
POST /v1/api/meta/interfaces/:interfaceId/properties
Request
POST /v1/api/meta/interfaces/9a114538-9137-47cf-b0e7-5cef0a101dd0/properties
body {
"name": "新增接口属性"
}
Response
{
"id": 7,
"name": "新增接口属性",
"enum": null,
"defaultValue": null,
"precision": null,
"max": null,
"min": null,
"desc": null,
"propertyTypeId": null,
"interfaceMetaId": "9a114538-9137-47cf-b0e7-5cef0a101dd0",
"updatedAt": "2017-04-19T05:35:04.787Z",
"createdAt": "2017-04-19T05:35:04.787Z"
}
URL Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
interfaceId | string | 是 | 接口原型id |
Body Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
name | string | 是 | 名称 |
enum | string | 否 | 枚举类型数据 |
defaultValue | string | 否 | 默认值 |
precision | integer | 否 | 精度 |
max | string | 否 | 最大值 |
min | string | 否 | 最小值 |
desc | string | 否 | 描述说明 |
propertyTypeId | integer | 否 | 属性类型id |
修改指定接口原型指定属性
修改指定的接口原型的指定属性。
HTTP Request
PUT /v1/api/meta/interfaces/:interfaceId/properties/:id
Request
PUT /v1/api/meta/interfaces/9a114538-9137-47cf-b0e7-5cef0a101dd0/properties/7
body {
"name": "更改接口属性"
}
URL Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
interfaceId | string | 是 | 接口原型id |
id | string | 是 | 接口原型属性id |
Body Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
name | string | 否 | 名称 |
enum | string | 否 | 枚举类型数据 |
defaultValue | string | 否 | 默认值 |
precision | integer | 否 | 精度 |
max | string | 否 | 最大值 |
min | string | 否 | 最小值 |
desc | string | 否 | 描述说明 |
propertyTypeId | integer | 否 | 属性类型id |
删除指定接口原型指定属性
删除指定接口原型的指定属性。
HTTP Request
DELETE /v1/api/meta/interfaces/:interfaceId/properties/:id
Request
DELETE /v1/api/meta/interfaces/9a114538-9137-47cf-b0e7-5cef0a101dd0/properties/7
URL Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
interfaceId | string | 是 | 接口原型id |
id | string | 是 | 接口原型属性id |
协议原型管理
查询协议原型
查询协议原型信息。
HTTP Request
GET /v1/api/meta/protocols
Request
GET /v1/api/meta/protocols
Response
{
"total": 1,
"protocols": [
{
"id": "cc58ebc2-81ec-4275-a665-c9a2c9bda868",
"name": "测斜1506",
"image": null,
"desc": "",
"version": "1.1",
"enableTime": "2017-04-14",
"belongTo": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"investor": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"public": false,
"createBy": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"impl": "Lua",
"resource": null,
"marshall": null,
"unmarshall": null,
"createdAt": "2017-04-14T11:49:52.695Z",
"updatedAt": "2017-04-14T11:49:52.695Z"
}
]
}
Query Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
name | string | 是 | 协议名称,模糊查询 |
impl | string | 是 | 实现方式 |
查询指定协议原型
查询指定协议原型信息。
HTTP Request
GET /v1/api/meta/protocols/:id
Request
GET /v1/api/meta/protocols/cc58ebc2-81ec-4275-a665-c9a2c9bda868
Response
{
"id": "cc58ebc2-81ec-4275-a665-c9a2c9bda868",
"name": "测斜1506",
"image": null,
"desc": "",
"version": "1.1",
"enableTime": "2017-04-14",
"belongTo": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"investor": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"public": false,
"createBy": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"impl": "Lua",
"resource": null,
"marshall": null,
"unmarshall": null,
"createdAt": "2017-04-14T11:49:52.695Z",
"updatedAt": "2017-04-14T11:49:52.695Z"
}
URL Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
id | string | 是 | 协议原型id |
创建协议原型
创建协议原型。
HTTP Request
POST /v1/api/meta/protocols
Request
POST /v1/api/meta/protocols
body {
"name": "新增协议"
}
Response
{
"id": "9a684d5d-8546-4d38-9efc-e603cdc61933",
"name": "新增协议",
"image": null,
"desc": null,
"version": null,
"enableTime": null,
"belongTo": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"investor": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"public": false,
"createBy": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"impl": null,
"resource": null,
"marshall": null,
"unmarshall": null,
"createdAt": "2017-04-19T06:44:03.895Z",
"updatedAt": "2017-04-19T06:44:03.895Z"
}
Body Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
name | string | 是 | 名称 |
enableTime | string | 否 | 启用时间 |
impl | enum | 否 | Lua/Python/JS (三选一) |
version | string | 否 | 版本 |
desc | string | 否 | 描述说明 |
删除指定协议原型
删除指定协议原型。
HTTP Request
DELETE /v1/api/meta/protocols/:id
Request
DELETE /v1/api/meta/protocols/9a684d5d-8546-4d38-9efc-e603cdc61933
URL Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
id | string | 是 | 协议原型id |
协议测试接口
对新建或已有协议做基本的测试。
HTTP Request
POST /v1/api/meta/protocols/scripts/validate
Request
POST /v1/api/meta/protocols/scripts/validate
body {
userId: 9a684d5d-8546-4d38-9efc-e603cdc61933,
testId: 9603cd5d-8546-4d38-9efc-a684edc61933
cmd: "RUN", //固定
protocol: {
resource: '',
impl: 'Lua',
resType: 'INLINE'
}
}
Response
以应答为准
Body Parameters
参数 | 类型 | 必填 | 说明 | |
---|---|---|---|---|
userid | string | 是 | 用户id | |
testId | string | 是 | 测试id,与用户id一起唯一标识一次测试 | |
cmd | string | 是 | 固定为 RUN | |
protocol | object | 是 | ||
resource | string | 是 | 被测协议代码 | |
impl | string | 是 | 实现语言,Lua\Javascript\Python | |
resType | string | 是 | 固定为 INLINE |
设备原型管理
查询设备原型
查询设备原型信息。
HTTP Request
GET /v1/api/meta/devices
Request
GET /v1/api/meta/devices
Response
{
"total": 2,
"devices": [
{
"id": "b1ac10e0-2c67-4463-b822-d9bd02bd8d49",
"name": "测斜仪",
"createBy": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"belongTo": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"investor": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"public": false,
"image": "",
"model": "FS",
"createdAt": "2017-04-14T11:54:05.223Z",
"updatedAt": "2017-04-14T11:54:05.223Z",
"properties": [],
"capabilities": [
{
"id": "b5f799ea-a266-48bd-82e9-844aed077738",
"name": "侧斜",
"image": "",
"desc": "",
"deviceMetaId": "b1ac10e0-2c67-4463-b822-d9bd02bd8d49",
"capabilityCategoryId": 3,
"protocolMetaId": "cc58ebc2-81ec-4275-a665-c9a2c9bda868",
"properties": [],
"capabilityCategory": {
"id": 3,
"name": "采集",
"image": null,
"desc": null
},
"protocol": {
"id": "cc58ebc2-81ec-4275-a665-c9a2c9bda868",
"name": "测斜1506",
"image": null,
"desc": "",
"version": "1.1",
"enableTime": "2017-04-14",
"belongTo": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"investor": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"public": false,
"createBy": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"impl": "Lua",
"resource": null,
"marshall": null,
"unmarshall": null
},
"interfaces": [
{
"id": "a988b877-4734-4a7c-b414-a90c18ca29f7",
"capabilityMetaId": "b5f799ea-a266-48bd-82e9-844aed077738",
"deviceMetaInterfaceId": "2eb61402-905c-4e7d-acce-b2776c602257"
}
]
}
],
"interfaces": [
{
"id": "2eb61402-905c-4e7d-acce-b2776c602257",
"directType": 1,
"deviceMetaId": "b1ac10e0-2c67-4463-b822-d9bd02bd8d49",
"interfaceMetaId": "9a114538-9137-47cf-b0e7-5cef0a101dd0",
"interfaceMeta": {
"id": "9a114538-9137-47cf-b0e7-5cef0a101dd0",
"name": "RS485",
"createBy": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"belongTo": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"investor": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"public": false,
"image": null,
"desc": "",
"interfaceTypeId": 1,
"interfaceType": {
"id": 1,
"name": "Serial",
"key": "serial",
"desc": "串口"
},
"properties": [
{
"id": 2,
"name": "mno",
"enum": "",
"defaultValue": "1336",
"precision": 0,
"max": "65535",
"min": "1024",
"desc": "",
"propertyTypeId": 1,
"interfaceMetaId": "9a114538-9137-47cf-b0e7-5cef0a101dd0"
}
]
}
}
]
},
{
"id": "de07a19a-eb81-48b4-9078-8646684e4962",
"name": "DTU",
"createBy": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"belongTo": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"investor": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"public": false,
"image": "",
"model": "CM",
"createdAt": "2017-04-14T11:53:08.306Z",
"updatedAt": "2017-04-14T11:53:08.306Z",
"properties": [],
"capabilities": [
{
"id": "81e499ba-834b-492c-816c-2cc8cc55cc87",
"name": "接入IOTA",
"image": "",
"desc": "",
"deviceMetaId": "de07a19a-eb81-48b4-9078-8646684e4962",
"capabilityCategoryId": 2,
"protocolMetaId": "cc58ebc2-81ec-4275-a665-c9a2c9bda868",
"properties": [],
"capabilityCategory": {
"id": 2,
"name": "控制",
"image": null,
"desc": null
},
"protocol": {
"id": "cc58ebc2-81ec-4275-a665-c9a2c9bda868",
"name": "测斜1506",
"image": null,
"desc": "",
"version": "1.1",
"enableTime": "2017-04-14",
"belongTo": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"investor": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"public": false,
"createBy": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"impl": "Lua",
"resource": null,
"marshall": null,
"unmarshall": null
},
"interfaces": [
{
"id": "a2efa2a9-5771-49a6-b71b-9a5ca186a35c",
"capabilityMetaId": "81e499ba-834b-492c-816c-2cc8cc55cc87",
"deviceMetaInterfaceId": "dd34330c-3f86-4cd5-b772-918b086ca0ff"
}
]
}
],
"interfaces": [
{
"id": "dd34330c-3f86-4cd5-b772-918b086ca0ff",
"directType": 1,
"deviceMetaId": "de07a19a-eb81-48b4-9078-8646684e4962",
"interfaceMetaId": "b14d3424-59cb-4fdb-ba9c-a8a3c1846a0a",
"interfaceMeta": {
"id": "b14d3424-59cb-4fdb-ba9c-a8a3c1846a0a",
"name": "SOIP",
"createBy": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"belongTo": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"investor": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"public": false,
"image": null,
"desc": "",
"interfaceTypeId": 4,
"interfaceType": {
"id": 4,
"name": "SoIP",
"key": "soip",
"desc": "串口 Over IP"
},
"properties": [
{
"id": 1,
"name": "id",
"enum": "",
"defaultValue": "2233",
"precision": 0,
"max": "65535",
"min": "1024",
"desc": "",
"propertyTypeId": 1,
"interfaceMetaId": "b14d3424-59cb-4fdb-ba9c-a8a3c1846a0a"
}
]
}
},
{
"id": "a8f105d4-7f7d-4fdc-be8f-9c876594aecf",
"directType": 2,
"deviceMetaId": "de07a19a-eb81-48b4-9078-8646684e4962",
"interfaceMetaId": "9a114538-9137-47cf-b0e7-5cef0a101dd0",
"interfaceMeta": {
"id": "9a114538-9137-47cf-b0e7-5cef0a101dd0",
"name": "RS485",
"createBy": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"belongTo": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"investor": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"public": false,
"image": null,
"desc": "",
"interfaceTypeId": 1,
"interfaceType": {
"id": 1,
"name": "Serial",
"key": "serial",
"desc": "串口"
},
"properties": [
{
"id": 2,
"name": "mno",
"enum": "",
"defaultValue": "1336",
"precision": 0,
"max": "65535",
"min": "1024",
"desc": "",
"propertyTypeId": 1,
"interfaceMetaId": "9a114538-9137-47cf-b0e7-5cef0a101dd0"
}
]
}
}
]
}
]
}
Query Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
nameOrModel | string | 否 | 设备名称或者型号,模糊查询 |
interfaceTypeIds | string | 否 | 接口类型id,输入多个时以’,‘分隔 |
capabilityCategoryIds | string | 否 | 能力分类id,输入多个时以’,‘分隔 |
protocolMetaIds | string | 否 | 协议id,输入多个时以’,‘分隔 |
interfaceMetas | string | 否 | 接口id_directType, 输入多个时以’,‘ 分隔, 例如 interfaceMetas=xxx_1,yyy_2 |
查询指定设备原型
查询指定设备原型信息。
HTTP Request
GET /v1/api/meta/devices/:id
Request
GET /v1/api/meta/devices/de07a19a-eb81-48b4-9078-8646684e4962
Response
{
"id": "de07a19a-eb81-48b4-9078-8646684e4962",
"name": "DTU",
"createBy": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"belongTo": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"investor": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"public": false,
"image": "",
"model": "CM",
"createdAt": "2017-04-14T11:53:08.306Z",
"updatedAt": "2017-04-14T11:53:08.306Z",
"properties": [],
"capabilities": [
{
"id": "81e499ba-834b-492c-816c-2cc8cc55cc87",
"name": "接入IOTA",
"image": "",
"desc": "",
"deviceMetaId": "de07a19a-eb81-48b4-9078-8646684e4962",
"capabilityCategoryId": 2,
"protocolMetaId": "cc58ebc2-81ec-4275-a665-c9a2c9bda868",
"properties": [],
"capabilityCategory": {
"id": 2,
"name": "控制",
"image": null,
"desc": null
},
"protocol": {
"id": "cc58ebc2-81ec-4275-a665-c9a2c9bda868",
"name": "测斜1506",
"image": null,
"desc": "",
"version": "1.1",
"enableTime": "2017-04-14",
"belongTo": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"investor": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"public": false,
"createBy": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"impl": "Lua",
"resource": null,
"marshall": null,
"unmarshall": null
},
"interfaces": [
{
"id": "a2efa2a9-5771-49a6-b71b-9a5ca186a35c",
"capabilityMetaId": "81e499ba-834b-492c-816c-2cc8cc55cc87",
"deviceMetaInterfaceId": "dd34330c-3f86-4cd5-b772-918b086ca0ff"
}
]
}
],
"interfaces": [
{
"id": "dd34330c-3f86-4cd5-b772-918b086ca0ff",
"directType": 1,
"deviceMetaId": "de07a19a-eb81-48b4-9078-8646684e4962",
"interfaceMetaId": "b14d3424-59cb-4fdb-ba9c-a8a3c1846a0a",
"interfaceMeta": {
"id": "b14d3424-59cb-4fdb-ba9c-a8a3c1846a0a",
"name": "SOIP",
"createBy": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"belongTo": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"investor": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"public": false,
"image": null,
"desc": "",
"interfaceTypeId": 4,
"interfaceType": {
"id": 4,
"name": "SoIP",
"key": "soip",
"desc": "串口 Over IP"
},
"properties": [
{
"id": 1,
"name": "id",
"enum": "",
"defaultValue": "2233",
"precision": 0,
"max": "65535",
"min": "1024",
"desc": "",
"propertyTypeId": 1,
"interfaceMetaId": "b14d3424-59cb-4fdb-ba9c-a8a3c1846a0a"
}
]
}
},
{
"id": "a8f105d4-7f7d-4fdc-be8f-9c876594aecf",
"directType": 2,
"deviceMetaId": "de07a19a-eb81-48b4-9078-8646684e4962",
"interfaceMetaId": "9a114538-9137-47cf-b0e7-5cef0a101dd0",
"interfaceMeta": {
"id": "9a114538-9137-47cf-b0e7-5cef0a101dd0",
"name": "RS485",
"createBy": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"belongTo": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"investor": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"public": false,
"image": null,
"desc": "",
"interfaceTypeId": 1,
"interfaceType": {
"id": 1,
"name": "Serial",
"key": "serial",
"desc": "串口"
},
"properties": [
{
"id": 2,
"name": "mno",
"enum": "",
"defaultValue": "1336",
"precision": 0,
"max": "65535",
"min": "1024",
"desc": "",
"propertyTypeId": 1,
"interfaceMetaId": "9a114538-9137-47cf-b0e7-5cef0a101dd0"
}
]
}
}
]
}
URL Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
id | string | 是 | 设备原型id |
创建设备原型
创建设备原型。
HTTP Request
POST /v1/api/meta/devices
Request
POST /v1/api/meta/devices
body {
"name": "新增设备",
"properties": [
{
"name": "新增设备属性"
}
],
"interfaces": [
{
"interfaceMetaId": "9a114538-9137-47cf-b0e7-5cef0a101dd0"
}
],
"capabilities": [
{
"name": "新增设备能力",
"protocolMetaId": "cc58ebc2-81ec-4275-a665-c9a2c9bda868",
"capabilityCategoryId": 1,
"interfaces": [
0
],
"properties": [
{
"name": "新增设备能力属性"
}
]
}
]
}
Response
{
"name": "新增设备",
"properties": [
{
"id": 1,
"name": "新增设备属性",
"deviceMetaId": "da08d9f0-eace-4a09-b4bd-05fb7613e8c1",
"updatedAt": "2017-04-19T08:19:14.158Z",
"createdAt": "2017-04-19T08:19:14.158Z",
"image": null,
"enum": null,
"defaultValue": null,
"precision": null,
"max": null,
"min": null,
"desc": null,
"propertyTypeId": null
}
],
"interfaces": [
{
"id": "3546a0b2-cfcf-46db-a7e6-cd8f57861947",
"directType": 1,
"interfaceMetaId": "9a114538-9137-47cf-b0e7-5cef0a101dd0",
"deviceMetaId": "da08d9f0-eace-4a09-b4bd-05fb7613e8c1",
"updatedAt": "2017-04-19T08:19:14.111Z",
"createdAt": "2017-04-19T08:19:14.111Z"
}
],
"capabilities": [
{
"name": "新增设备能力",
"protocolMetaId": "cc58ebc2-81ec-4275-a665-c9a2c9bda868",
"capabilityCategoryId": 1,
"interfaces": [
{
"id": "92733c3d-1d99-4d69-ad0e-2249fd503cbb",
"capabilityMetaId": "3741ced1-0265-4c79-8771-64a1b7aaf60f",
"deviceMetaInterfaceId": "3546a0b2-cfcf-46db-a7e6-cd8f57861947",
"updatedAt": "2017-04-19T08:19:14.158Z",
"createdAt": "2017-04-19T08:19:14.158Z"
}
],
"properties": [
{
"id": 1,
"name": "新增设备能力属性",
"updatedAt": "2017-04-19T08:19:14.111Z",
"createdAt": "2017-04-19T08:19:14.111Z",
"image": null,
"enum": null,
"defaultValue": null,
"precision": null,
"max": null,
"min": null,
"desc": null,
"capabilityMetaId": null,
"propertyTypeId": null
}
],
"id": "3741ced1-0265-4c79-8771-64a1b7aaf60f"
}
],
"createBy": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"belongTo": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"investor": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"id": "da08d9f0-eace-4a09-b4bd-05fb7613e8c1"
}
Body Parameters
参数 | 类型 | 必填 | 说明 | ||
---|---|---|---|---|---|
name | string | 是 | 名称 | ||
model | string | 否 | 型号 | ||
image | string | 否 | 图片地址 | ||
desc | string | 否 | 描述说明 | ||
properties | array of object | 是 | 设备属性 | ||
name | string | 是 | 属性名称 | ||
enum | string | 否 | 属性枚举类型数据 | ||
defaultValue | string | 否 | 属性默认值 | ||
precision | integer | 否 | 属性精度 | ||
max | string | 否 | 属性最大值 | ||
min | string | 否 | 属性最小值 | ||
desc | string | 否 | 属性描述 | ||
propertyTypeId | integer | 否 | 属性类型id | ||
interfaces | array of object | 是 | 设备接口 | ||
interfaceMetaId | string | 是 | 接口原型id | ||
directType | enum | 否 | 1/2 (接口方向,1为上行,2为下行) |
||
capabilities | array of object | 是 | 设备能力 | ||
name | string | 是 | 能力名称 | ||
image | string | 否 | 能力图片地址 | ||
desc | string | 否 | 能力描述说明 | ||
interfaces | array | 是 | 能力接口(数组元素为设备接口数据的数组索引) | ||
protocolMetaId | string | 否 | 协议原型id,可选,以解决部分设备的数据处理交由其上级设备处理的情形 | ||
capabilityCategoryId | integer | 是 | 能力类别id | ||
properties | array of object | 是 | 能力属性 | ||
name | string | 是 | 属性名称 | ||
enum | string | 否 | 属性枚举类型数据 | ||
defaultValue | string | 否 | 属性默认值 | ||
precision | integer | 否 | 属性精度 | ||
max | string | 否 | 属性最大值 | ||
min | string | 否 | 属性最小值 | ||
desc | string | 否 | 属性描述 | ||
propertyTypeId | integer | 否 | 属性类型id |
修改指定设备原型
修改指定设备原型信息。
HTTP Request
PUT /v1/api/meta/devices/:id
Request
PUT /v1/api/meta/devices/da08d9f0-eace-4a09-b4bd-05fb7613e8c1
body {
"name": "更改设备"
}
URL Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
id | string | 是 | 设备原型id |
Body Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
name | string | 否 | 名称 |
model | string | 否 | 型号 |
image | string | 否 | 图片地址 |
desc | string | 否 | 描述说明 |
删除指定设备原型
删除指定设备原型。
HTTP Request
DELETE /v1/api/meta/devices/:id
Request
DELETE /v1/api/meta/devices/da08d9f0-eace-4a09-b4bd-05fb7613e8c1
URL Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
id | string | 是 | 设备原型id |
复制设备原型
复制设备原型。
HTTP Request
POST /v1/api/meta/devices/:id
Request
POST /v1/api/meta/devices/da08d9f0-eace-4a09-b4bd-05fb7613e8c1
Response
{
"name": "新增设备",
"properties": [
{
"id": 1,
"name": "新增设备属性",
"deviceMetaId": "da08d9f0-eace-4a09-b4bd-05fb7613e8c1",
"updatedAt": "2017-04-19T08:19:14.158Z",
"createdAt": "2017-04-19T08:19:14.158Z",
"image": null,
"enum": null,
"defaultValue": null,
"precision": null,
"max": null,
"min": null,
"desc": null,
"propertyTypeId": null
}
],
"interfaces": [
{
"id": "3546a0b2-cfcf-46db-a7e6-cd8f57861947",
"directType": 1,
"interfaceMetaId": "9a114538-9137-47cf-b0e7-5cef0a101dd0",
"deviceMetaId": "da08d9f0-eace-4a09-b4bd-05fb7613e8c1",
"updatedAt": "2017-04-19T08:19:14.111Z",
"createdAt": "2017-04-19T08:19:14.111Z"
}
],
"capabilities": [
{
"name": "新增设备能力",
"protocolMetaId": "cc58ebc2-81ec-4275-a665-c9a2c9bda868",
"capabilityCategoryId": 1,
"interfaces": [
{
"id": "92733c3d-1d99-4d69-ad0e-2249fd503cbb",
"capabilityMetaId": "3741ced1-0265-4c79-8771-64a1b7aaf60f",
"deviceMetaInterfaceId": "3546a0b2-cfcf-46db-a7e6-cd8f57861947",
"updatedAt": "2017-04-19T08:19:14.158Z",
"createdAt": "2017-04-19T08:19:14.158Z"
}
],
"properties": [
{
"id": 1,
"name": "新增设备能力属性",
"updatedAt": "2017-04-19T08:19:14.111Z",
"createdAt": "2017-04-19T08:19:14.111Z",
"image": null,
"enum": null,
"defaultValue": null,
"precision": null,
"max": null,
"min": null,
"desc": null,
"capabilityMetaId": null,
"propertyTypeId": null
}
],
"id": "3741ced1-0265-4c79-8771-64a1b7aaf60f"
}
],
"createBy": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"belongTo": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"investor": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"id": "da08d9f0-eace-4a09-b4bd-05fb7613e8c1"
}
URL Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
id | string | 是 | 待拷贝的设备原型id |
申请设备原型公开
用户在通过企业认证的情况下,申请设备公开。 这样设备即作为定型设备,可供系统内其他用户选用。
HTTP Request
POST /v1/api/accounts/certifications/devices
Request
POST /v1/api/accounts/certifications/devices
{deviceMetaId: "180c854a-5ace-4044-babd-b270f98fde6b"}
Body Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
deviceMetaId | string | 是 | 设备原型id |
重新发起设备原型公开申请
未审核通过的情况下,修改后再次发起申请
HTTP Request
PUT /v1/api/accounts/certifications/devices
Request
PUT /v1/api/accounts/certifications/devices
{deviceMetaId: "180c854a-5ace-4044-babd-b270f98fde6b"}
Body Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
deviceMetaId | string | 是 | 设备原型id |
查询指定设备原型属性
查询指定设备原型的属性信息。
HTTP Request
GET /v1/api/meta/devices/:deviceId/properties
Request
GET /v1/api/meta/devices/25d6e030-8111-4d9f-89a4-91c47e94e598/properties
Response
[
{
"id": 3,
"name": "新增设备属性11",
"image": null,
"enum": null,
"defaultValue": null,
"precision": null,
"max": null,
"min": null,
"desc": null,
"deviceMetaId": "25d6e030-8111-4d9f-89a4-91c47e94e598",
"propertyTypeId": null
},
{
"id": 2,
"name": "新增设备属性",
"image": null,
"enum": null,
"defaultValue": null,
"precision": null,
"max": null,
"min": null,
"desc": null,
"deviceMetaId": "25d6e030-8111-4d9f-89a4-91c47e94e598",
"propertyTypeId": null
}
]
URL Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
deviceId | string | 是 | 设备原型id |
查询指定设备原型指定属性
查询指定设备原型的指定属性信息。
HTTP Request
GET /v1/api/meta/devices/:deviceId/properties/:id
Request
GET /v1/api/meta/devices/25d6e030-8111-4d9f-89a4-91c47e94e598/properties/2
Response
{
"id": 2,
"name": "新增设备属性",
"image": null,
"enum": null,
"defaultValue": null,
"precision": null,
"max": null,
"min": null,
"desc": null,
"deviceMetaId": "25d6e030-8111-4d9f-89a4-91c47e94e598",
"propertyTypeId": null
}
URL Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
deviceId | string | 是 | 设备原型id |
id | string | 是 | 设备原型属性id |
创建指定设备原型属性
创建指定设备原型属性
HTTP Request
POST /v1/api/meta/devices/:deviceId/properties
Request
POST /v1/api/meta/devices/25d6e030-8111-4d9f-89a4-91c47e94e598/properties
body {
"name": "新增设备属性11"
}
Response
{
"id": 3,
"name": "新增设备属性11",
"deviceMetaId": "25d6e030-8111-4d9f-89a4-91c47e94e598",
"updatedAt": "2017-04-19T09:11:21.449Z",
"createdAt": "2017-04-19T09:11:21.449Z",
"image": null,
"enum": null,
"defaultValue": null,
"precision": null,
"max": null,
"min": null,
"desc": null,
"propertyTypeId": null
}
URL Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
deviceId | string | 是 | 设备原型id |
Body Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
name | string | 是 | 属性名称 |
enum | string | 否 | 属性枚举类型数据 |
defaultValue | string | 否 | 属性默认值 |
precision | integer | 否 | 属性精度 |
max | string | 否 | 属性最大值 |
min | string | 否 | 属性最小值 |
desc | string | 否 | 属性描述 |
propertyTypeId | integer | 否 | 属性类型id |
修改指定设备原型指定属性
修改指定设备原型的指定属性信息。
HTTP Request
PUT /v1/api/meta/devices/:deviceId/properties/:id
Request
PUT /v1/api/meta/devices/25d6e030-8111-4d9f-89a4-91c47e94e598/properties/3
body {
"name": "修改设备属性"
}
URL Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
deviceId | string | 是 | 设备原型id |
id | string | 是 | 设备原型属性id |
Body Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
name | string | 否 | 属性名称 |
enum | string | 否 | 属性枚举类型数据 |
defaultValue | string | 否 | 属性默认值 |
precision | integer | 否 | 属性精度 |
max | string | 否 | 属性最大值 |
min | string | 否 | 属性最小值 |
desc | string | 否 | 属性描述 |
propertyTypeId | integer | 否 | 属性类型id |
删除指定设备原型指定属性
删除指定设备原型的指定属性。
HTTP Request
DELETE /v1/api/meta/devices/:deviceId/properties/:id
Request
DELETE /v1/api/meta/devices/25d6e030-8111-4d9f-89a4-91c47e94e598/properties/3
URL Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
deviceId | string | 是 | 设备原型id |
id | string | 是 | 设备原型属性id |
查询指定设备原型能力
查询指定设备原型的能力信息。
HTTP Request
GET /v1/api/meta/devices/:deviceId/capabilities
Request
GET /v1/api/meta/devices/25d6e030-8111-4d9f-89a4-91c47e94e598/capabilities
Response
{
"total": 1,
"capabilityMetas": [
{
"id": "1a5cd2cd-9b5f-4278-a621-aa83d5018b5b",
"name": "新增设备能力",
"image": null,
"desc": null,
"createdAt": "2017-04-19T09:03:07.302Z",
"deviceMetaId": "25d6e030-8111-4d9f-89a4-91c47e94e598",
"capabilityCategoryId": 1,
"protocolMetaId": "9a51184f-8f72-4da2-b1cc-1d4052d7e4b2",
"properties": [],
"capabilityCategory": {
"id": 1,
"name": "诊断",
"image": null,
"desc": null,
"createdAt": "2017-04-19T08:51:11.675Z"
},
"protocol": {
"id": "9a51184f-8f72-4da2-b1cc-1d4052d7e4b2",
"name": "Modbus",
"image": null,
"desc": "Modbus是由Modicon(现为施耐德电气公司的一个品牌)在1979年发明的,是全球第一个真正用于工业现场的总线协议。",
"version": "1.0",
"enableTime": "2017-03-18",
"belongTo": "72ec5c70-043e-4242-851f-756bbca0c38e",
"investor": "72ec5c70-043e-4242-851f-756bbca0c38e",
"public": false,
"createBy": "72ec5c70-043e-4242-851f-756bbca0c38e",
"impl": null,
"resource": null,
"marshall": null,
"unmarshall": null,
"createdAt": "2017-04-19T08:51:11.613Z"
},
"interfaces": [
{
"id": "719dcc30-837b-4e78-968e-31f875bfa57d",
"name": "MsgHandler",
"createBy": "72ec5c70-043e-4242-851f-756bbca0c38e",
"belongTo": "72ec5c70-043e-4242-851f-756bbca0c38e",
"investor": "72ec5c70-043e-4242-851f-756bbca0c38e",
"public": false,
"image": null,
"desc": "消息处理接口",
"createdAt": "2017-04-19T08:51:11.660Z",
"updatedAt": "2017-04-19T08:51:11.660Z",
"interfaceTypeId": 1,
"interfaceType": {
"id": 1,
"name": "Serial",
"key": "serial",
"desc": "串口"
},
"properties": [],
"deviceMetaInterfaceId": "ae563bf7-bb33-4afd-aff8-b29b5bf6a7d9",
"interfaceMetaId": "5a3450f4-53f4-4336-8c3e-0c746e7c01e2"
}
]
}
]
}
URL Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
deviceId | string | 是 | 设备原型id |
查询指定设备原型指定能力
查询指定设备原型的指定能力信息。
HTTP Request
GET /v1/api/meta/devices/:deviceId/capabilities/:id
Request
GET /v1/api/meta/devices/25d6e030-8111-4d9f-89a4-91c47e94e598/capabilities/1a5cd2cd-9b5f-4278-a621-aa83d5018b5b
Response
{
"id": "1a5cd2cd-9b5f-4278-a621-aa83d5018b5b",
"name": "新增设备能力",
"image": null,
"desc": null,
"createdAt": "2017-04-19T09:03:07.302Z",
"deviceMetaId": "25d6e030-8111-4d9f-89a4-91c47e94e598",
"capabilityCategoryId": 1,
"protocolMetaId": "9a51184f-8f72-4da2-b1cc-1d4052d7e4b2",
"properties": [],
"capabilityCategory": {
"id": 1,
"name": "诊断",
"image": null,
"desc": null,
"createdAt": "2017-04-19T08:51:11.675Z"
},
"protocol": {
"id": "9a51184f-8f72-4da2-b1cc-1d4052d7e4b2",
"name": "Modbus",
"image": null,
"desc": "Modbus是由Modicon(现为施耐德电气公司的一个品牌)在1979年发明的,是全球第一个真正用于工业现场的总线协议。",
"version": "1.0",
"enableTime": "2017-03-18",
"belongTo": "72ec5c70-043e-4242-851f-756bbca0c38e",
"investor": "72ec5c70-043e-4242-851f-756bbca0c38e",
"public": false,
"createBy": "72ec5c70-043e-4242-851f-756bbca0c38e",
"impl": null,
"resource": null,
"marshall": null,
"unmarshall": null,
"createdAt": "2017-04-19T08:51:11.613Z"
},
"interfaces": [
{
"id": "719dcc30-837b-4e78-968e-31f875bfa57d",
"name": "MsgHandler",
"createBy": "72ec5c70-043e-4242-851f-756bbca0c38e",
"belongTo": "72ec5c70-043e-4242-851f-756bbca0c38e",
"investor": "72ec5c70-043e-4242-851f-756bbca0c38e",
"public": false,
"image": null,
"desc": "消息处理接口",
"createdAt": "2017-04-19T08:51:11.660Z",
"updatedAt": "2017-04-19T08:51:11.660Z",
"interfaceTypeId": 1,
"interfaceType": {
"id": 1,
"name": "Serial",
"key": "serial",
"desc": "串口"
},
"properties": [],
"deviceMetaInterfaceId": "ae563bf7-bb33-4afd-aff8-b29b5bf6a7d9",
"interfaceMetaId": "5a3450f4-53f4-4336-8c3e-0c746e7c01e2"
}
]
}
URL Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
deviceId | string | 是 | 设备原型id |
id | string | 是 | 设备原型能力id |
创建指定设备原型能力
创建指定设备原型能力。
HTTP Request
POST /v1/api/meta/devices/:deviceId/capabilities
Request
POST /v1/api/meta/devices/25d6e030-8111-4d9f-89a4-91c47e94e598/capabilities
body {
"name": "新增设备能力233",
"protocolMetaId": "9a51184f-8f72-4da2-b1cc-1d4052d7e4b2",
"interfaces": [
"ae563bf7-bb33-4afd-aff8-b29b5bf6a7d9"
],
"capabilityCategoryId": 1
}
Response
{
"id": "f8d493d5-be28-4769-911d-3f64c3072532",
"name": "新增设备能力233",
"capabilityCategoryId": 1,
"desc": null,
"image": null,
"protocolMetaId": "9a51184f-8f72-4da2-b1cc-1d4052d7e4b2",
"deviceMetaId": "25d6e030-8111-4d9f-89a4-91c47e94e598",
"updatedAt": "2017-04-19T09:54:02.333Z",
"createdAt": "2017-04-19T09:54:02.333Z"
}
URL Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
deviceId | string | 是 | 设备原型id |
Body Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
name | string | 是 | 名称 |
image | string | 否 | 图片地址 |
desc | string | 否 | 描述说明 |
interfaces | array | 是 | 能力接口(数组元素为设备与接口的关联id) |
protocolMetaId | string | 是 | 协议原型id |
capabilityCategoryId | integer | 是 | 能力类别id |
修改指定设备原型指定能力
修改指定设备原型的指定能力信息。
HTTP Request
PUT /v1/api/meta/devices/:deviceId/capabilities/:id
Request
PUT /v1/api/meta/devices/25d6e030-8111-4d9f-89a4-91c47e94e598/capabilities/f8d493d5-be28-4769-911d-3f64c3072532
body {
"name": "新增设备能力566",
"protocolMetaId": "9a51184f-8f72-4da2-b1cc-1d4052d7e4b2",
"interfaces": [
"ae563bf7-bb33-4afd-aff8-b29b5bf6a7d9"
],
"capabilityCategoryId": 2
}
Response
能力接口数组
[
"03908025-7865-4d50-b765-a7f689803c0c"
]
URL Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
deviceId | string | 是 | 设备原型id |
id | string | 是 | 设备原型能力id |
Body Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
name | string | 是 | 名称 |
image | string | 否 | 图片地址 |
desc | string | 否 | 描述说明 |
interfaces | array | 是 | 能力接口(数组元素为设备与接口的关联id) |
protocolMetaId | string | 是 | 协议原型id |
capabilityCategoryId | integer | 是 | 能力类别id |
删除指定设备原型指定能力
删除指定设备原型的指定能力。
HTTP Request
DELETE /v1/api/meta/devices/:deviceId/capabilities/:id
Request
DELETE /v1/api/meta/devices/25d6e030-8111-4d9f-89a4-91c47e94e598/capabilities/f8d493d5-be28-4769-911d-3f64c3072532
URL Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
deviceId | string | 是 | 设备原型id |
id | string | 是 | 设备原型能力id |
设备接口管理
查询设备原型接口
查询指定设备原型的接口信息。
HTTP Request
GET /v1/api/meta/devices/:deviceId/interfaces
Request
GET /v1/api/meta/devices/25d6e030-8111-4d9f-89a4-91c47e94e598/interfaces
Response
{
"total": 1,
"interfaces": [
{
"id": "ae563bf7-bb33-4afd-aff8-b29b5bf6a7d9",
"directType": 1,
"createdAt": "2017-04-19T09:03:07.302Z",
"updatedAt": "2017-04-19T09:03:07.302Z",
"deviceMetaId": "25d6e030-8111-4d9f-89a4-91c47e94e598",
"interfaceMetaId": "5a3450f4-53f4-4336-8c3e-0c746e7c01e2",
"interfaceMeta": {
"id": "5a3450f4-53f4-4336-8c3e-0c746e7c01e2",
"name": "MsgHandler",
"createBy": "72ec5c70-043e-4242-851f-756bbca0c38e",
"belongTo": "72ec5c70-043e-4242-851f-756bbca0c38e",
"investor": "72ec5c70-043e-4242-851f-756bbca0c38e",
"public": false,
"image": null,
"desc": "消息处理接口",
"createdAt": "2017-04-19T08:51:11.660Z",
"updatedAt": "2017-04-19T08:51:11.660Z",
"interfaceTypeId": 1
}
}
]
}
URL Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
deviceId | string | 是 | 设备原型id |
查询设备原型指定接口
查询指定设备原型的指定接口信息。
HTTP Request
GET /v1/api/meta/devices/:deviceId/interfaces/:id
Request
GET /v1/api/meta/devices/25d6e030-8111-4d9f-89a4-91c47e94e598/interfaces/ae563bf7-bb33-4afd-aff8-b29b5bf6a7d9
Response
{
"id": "ae563bf7-bb33-4afd-aff8-b29b5bf6a7d9",
"directType": 1,
"createdAt": "2017-04-19T09:03:07.302Z",
"updatedAt": "2017-04-19T09:03:07.302Z",
"deviceMetaId": "25d6e030-8111-4d9f-89a4-91c47e94e598",
"interfaceMetaId": "5a3450f4-53f4-4336-8c3e-0c746e7c01e2",
"interfaceMeta": {
"id": "5a3450f4-53f4-4336-8c3e-0c746e7c01e2",
"name": "MsgHandler",
"createBy": "72ec5c70-043e-4242-851f-756bbca0c38e",
"belongTo": "72ec5c70-043e-4242-851f-756bbca0c38e",
"investor": "72ec5c70-043e-4242-851f-756bbca0c38e",
"public": false,
"image": null,
"desc": "消息处理接口",
"createdAt": "2017-04-19T08:51:11.660Z",
"updatedAt": "2017-04-19T08:51:11.660Z",
"interfaceTypeId": 1
}
}
URL Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
deviceId | string | 是 | 设备原型id |
id | string | 是 | 设备与接口的关联id |
增加设备原型接口
指定设备原型与指定指定接口原型建立关联关系。
HTTP Request
POST /v1/api/meta/devices/:deviceId/interfaces
Request
POST /v1/api/meta/devices/25d6e030-8111-4d9f-89a4-91c47e94e598/interfaces
body {
"interfaceMetaId": "5a3450f4-53f4-4336-8c3e-0c746e7c01e2",
"directType": 2
}
Response
{
"id": "f55bf584-d082-4b6c-b7a3-9a0215b51b13",
"deviceMetaId": "25d6e030-8111-4d9f-89a4-91c47e94e598",
"interfaceMetaId": "5a3450f4-53f4-4336-8c3e-0c746e7c01e2",
"directType": 2,
"updatedAt": "2017-04-19T10:49:45.671Z",
"createdAt": "2017-04-19T10:49:45.671Z"
}
URL Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
deviceId | string | 是 | 设备原型id |
Body Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
interfaceMetaId | string | 是 | 接口原型id |
directType | enum | 是 | 1/2 (接口方向,1为上行,2为下行) |
修改设备原型指定接口
修改指定设备原型与指定指定接口原型的关联关系。
HTTP Request
PUT /v1/api/meta/devices/:deviceId/interfaces/:id
Request
PUT /v1/api/meta/devices/25d6e030-8111-4d9f-89a4-91c47e94e598/interfaces/ae563bf7-bb33-4afd-aff8-b29b5bf6a7d9
body {
"interfaceMetaId": "5a3450f4-53f4-4336-8c3e-0c746e7c01e2",
"directType": 1
}
URL Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
deviceId | string | 是 | 设备原型id |
id | string | 是 | 设备与接口的关联id |
Body Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
interfaceMetaId | string | 是 | 接口原型id |
directType | enum | 是 | 1/2 (接口方向,1为上行,2为下行) |
删除设备原型指定接口
解除指定设备原型与指定指定接口原型的关联关系。
HTTP Request
DELETE /v1/api/meta/devices/:deviceId/interfaces/:id
Request
DELETE /v1/api/meta/devices/25d6e030-8111-4d9f-89a4-91c47e94e598/interfaces/ae563bf7-bb33-4afd-aff8-b29b5bf6a7d9
URL Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
deviceId | string | 是 | 设备原型id |
id | string | 是 | 设备与接口的关联id |
设备能力管理
查询设备原型能力接口
查询指定设备原型的能力的接口信息。
HTTP Request
GET /v1/api/meta/devices/:deviceId/capabilities/:capabilityId/interfaces
Request
GET /v1/api/meta/devices/25d6e030-8111-4d9f-89a4-91c47e94e598/capabilities/1a5cd2cd-9b5f-4278-a621-aa83d5018b5b/interfaces
Response
{
"total": 1,
"interfaces": [
{
"id": "56511d4d-3e63-4240-b24b-fb648ba754e1",
"createdAt": "2017-04-20T02:08:22.984Z",
"updatedAt": "2017-04-20T02:08:22.984Z",
"capabilityMetaId": "1a5cd2cd-9b5f-4278-a621-aa83d5018b5b",
"deviceMetaInterfaceId": "f55bf584-d082-4b6c-b7a3-9a0215b51b13",
"deviceMetaInterface": {
"id": "f55bf584-d082-4b6c-b7a3-9a0215b51b13",
"directType": 2,
"createdAt": "2017-04-19T10:49:45.671Z",
"updatedAt": "2017-04-19T10:49:45.671Z",
"deviceMetaId": "25d6e030-8111-4d9f-89a4-91c47e94e598",
"interfaceMetaId": "5a3450f4-53f4-4336-8c3e-0c746e7c01e2",
"interfaceMeta": {
"id": "5a3450f4-53f4-4336-8c3e-0c746e7c01e2",
"name": "MsgHandler",
"createBy": "72ec5c70-043e-4242-851f-756bbca0c38e",
"belongTo": "72ec5c70-043e-4242-851f-756bbca0c38e",
"investor": "72ec5c70-043e-4242-851f-756bbca0c38e",
"public": false,
"image": null,
"desc": "消息处理接口",
"createdAt": "2017-04-19T08:51:11.660Z",
"updatedAt": "2017-04-19T08:51:11.660Z",
"interfaceTypeId": 1
}
}
}
]
}
URL Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
deviceId | string | 是 | 设备原型id |
capabilityId | string | 是 | 能力原型id |
查询设备原型能力指定接口
查询指定设备原型的能力的指定接口信息。
HTTP Request
GET /v1/api/meta/devices/:deviceId/capabilities/:capabilityId/interfaces/:id
Request
GET v1/api/meta/devices/25d6e030-8111-4d9f-89a4-91c47e94e598/capabilities/1a5cd2cd-9b5f-4278-a621-aa83d5018b5b/interfaces/56511d4d-3e63-4240-b24b-fb648ba754e1
Response
{
"id": "56511d4d-3e63-4240-b24b-fb648ba754e1",
"createdAt": "2017-04-20T02:08:22.984Z",
"updatedAt": "2017-04-20T02:08:22.984Z",
"capabilityMetaId": "1a5cd2cd-9b5f-4278-a621-aa83d5018b5b",
"deviceMetaInterfaceId": "f55bf584-d082-4b6c-b7a3-9a0215b51b13",
"deviceMetaInterface": {
"id": "f55bf584-d082-4b6c-b7a3-9a0215b51b13",
"directType": 2,
"createdAt": "2017-04-19T10:49:45.671Z",
"updatedAt": "2017-04-19T10:49:45.671Z",
"deviceMetaId": "25d6e030-8111-4d9f-89a4-91c47e94e598",
"interfaceMetaId": "5a3450f4-53f4-4336-8c3e-0c746e7c01e2",
"interfaceMeta": {
"id": "5a3450f4-53f4-4336-8c3e-0c746e7c01e2",
"name": "MsgHandler",
"createBy": "72ec5c70-043e-4242-851f-756bbca0c38e",
"belongTo": "72ec5c70-043e-4242-851f-756bbca0c38e",
"investor": "72ec5c70-043e-4242-851f-756bbca0c38e",
"public": false,
"image": null,
"desc": "消息处理接口",
"createdAt": "2017-04-19T08:51:11.660Z",
"updatedAt": "2017-04-19T08:51:11.660Z",
"interfaceTypeId": 1
}
}
}
URL Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
deviceId | string | 是 | 设备原型id |
capabilityId | string | 是 | 能力原型id |
id | string | 是 | 设备能力与设备接口的关联id |
增加设备原型能力接口
指定设备原型的指定能力与该设备的指定关联接口建立关联关系。
HTTP Request
POST /v1/api/meta/devices/:deviceId/capabilities/:capabilityId/interfaces
Request
POST /v1/api/meta/devices/25d6e030-8111-4d9f-89a4-91c47e94e598/capabilities/1a5cd2cd-9b5f-4278-a621-aa83d5018b5b/interfaces
body {
"deviceMetaInterfaceId": "f55bf584-d082-4b6c-b7a3-9a0215b51b13"
}
Response
{
"id": "56511d4d-3e63-4240-b24b-fb648ba754e1",
"capabilityMetaId": "1a5cd2cd-9b5f-4278-a621-aa83d5018b5b",
"deviceMetaInterfaceId": "f55bf584-d082-4b6c-b7a3-9a0215b51b13",
"updatedAt": "2017-04-20T02:08:22.984Z",
"createdAt": "2017-04-20T02:08:22.984Z"
}
URL Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
deviceId | string | 是 | 设备原型id |
capabilityId | string | 是 | 能力原型id |
Body Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
deviceMetaInterfaceId | string | 是 | 设备原型与接口原型的关联id |
修改设备原型能力指定接口
修改指定设备原型的指定能力与该设备的指定关联接口的关联关系。
HTTP Request
PUT /v1/api/meta/devices/:deviceId/capabilities/:capabilityId/interfaces/:id
Request
PUT /v1/api/meta/devices/25d6e030-8111-4d9f-89a4-91c47e94e598/capabilities/1a5cd2cd-9b5f-4278-a621-aa83d5018b5b/interfaces/56511d4d-3e63-4240-b24b-fb648ba754e1
body {
"deviceMetaInterfaceId": "f55bf584-d082-4b6c-b7a3-9a0215b51b13"
}
URL Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
deviceId | string | 是 | 设备原型id |
capabilityId | string | 是 | 能力原型id |
id | string | 是 | 设备能力与设备接口的关联id |
Body Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
deviceMetaInterfaceId | string | 是 | 设备原型与接口原型的关联id |
删除设备原型能力指定接口
解除指定设备原型的指定能力与该设备的指定关联接口的关联关系。
HTTP Request
DELETE /v1/api/meta/devices/:deviceId/capabilities/:capabilityId/interfaces/:id
Request
DELETE /v1/api/meta/devices/25d6e030-8111-4d9f-89a4-91c47e94e598/capabilities/1a5cd2cd-9b5f-4278-a621-aa83d5018b5b/interfaces/56511d4d-3e63-4240-b24b-fb648ba754e1
URL Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
deviceId | string | 是 | 设备原型id |
capabilityId | string | 是 | 能力原型id |
id | string | 是 | 设备与接口的关联id |
能力属性管理
查询指定能力原型属性
查询能力原型的属性信息。
HTTP Request
GET /v1/api/meta/capabilities/:capabilityId/properties
Request
GET /v1/api/meta/capabilities/1a5cd2cd-9b5f-4278-a621-aa83d5018b5b/properties
Response
[
{
"id": 3,
"name": "新增能力属性",
"image": null,
"enum": null,
"defaultValue": null,
"precision": null,
"max": null,
"min": null,
"desc": null,
"capabilityMetaId": "1a5cd2cd-9b5f-4278-a621-aa83d5018b5b",
"propertyTypeId": null
}
]
URL Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
capabilityId | string | 是 | 能力原型id |
查询指定能力原型指定属性
查询指定能力原型的指定属性信息。
HTTP Request
GET /v1/api/meta/capabilities/:capabilityId/properties/:id
Request
GET /v1/api/meta/capabilities/1a5cd2cd-9b5f-4278-a621-aa83d5018b5b/properties/3
Response
{
"id": 3,
"name": "新增能力属性",
"image": null,
"enum": null,
"defaultValue": null,
"precision": null,
"max": null,
"min": null,
"desc": null,
"capabilityMetaId": "1a5cd2cd-9b5f-4278-a621-aa83d5018b5b",
"propertyTypeId": null
}
URL Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
capabilityId | string | 是 | 能力原型id |
id | string | 是 | 能力原型属性id |
创建指定能力原型属性
创建指定能力原型属性。
HTTP Request
POST /v1/api/meta/capabilities/:capabilityId/properties
Request
POST /v1/api/meta/capabilities/1a5cd2cd-9b5f-4278-a621-aa83d5018b5b/properties
body {
"name": "新增能力属性"
}
Response
{
"id": 3,
"name": "新增能力属性",
"updatedAt": "2017-04-20T02:49:46.001Z",
"createdAt": "2017-04-20T02:49:46.001Z",
"image": null,
"enum": null,
"defaultValue": null,
"precision": null,
"max": null,
"min": null,
"desc": null,
"capabilityMetaId": "1a5cd2cd-9b5f-4278-a621-aa83d5018b5b",
"propertyTypeId": null
}
URL Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
capabilityId | string | 是 | 能力原型id |
Body Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
name | string | 是 | 名称 |
enum | string | 否 | 枚举类型数据 |
defaultValue | string | 否 | 默认值 |
precision | integer | 否 | 精度 |
max | string | 否 | 最大值 |
min | string | 否 | 最小值 |
desc | string | 否 | 描述说明 |
propertyTypeId | integer | 否 | 属性类型id |
修改指定能力原型指定属性
修改指定能力原型的指定属性。
HTTP Request
PUT /v1/api/meta/capabilities/:capabilityId/properties/:id
Request
PUT /v1/api/meta/capabilities/1a5cd2cd-9b5f-4278-a621-aa83d5018b5b/properties/3
body {
"name": "修改能力属性"
}
URL Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
capabilityId | string | 是 | 能力原型id |
id | string | 是 | 能力原型属性id |
Body Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
name | string | 否 | 名称 |
enum | string | 否 | 枚举类型数据 |
defaultValue | string | 否 | 默认值 |
precision | integer | 否 | 精度 |
max | string | 否 | 最大值 |
min | string | 否 | 最小值 |
desc | string | 否 | 描述说明 |
propertyTypeId | integer | 否 | 属性类型id |
删除指定能力原型指定属性
删除指定能力原型的指定属性。
HTTP Request
DELETE /v1/api/meta/capabilities/:capabilityId/properties/:id
Request
DELETE /v1/api/meta/capabilities/1a5cd2cd-9b5f-4278-a621-aa83d5018b5b/properties/3
URL Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
capabilityId | string | 是 | 能力原型id |
id | string | 是 | 能力原型属性id |
设备公式管理
查询指定设备原型公式
查询指定设备原型的公式信息。
HTTP Request
GET /v1/api/meta/devices/:deviceId/formulas
Request
GET /v1/api/meta/devices/3de549ec-16dc-4648-9a21-9c34035debe1/formulas
Response
{
"total": 3,
"formulaMetas": {
"count": 3,
"rows": [
{
"id": "ebfd043e-f4f8-44f4-b278-874105784e0a",
"name": "test",
"formula": "111122",
"key": null,
"desc": "",
"createdAt": "2018-03-08T07:04:02.065Z",
"deviceMetaId": "3de549ec-16dc-4648-9a21-9c34035debe1",
"properties": []
},
{
"id": "f3e3c574-7d1d-490f-af9c-5a3200cd370f",
"name": "aa",
"formula": "aa",
"key": null,
"desc": "",
"createdAt": "2018-03-08T07:02:12.708Z",
"deviceMetaId": "3de549ec-16dc-4648-9a21-9c34035debe1",
"properties": []
},
{
"id": "b6303c30-5223-4168-b34a-59f29fecd9d2",
"name": "test",
"formula": "ddddd",
"key": null,
"desc": "test",
"createdAt": "2018-01-17T15:38:12.297Z",
"deviceMetaId": "3de549ec-16dc-4648-9a21-9c34035debe1",
"properties": [
{
"id": 28,
"name": "AAA",
"showName": null,
"category": "Output",
"image": null,
"enum": null,
"defaultValue": null,
"precision": null,
"max": null,
"min": null,
"unit": null,
"desc": "",
"required": true,
"createdAt": "2018-03-16T07:42:45.509Z",
"formulaMetaId": "b6303c30-5223-4168-b34a-59f29fecd9d2",
"propertyTypeId": 1
},
{
"id": 5,
"name": "A",
"showName": null,
"category": "Variable",
"image": null,
"enum": null,
"defaultValue": "",
"precision": null,
"max": null,
"min": null,
"unit": "",
"desc": "",
"required": true,
"createdAt": "2018-01-17T15:38:31.854Z",
"formulaMetaId": "b6303c30-5223-4168-b34a-59f29fecd9d2",
"propertyTypeId": 5
}
]
}
]
URL Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
deviceId | string | 是 | 设备原型id |
查询指定设备原型指定公式
查询指定设备原型的指定公式信息。
HTTP Request
GET /v1/api/meta/devices/:deviceId/formulas/:id
Request
GET /v1/api/meta/devices/3de549ec-16dc-4648-9a21-9c34035debe1/formulas/b6303c30-5223-4168-b34a-59f29fecd9d2
Response
{
"id": "b6303c30-5223-4168-b34a-59f29fecd9d2",
"name": "test",
"formula": "ddddd",
"key": null,
"desc": "test",
"createdAt": "2018-01-17T15:38:12.297Z",
"deviceMetaId": "3de549ec-16dc-4648-9a21-9c34035debe1",
"properties": [
{
"id": 28,
"name": "AAA",
"showName": null,
"category": "Output",
"image": null,
"enum": null,
"defaultValue": null,
"precision": null,
"max": null,
"min": null,
"unit": null,
"desc": "",
"required": true,
"createdAt": "2018-03-16T07:42:45.509Z",
"formulaMetaId": "b6303c30-5223-4168-b34a-59f29fecd9d2",
"propertyTypeId": 1
},
{
"id": 5,
"name": "A",
"showName": null,
"category": "Variable",
"image": null,
"enum": null,
"defaultValue": "",
"precision": null,
"max": null,
"min": null,
"unit": "",
"desc": "",
"required": true,
"createdAt": "2018-01-17T15:38:31.854Z",
"formulaMetaId": "b6303c30-5223-4168-b34a-59f29fecd9d2",
"propertyTypeId": 5
}
]
}
URL Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
deviceId | string | 是 | 设备原型id |
id | string | 是 | 设备原型公式id |
创建指定设备原型公式
创建指定设备原型公式。
HTTP Request
POST /v1/api/meta/devices/:deviceId/formulas
Request
POST /v1/api/meta/devices/3de549ec-16dc-4648-9a21-9c34035debe1/formulas
body {
"formula":"a=b+1",
"name":"test",
"desc":"test"
}
Response
{
"id": "88af77b4-d9b2-4567-9b1b-91e64214ca6b",
"name": "test",
"desc": "test",
"formula": "a=b+1",
"key": null,
"deviceMetaId": "f41cc527-1b34-4699-a2dc-0a748b5c255b",
"updatedAt": "2018-03-22T02:53:46.675Z",
"createdAt": "2018-03-22T02:53:46.675Z"
}
URL Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
deviceId | string | 是 | 设备原型id |
Body Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
name | string | 是 | 名称 |
formula | string | 否 | 公式说明 |
desc | string | 否 | 描述说明 |
修改指定设备原型指定公式
修改指定设备原型的指定公式信息。
HTTP Request
PUT /v1/api/meta/devices/:deviceId/formulas/:id
Request
PUT /v1/api/meta/devices/3de549ec-16dc-4648-9a21-9c34035debe1/formulas/88af77b4-d9b2-4567-9b1b-91e64214ca6b
body {
"formula":"a=b+2",
"name":"test",
"desc":"test"
}
URL Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
deviceId | string | 是 | 设备原型id |
id | string | 是 | 设备原型公式id |
Body Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
name | string | 是 | 名称 |
formula | string | 否 | 公式说明 |
desc | string | 否 | 描述说明 |
删除指定设备原型指定公式
删除指定设备原型的指定公式。
HTTP Request
DELETE /v1/api/meta/devices/:deviceId/formulas/:id
Request
DELETE /v1/api/meta/devices/3de549ec-16dc-4648-9a21-9c34035debe1/formulas/88af77b4-d9b2-4567-9b1b-91e64214ca6b
URL Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
deviceId | string | 是 | 设备原型id |
id | string | 是 | 设备原型公式id |
查询指定公式原型属性
查询公式原型的属性信息。
HTTP Request
GET /v1/api/meta/formulas/:formulaId/properties
Request
GET /v1/api/meta/formulas/1a5cd2cd-9b5f-4278-a621-aa83d5018b5b/properties
Response
[
{
"id": 3,
"name": "新增公式属性",
"image": null,
"enum": null,
"defaultValue": null,
"precision": null,
"max": null,
"min": null,
"desc": null,
"capabilityMetaId": "1a5cd2cd-9b5f-4278-a621-aa83d5018b5b",
"propertyTypeId": null
}
]
URL Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
formulaId | string | 是 | 公式原型id |
查询指定公式原型指定属性
查询指定公式原型的指定属性信息。
HTTP Request
GET /v1/api/meta/formulas/:formulaId/properties/:id
Request
GET /v1/api/meta/formulas/1a5cd2cd-9b5f-4278-a621-aa83d5018b5b/properties/3
Response
{
"id": 3,
"name": "新增公式属性",
"image": null,
"enum": null,
"defaultValue": null,
"precision": null,
"max": null,
"min": null,
"desc": null,
"capabilityMetaId": "1a5cd2cd-9b5f-4278-a621-aa83d5018b5b",
"propertyTypeId": null
}
URL Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
formulaId | string | 是 | 公式原型id |
id | string | 是 | 公式原型属性id |
创建指定公式原型属性
创建指定公式原型属性。
HTTP Request
POST /v1/api/meta/formulas/:formulaId/properties
Request
POST /v1/api/meta/formulas/1a5cd2cd-9b5f-4278-a621-aa83d5018b5b/properties
body {
"name": "新增公式属性"
}
Response
{
"id": 3,
"name": "新增公式属性",
"updatedAt": "2017-04-20T02:49:46.001Z",
"createdAt": "2017-04-20T02:49:46.001Z",
"image": null,
"enum": null,
"defaultValue": null,
"precision": null,
"max": null,
"min": null,
"desc": null,
"capabilityMetaId": "1a5cd2cd-9b5f-4278-a621-aa83d5018b5b",
"propertyTypeId": null
}
URL Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
formulaId | string | 是 | 公式原型id |
Body Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
name | string | 是 | 名称 |
enum | string | 否 | 枚举类型数据 |
defaultValue | string | 否 | 默认值 |
precision | integer | 否 | 精度 |
max | string | 否 | 最大值 |
min | string | 否 | 最小值 |
desc | string | 否 | 描述说明 |
propertyTypeId | integer | 否 | 属性类型id |
修改指定公式原型指定属性
修改指定公式原型的指定属性。
HTTP Request
PUT /v1/api/meta/formulas/:formulaId/properties/:id
Request
PUT /v1/api/meta/formulas/1a5cd2cd-9b5f-4278-a621-aa83d5018b5b/properties/3
body {
"name": "修改公式属性"
}
URL Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
formulaId | string | 是 | 公式原型id |
id | string | 是 | 公式原型属性id |
Body Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
name | string | 否 | 名称 |
enum | string | 否 | 枚举类型数据 |
defaultValue | string | 否 | 默认值 |
precision | integer | 否 | 精度 |
max | string | 否 | 最大值 |
min | string | 否 | 最小值 |
desc | string | 否 | 描述说明 |
propertyTypeId | integer | 否 | 属性类型id |
删除指定公式原型指定属性
删除指定公式原型的指定属性。
HTTP Request
DELETE /v1/api/meta/formulas/:formulaId/properties/:id
Request
DELETE /v1/api/meta/formulas/1a5cd2cd-9b5f-4278-a621-aa83d5018b5b/properties/3
URL Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
formulaId | string | 是 | 公式原型id |
id | string | 是 | 公式原型属性id |
Things
Thing 在 iOTA 在中, 是对通过各种传感设备进行"监控"的物体的抽象。
iOTA 中的Thing,包含:
- 名称
- 描述
- 位置(地理坐标)
- 经度
- 维度
- 维度:对各种传感设备反应出的Thing数据的分类
- 名称
- 描述
iOTA 中,定义完Thing后,可以基于原型设备,对Thing进行监控设备的部署。
Thing
查询所有
查询所有Things。
HTTP Request
GET /v1/api/things
Request
GET /v1/api/things
Response
{
"total": 1,
"things": [
{
"id": "5a7af032-2f62-41cb-a9e3-01ed94fe6285",
"name": "云南澜沧江大桥",
"desc": "为云南澜沧江大桥建立在线监测系统,涵盖桥梁9个监测内容,全面掌握桥梁健康状况。",
"image": null,
"lng": null,
"lat": null,
"createBy": "72ec5c70-043e-4242-851f-756bbca0c38e",
"belongTo": "72ec5c70-043e-4242-851f-756bbca0c38e",
"investor": "72ec5c70-043e-4242-851f-756bbca0c38e",
"public": false,
"createdAt": "2017-04-19T08:51:11.691Z",
"updatedAt": "2017-04-19T08:51:11.691Z",
"enable": false,
"release": false,
"dimensions": [
{
"id": "7aeb9b07-6e28-4b4d-8e15-b82569c8c241",
"name": "环境",
"desc": "环境维度",
"createdAt": "2017-04-19T08:56:00.741Z",
"updatedAt": "2017-04-19T08:56:25.260Z",
"thingId": "5a7af032-2f62-41cb-a9e3-01ed94fe6285"
},
{
"id": "df573d2c-6285-4c41-968f-b32d4db2ae76",
"name": "变形",
"desc": "变形维度",
"createdAt": "2017-04-19T08:56:07.539Z",
"updatedAt": "2017-04-19T08:56:31.339Z",
"thingId": "5a7af032-2f62-41cb-a9e3-01ed94fe6285"
}
]
}
]
}
Query Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
name | string | 否 | 名称,模糊查询 |
查询指定
通过id查询指定的Thing。
HTTP Request
GET /v1/api/things/:id
GET /v1/api/things/5a7af032-2f62-41cb-a9e3-01ed94fe6285
Response
{
"id": "5a7af032-2f62-41cb-a9e3-01ed94fe6285",
"name": "云南澜沧江大桥",
"desc": "为云南澜沧江大桥建立在线监测系统,涵盖桥梁9个监测内容,全面掌握桥梁健康状况。",
"image": null,
"lng": null,
"lat": null,
"createBy": "72ec5c70-043e-4242-851f-756bbca0c38e",
"belongTo": "72ec5c70-043e-4242-851f-756bbca0c38e",
"investor": "72ec5c70-043e-4242-851f-756bbca0c38e",
"public": false,
"createdAt": "2017-04-19T08:51:11.691Z",
"updatedAt": "2017-04-19T08:51:11.691Z",
"enable": false,
"release": false,
"dimensions": [
{
"id": "7aeb9b07-6e28-4b4d-8e15-b82569c8c241",
"name": "环境",
"desc": "环境维度",
"createdAt": "2017-04-19T08:56:00.741Z",
"updatedAt": "2017-04-19T08:56:25.260Z",
"thingId": "5a7af032-2f62-41cb-a9e3-01ed94fe6285"
},
{
"id": "df573d2c-6285-4c41-968f-b32d4db2ae76",
"name": "变形",
"desc": "变形维度",
"createdAt": "2017-04-19T08:56:07.539Z",
"updatedAt": "2017-04-19T08:56:31.339Z",
"thingId": "5a7af032-2f62-41cb-a9e3-01ed94fe6285"
}
]
}
URL Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
id | string | 是 | Thing id |
创建
创建Thing及其维度。
HTTP Request
POST /v1/api/things
Request
POST /v1/api/things
body {
"name": "云南澜沧江大桥",
"desc": "",
"image": null,
"lng": 100.365688,
"lat": 24.747521,
"enable": false,
"release": false,
"dimensions": [{
"name": "环境",
"desc": "环境维度"
}, {
"name": "变形",
"desc": "变形维度"
}]
}
Response
{
"id": "a15c8bcb-9837-48c0-8925-a6e0424bde0c",
"name": "云南澜沧江大桥",
"desc": "",
"image": null,
"lng": 100.365688,
"lat": 24.747521,
"createBy": "1e169a6a-baf9-465d-95ed-4baa70881bf0",
"belongTo": "1e169a6a-baf9-465d-95ed-4baa70881bf0",
"investor": "1e169a6a-baf9-465d-95ed-4baa70881bf0",
"public": false,
"createdAt": "2017-04-19T09:15:56.046Z",
"updatedAt": "2017-04-19T09:15:56.046Z",
"enable": false,
"release": false,
"dimensions": [{
"id": "f4cf2867-0570-470c-9d75-5f31a1bdfdaa",
"name": "环境",
"desc": "环境维度",
"createdAt": "2017-04-19T09:15:56.052Z",
"updatedAt": "2017-04-19T09:15:56.056Z",
"thingId": "a15c8bcb-9837-48c0-8925-a6e0424bde0c"
}, {
"id": "92372623-1837-4ab0-877d-65bd5519c080",
"name": "变形",
"desc": "变形维度",
"createdAt": "2017-04-19T09:15:56.073Z",
"updatedAt": "2017-04-19T09:15:56.076Z",
"thingId": "a15c8bcb-9837-48c0-8925-a6e0424bde0c"
}]
}
Body Parameters
参数 | 类型 | 必填 | 说明 | |
---|---|---|---|---|
name | string | 是 | 名称 | |
desc | string | 否 | 描述 | |
image | string | 否 | 示意图(上传后的uri) | |
lng | string | 否 | 经度 | |
lat | string | 否 | 纬度 | |
enable | bool | 否 | 是否启用 | |
release | bool | 否 | 是否发布 | |
dimensions | array of object | 否 | 维度信息 | |
name | string | 是 | 维度名称 | |
desc | string | 否 | 维度描述 |
修改基本信息
修改Thing的名称、描述、示意图及位置。
HTTP Request
PUT /v1/api/things/:id
Request
PUT /v1/api/things/5a7af032-2f62-41cb-a9e3-01ed94fe6285
body {
"lng": 100.365688,
"lat": 24.747521,
"name": "云南澜沧江大桥",
"desc": "",
"image": null,
"enable": false,
"release": false,
}
URL Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
id | string | 是 | Thing id |
Body Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
name | string | 是 | 名称 |
desc | string | 否 | 描述 |
image | string | 否 | 示意图(上传后的uri) |
lng | string | 否 | 经度 |
lat | string | 否 | 纬度 |
enable | bool | 否 | 是否启用 |
release | bool | 否 | 是否发布 |
删除
删除指定的Thing。
Request
DELETE /v1/api/things/5a7af032-2f62-41cb-a9e3-01ed94fe6285
HTTP Request
DELETE /v1/api/things/:id
URL Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
id | string | 是 | Thing id |
维度管理
查询所有维度
查询Thing的所有维度。
HTTP Request
GET /v1/api/things/:thingId/dimensions
Request
GET /v1/api/things/5a7af032-2f62-41cb-a9e3-01ed94fe6285/dimensions
Response
{
"total": 2,
"dimensions": [
{
"id": "7aeb9b07-6e28-4b4d-8e15-b82569c8c241",
"name": "环境",
"desc": "环境维度",
"createdAt": "2017-04-19T08:56:00.741Z",
"updatedAt": "2017-04-19T08:56:25.260Z",
"thingId": "5a7af032-2f62-41cb-a9e3-01ed94fe6285"
},
{
"id": "df573d2c-6285-4c41-968f-b32d4db2ae76",
"name": "变形",
"desc": "变形维度",
"createdAt": "2017-04-19T08:56:07.539Z",
"updatedAt": "2017-04-19T08:56:31.339Z",
"thingId": "5a7af032-2f62-41cb-a9e3-01ed94fe6285"
}
]
}
Query Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
thingId | string | 是 | Thing ID |
查询指定维度
查询Thing的所有维度。
HTTP Request
GET /v1/api/things/:thingId/dimensions/:id
Query Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
thingId | string | 是 | Thing ID |
id | string | 是 | 维度 ID |
Request
GET /v1/api/things/5a7af032-2f62-41cb-a9e3-01ed94fe6285/dimensions/7aeb9b07-6e28-4b4d-8e15-b82569c8c241
Response
{
"id": "7aeb9b07-6e28-4b4d-8e15-b82569c8c241",
"name": "环境",
"desc": "环境维度",
"createdAt": "2017-04-19T08:56:00.741Z",
"updatedAt": "2017-04-19T08:56:25.260Z",
"thingId": "5a7af032-2f62-41cb-a9e3-01ed94fe6285"
}
创建维度
创建Thing的新维度。
HTTP Request
POST /v1/api/things/:thingId/dimensions
Request
POST /v1/api/things/5a7af032-2f62-41cb-a9e3-01ed94fe6285/dimensions
body {
"name": "受力",
"desc": "受力维度",
}
Response
{
"id": "7cf57764-2461-48e2-a4dd-081d81a0ecf8",
"name": "受力",
"desc": "受力维度",
"thingId": "5a7af032-2f62-41cb-a9e3-01ed94fe6285",
"updatedAt": "2017-04-19T09:42:45.019Z",
"createdAt": "2017-04-19T09:42:45.019Z"
}
URL Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
thingId | string | 是 | Thing ID |
id | string | 是 | 维度 ID |
Body Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
name | string | 是 | 名称 |
修改维度
修改Thing的某一维度的名称、描述。
HTTP Request
PUT /v1/api/things/:thingId/dimensions/:id
Request
PUT /v1/api/things/5a7af032-2f62-41cb-a9e3-01ed94fe6285/dimensions/f4cf2867-0570-470c-9d75-5f31a1bdfdaa
body {
"name": "受力",
"desc": "受力维度",
}
URL Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
thingId | string | 是 | Thing ID |
id | string | 是 | 维度 ID |
Body Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
name | string | 是 | 名称 |
desc | string | 否 | 描述 |
删除维度
删除指定的Thing。
HTTP Request
DELETE /v1/api/things/:thingId/dimensions/:id
Request
DELETE /v1/api/things/5a7af032-2f62-41cb-a9e3-01ed94fe6285/dimensions/f4cf2867-0570-470c-9d75-5f31a1bdfdaa
URL Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
thingId | string | 是 | Thing ID |
id | string | 是 | 维度 ID |
部署
iOTA 中,通过可视化拖拽方式实现 Thing 的传感器部署。
应用如果采用其他部署方式,需将部署信息转为此接口要求的结构。
查询Thing中的Scheme
查询Thing中的Scheme
HTTP Request
GET /v1/api/things/:thingId/deploys/schemes
Request
GET /v1/api/things/a15c8bcb-9837-48c0-8925-a6e0424bde0c/deploys/schemes
Response
{
"total": 1,
"schemes": [{
"id": "a2e30724-ffe2-45d5-9bec-221d631366c3",
"name": "",
"mode": "L",
"interval": null,
"unit": null,
"repeats": null,
"beginTime": "2017-09-22T07:57:18.000Z",
"endTime": null,
"notifyMode": 2,
"capabilityNotifyMode": 1,
"createdAt": "2017-09-22T07:57:18.797Z",
"updatedAt": "2017-09-22T07:57:41.684Z",
"dimensionId": "a2e30724-ffe2-45d5-9bec-221d631366c3",
"dimension": {
"id": "a2e30724-ffe2-45d5-9bec-221d631366c3",
"name": "test-D2",
"desc": "",
"createdAt": "2017-09-22T07:56:51.774Z",
"updatedAt": "2017-09-22T07:56:51.778Z",
"thingId": "87aff2cf-b57a-4e43-bc57-283441ef9c7c"
}
}]
}
URL Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
thingId | string | 是 | Thing ID |
查询用户所有的Scheme
查询用户所有的Scheme
HTTP Request
GET /v1/api/things/deploys/schemes/:id?
Request
GET /v1/api/things/deploys/schemes
Response
HTTPS 同上
URL Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
id | string | 否 | Scheme ID |
Query Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
thingIds | string | 否 | Thing ID, “,"分割 |
查询Thing部署中所使用到的设备原型
查询所有在指定Thing中所使用的设备原型
HTTP Request
GET /v1/api/meta/things/:thingId/devices
Request
GET /v1/api/meta/things/a15c8bcb-9837-48c0-8925-a6e0424bde0c/devices
Response
{
"total": 2,
"devices": [
{
"id": "b1ac10e0-2c67-4463-b822-d9bd02bd8d49",
"name": "测斜仪",
"createBy": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"belongTo": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"investor": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"public": false,
"image": "",
"model": "FS",
"createdAt": "2017-04-14T11:54:05.223Z",
"updatedAt": "2017-04-14T11:54:05.223Z",
"properties": [],
"capabilities": [
{
"id": "b5f799ea-a266-48bd-82e9-844aed077738",
"name": "侧斜",
"image": "",
"desc": "",
"deviceMetaId": "b1ac10e0-2c67-4463-b822-d9bd02bd8d49",
"capabilityCategoryId": 3,
"protocolMetaId": "cc58ebc2-81ec-4275-a665-c9a2c9bda868",
"properties": [],
"capabilityCategory": {
"id": 3,
"name": "采集",
"image": null,
"desc": null
},
"protocol": {
"id": "cc58ebc2-81ec-4275-a665-c9a2c9bda868",
"name": "测斜1506",
"image": null,
"desc": "",
"version": "1.1",
"enableTime": "2017-04-14",
"belongTo": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"investor": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"public": false,
"createBy": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"impl": "Lua",
"resource": null,
"marshall": null,
"unmarshall": null
},
"interfaces": [
{
"id": "a988b877-4734-4a7c-b414-a90c18ca29f7",
"capabilityMetaId": "b5f799ea-a266-48bd-82e9-844aed077738",
"deviceMetaInterfaceId": "2eb61402-905c-4e7d-acce-b2776c602257"
}
]
}
],
"interfaces": [
{
"id": "2eb61402-905c-4e7d-acce-b2776c602257",
"directType": 1,
"deviceMetaId": "b1ac10e0-2c67-4463-b822-d9bd02bd8d49",
"interfaceMetaId": "9a114538-9137-47cf-b0e7-5cef0a101dd0",
"interfaceMeta": {
"id": "9a114538-9137-47cf-b0e7-5cef0a101dd0",
"name": "RS485",
"createBy": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"belongTo": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"investor": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"public": false,
"image": null,
"desc": "",
"interfaceTypeId": 1,
"interfaceType": {
"id": 1,
"name": "Serial",
"key": "serial",
"desc": "串口"
},
"properties": [
{
"id": 2,
"name": "mno",
"enum": "",
"defaultValue": "1336",
"precision": 0,
"max": "65535",
"min": "1024",
"desc": "",
"propertyTypeId": 1,
"interfaceMetaId": "9a114538-9137-47cf-b0e7-5cef0a101dd0"
}
]
}
}
]
},
{
"id": "de07a19a-eb81-48b4-9078-8646684e4962",
"name": "DTU",
"createBy": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"belongTo": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"investor": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"public": false,
"image": "",
"model": "CM",
"createdAt": "2017-04-14T11:53:08.306Z",
"updatedAt": "2017-04-14T11:53:08.306Z",
"properties": [],
"capabilities": [
{
"id": "81e499ba-834b-492c-816c-2cc8cc55cc87",
"name": "接入IOTA",
"image": "",
"desc": "",
"deviceMetaId": "de07a19a-eb81-48b4-9078-8646684e4962",
"capabilityCategoryId": 2,
"protocolMetaId": "cc58ebc2-81ec-4275-a665-c9a2c9bda868",
"properties": [],
"capabilityCategory": {
"id": 2,
"name": "控制",
"image": null,
"desc": null
},
"protocol": {
"id": "cc58ebc2-81ec-4275-a665-c9a2c9bda868",
"name": "测斜1506",
"image": null,
"desc": "",
"version": "1.1",
"enableTime": "2017-04-14",
"belongTo": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"investor": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"public": false,
"createBy": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"impl": "Lua",
"resource": null,
"marshall": null,
"unmarshall": null
},
"interfaces": [
{
"id": "a2efa2a9-5771-49a6-b71b-9a5ca186a35c",
"capabilityMetaId": "81e499ba-834b-492c-816c-2cc8cc55cc87",
"deviceMetaInterfaceId": "dd34330c-3f86-4cd5-b772-918b086ca0ff"
}
]
}
],
"interfaces": [
{
"id": "dd34330c-3f86-4cd5-b772-918b086ca0ff",
"directType": 1,
"deviceMetaId": "de07a19a-eb81-48b4-9078-8646684e4962",
"interfaceMetaId": "b14d3424-59cb-4fdb-ba9c-a8a3c1846a0a",
"interfaceMeta": {
"id": "b14d3424-59cb-4fdb-ba9c-a8a3c1846a0a",
"name": "SOIP",
"createBy": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"belongTo": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"investor": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"public": false,
"image": null,
"desc": "",
"interfaceTypeId": 4,
"interfaceType": {
"id": 4,
"name": "SoIP",
"key": "soip",
"desc": "串口 Over IP"
},
"properties": [
{
"id": 1,
"name": "id",
"enum": "",
"defaultValue": "2233",
"precision": 0,
"max": "65535",
"min": "1024",
"desc": "",
"propertyTypeId": 1,
"interfaceMetaId": "b14d3424-59cb-4fdb-ba9c-a8a3c1846a0a"
}
]
}
},
{
"id": "a8f105d4-7f7d-4fdc-be8f-9c876594aecf",
"directType": 2,
"deviceMetaId": "de07a19a-eb81-48b4-9078-8646684e4962",
"interfaceMetaId": "9a114538-9137-47cf-b0e7-5cef0a101dd0",
"interfaceMeta": {
"id": "9a114538-9137-47cf-b0e7-5cef0a101dd0",
"name": "RS485",
"createBy": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"belongTo": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"investor": "5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"public": false,
"image": null,
"desc": "",
"interfaceTypeId": 1,
"interfaceType": {
"id": 1,
"name": "Serial",
"key": "serial",
"desc": "串口"
},
"properties": [
{
"id": 2,
"name": "mno",
"enum": "",
"defaultValue": "1336",
"precision": 0,
"max": "65535",
"min": "1024",
"desc": "",
"propertyTypeId": 1,
"interfaceMetaId": "9a114538-9137-47cf-b0e7-5cef0a101dd0"
}
]
}
}
]
}
]
}
URL Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
thingId | string | 是 | Thing ID |
查询用户所有使用的设备原型
查询用户所有使用的设备原型
HTTP Request
GET /v1/api/meta/things/devices/:id?
Request
GET /v1/api/meta/things/devices
Response
HTTPS 同上
URL Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
id | string | 否 | 设备原型ID |
Query Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
thingIds | string | 否 | Thing ID, ”,“分割 |
查询Thing部署中的设备实例
查询Thing部署中的设备实例
HTTP Request
GET /v1/api/things/:thingId/deploys/devices
Request
GET /v1/api/things/3934ae8e-71da-48fd-b460-5f1ed3d6f9d4/devices
Response
{
"total": 3,
"devices": [{
"id": "15692604-7bd5-411c-8ce2-8ffe57408241",
"name": "采集仪",
"properties": "{}",
"createdAt": "2017-08-04T06:40:31.713Z",
"updatedAt": "2017-08-04T06:40:31.713Z",
"thingId": "3934ae8e-71da-48fd-b460-5f1ed3d6f9d4",
"deviceMetaId": "133425b7-4eec-41f1-9ca2-af83fb132405"
}, {
"id": "9c971303-443a-4752-b9fb-413e7cd43e03",
"name": "测斜仪11",
"properties": "{}",
"createdAt": "2017-08-04T06:40:31.725Z",
"updatedAt": "2017-08-04T06:40:31.725Z",
"thingId": "3934ae8e-71da-48fd-b460-5f1ed3d6f9d4",
"deviceMetaId": "d09a4d3e-25ed-400e-b61a-83acba8b226a"
}, {
"id": "fe768e23-a21e-4d08-81cb-4134c80421fe",
"name": "Lora噪声仪",
"properties": "{}",
"createdAt": "2017-08-04T06:40:31.745Z",
"updatedAt": "2017-08-04T06:40:31.745Z",
"thingId": "3934ae8e-71da-48fd-b460-5f1ed3d6f9d4",
"deviceMetaId": "4d3b2d84-077a-4714-b300-0be83122503a"
}]
}
查询指定部署信息
查询指定Thing的部署信息。
HTTP Request
GET /v1/api/things/a15c8bcb-9837-48c0-8925-a6e0424bde0c/deploys
Request
GET /v1/api/things/a15c8bcb-9837-48c0-8925-a6e0424bde0c/deploys
Response
{
"settings": {
"padding": 40,
"width": 5120,
"height": 3072,
"scale": 10,
"grid": {
"step": 20
},
"scrollTop": 1086,
"scrollLeft": 1819
},
"instances": {
"7526b571-2f37-4647-a46c-723eca475440": {
"instance": {
"deviceMetaId": "59f9c050-181f-4776-9f6d-f3c887a32c67",
"visibility": "private",
"name": "测斜仪",
"interfaces": {
"999fd6b7-072b-46f6-b01a-cae8543091a1": {
"capabilities": {
"9c14fbc7-6891-44b6-9f79-a588e8634871": {
"properties": null,
"deviceInterfaceId": "7526b571-2f37-4647-a46c-723eca475440.999fd6b7-072b-46f6-b01a-cae8543091a1",
"dimension": {
"dimensionId": "92372623-1837-4ab0-877d-65bd5519c080",
"id": "92372623-1837-4ab0-877d-65bd5519c080",
"repeats": 11,
"qos": 1,
"interval": "1"
}
}
},
"id": "7526b571-2f37-4647-a46c-723eca475440.999fd6b7-072b-46f6-b01a-cae8543091a1",
"deviceInterfaceMetaId": "999fd6b7-072b-46f6-b01a-cae8543091a1",
"properties": {
"mno": "1361 "
}
}
},
"properties": {
"F1": " "
}
},
"type": "s.d",
"svg": {
"isSelected": false,
"compX": 0,
"compY": 0,
"scaleX": 1,
"scaleY": 1,
"x": 955,
"y": 362,
"rotateAng": 0
},
"name": "测斜仪"
},
"58dad687-0ca6-4e63-b644-5316483efc6e": {
"instance": {
"deviceMetaId": "daf40346-d379-4c3c-a1e2-5802eb0be5b7",
"visibility": "private",
"name": "DTU1",
"interfaces": {
"c90670e3-8d68-44c2-aaee-35946dd1ce78": {
"capabilities": {
"d2fc164a-0d85-4885-8d8a-cce44da5c99e": {
"properties": null,
"deviceInterfaceId": "58dad687-0ca6-4e63-b644-5316483efc6e.c90670e3-8d68-44c2-aaee-35946dd1ce78",
"dimension": {
"dimensionId": null,
"id": null,
"repeats": null,
"qos": null,
"interval": null
}
}
},
"id": "58dad687-0ca6-4e63-b644-5316483efc6e.c90670e3-8d68-44c2-aaee-35946dd1ce78",
"deviceInterfaceMetaId": "c90670e3-8d68-44c2-aaee-35946dd1ce78",
"properties": {
"id": "20170418"
}
},
"a0357abd-6960-4749-adb2-28e40bd7d918": {
"capabilities": {},
"id": "58dad687-0ca6-4e63-b644-5316483efc6e.a0357abd-6960-4749-adb2-28e40bd7d918",
"deviceInterfaceMetaId": "a0357abd-6960-4749-adb2-28e40bd7d918",
"properties": {
"mno": " "
}
}
},
"properties": {}
},
"type": "s.d",
"svg": {
"isSelected": false,
"compX": 0,
"compY": 0,
"scaleX": 1,
"scaleY": 1,
"x": 492,
"y": 212,
"rotateAng": 0
},
"name": "DTU1"
},
"8f892587-ea36-44b8-8f64-1b9331e48479": {
"type": "s.l",
"instance": {
"curve": {
"m": {
"x": 646,
"y": 402.5
},
"e": {
"x": 567,
"y": 274.5
}
},
"from": {
"directType": 1,
"iType": 1,
"ownerShapeType": "s.d",
"ownerSvgId": "b8080640-5541-4c4c-9b33-55d7e8f20203",
"deviceMetaId": "59f9c050-181f-4776-9f6d-f3c887a32c67",
"interfaceMetaId": "924d853a-b705-40e2-a54e-55bdd6a2f1bb",
"deviceMetaInterfaceId": "999fd6b7-072b-46f6-b01a-cae8543091a1",
"shapeType": "s.a",
"aType": "s.d.i",
"svgId": "b8080640-5541-4c4c-9b33-55d7e8f20203.999fd6b7-072b-46f6-b01a-cae8543091a1"
},
"to": {
"directType": 2,
"iType": 1,
"ownerShapeType": "s.d",
"ownerSvgId": "58dad687-0ca6-4e63-b644-5316483efc6e",
"deviceMetaId": "daf40346-d379-4c3c-a1e2-5802eb0be5b7",
"interfaceMetaId": "924d853a-b705-40e2-a54e-55bdd6a2f1bb",
"deviceMetaInterfaceId": "a0357abd-6960-4749-adb2-28e40bd7d918",
"shapeType": "s.a",
"aType": "s.d.i",
"svgId": "58dad687-0ca6-4e63-b644-5316483efc6e.a0357abd-6960-4749-adb2-28e40bd7d918"
}
}
},
"1d34c9f3-e156-4e81-a551-29ac9e0721c2": {
"instance": {},
"type": "s.iota",
"svg": {
"isSelected": false,
"compX": 0,
"compY": 0,
"scaleX": 1,
"scaleY": 1,
"x": 1215,
"y": 169,
"rotateAng": 0
}
},
"e1e2bae0-96a6-4312-a8f3-96c23828bcdf": {
"type": "s.l",
"instance": {
"curve": {
"m": {
"x": 567,
"y": 219.5
},
"e": {
"x": 1295,
"y": 204
}
},
"from": {
"directType": 1,
"iType": 4,
"ownerShapeType": "s.d",
"ownerSvgId": "58dad687-0ca6-4e63-b644-5316483efc6e",
"deviceMetaId": "daf40346-d379-4c3c-a1e2-5802eb0be5b7",
"interfaceMetaId": "cf3a33ff-16b8-44ce-b57b-45f19557d4fc",
"deviceMetaInterfaceId": "c90670e3-8d68-44c2-aaee-35946dd1ce78",
"shapeType": "s.a",
"aType": "s.d.i",
"svgId": "58dad687-0ca6-4e63-b644-5316483efc6e.c90670e3-8d68-44c2-aaee-35946dd1ce78"
},
"to": {
"shapeType": "s.a",
"ownerShapeType": "s.d",
"ownerSvgId": "1d34c9f3-e156-4e81-a551-29ac9e0721c2"
}
}
},
"44da4604-7781-46c7-b1c9-3774d447b3c6": {
"type": "s.l",
"instance": {
"curve": {
"m": {
"x": 966,
"y": 217.5
},
"e": {
"x": 1295,
"y": 204
}
},
"from": {
"directType": 1,
"iType": 4,
"ownerShapeType": "s.d",
"ownerSvgId": "379967aa-1ec8-4890-9dea-d0689a9165b7",
"deviceMetaId": "daf40346-d379-4c3c-a1e2-5802eb0be5b7",
"interfaceMetaId": "cf3a33ff-16b8-44ce-b57b-45f19557d4fc",
"deviceMetaInterfaceId": "c90670e3-8d68-44c2-aaee-35946dd1ce78",
"shapeType": "s.a",
"aType": "s.d.i",
"svgId": "379967aa-1ec8-4890-9dea-d0689a9165b7.c90670e3-8d68-44c2-aaee-35946dd1ce78"
},
"to": {
"shapeType": "s.a",
"ownerShapeType": "s.d",
"ownerSvgId": "1d34c9f3-e156-4e81-a551-29ac9e0721c2"
}
}
},
"b8080640-5541-4c4c-9b33-55d7e8f20203": {
"instance": {
"deviceMetaId": "59f9c050-181f-4776-9f6d-f3c887a32c67",
"visibility": "private",
"name": "测斜仪",
"interfaces": {
"999fd6b7-072b-46f6-b01a-cae8543091a1": {
"capabilities": {
"9c14fbc7-6891-44b6-9f79-a588e8634871": {
"properties": null,
"deviceInterfaceId": "b8080640-5541-4c4c-9b33-55d7e8f20203.999fd6b7-072b-46f6-b01a-cae8543091a1",
"dimension": {
"dimensionId": null,
"id": null,
"repeats": null,
"qos": null,
"interval": null
}
}
},
"id": "b8080640-5541-4c4c-9b33-55d7e8f20203.999fd6b7-072b-46f6-b01a-cae8543091a1",
"deviceInterfaceMetaId": "999fd6b7-072b-46f6-b01a-cae8543091a1",
"properties": {
"mno": " 1360"
}
}
},
"properties": {
"F1": " "
}
},
"type": "s.d",
"svg": {
"isSelected": false,
"compX": 0,
"compY": 0,
"scaleX": 1,
"scaleY": 1,
"x": 571,
"y": 395,
"rotateAng": 0
},
"name": "测斜仪"
},
"379967aa-1ec8-4890-9dea-d0689a9165b7": {
"instance": {
"deviceMetaId": "daf40346-d379-4c3c-a1e2-5802eb0be5b7",
"visibility": "private",
"name": "DTU2",
"interfaces": {
"c90670e3-8d68-44c2-aaee-35946dd1ce78": {
"capabilities": {
"d2fc164a-0d85-4885-8d8a-cce44da5c99e": {
"properties": null,
"deviceInterfaceId": "379967aa-1ec8-4890-9dea-d0689a9165b7.c90670e3-8d68-44c2-aaee-35946dd1ce78",
"dimension": {
"dimensionId": null,
"id": null,
"repeats": null,
"qos": null,
"interval": null
}
}
},
"id": "379967aa-1ec8-4890-9dea-d0689a9165b7.c90670e3-8d68-44c2-aaee-35946dd1ce78",
"deviceInterfaceMetaId": "c90670e3-8d68-44c2-aaee-35946dd1ce78",
"properties": {
"id": "20170419"
}
},
"a0357abd-6960-4749-adb2-28e40bd7d918": {
"capabilities": {},
"id": "379967aa-1ec8-4890-9dea-d0689a9165b7.a0357abd-6960-4749-adb2-28e40bd7d918",
"deviceInterfaceMetaId": "a0357abd-6960-4749-adb2-28e40bd7d918",
"properties": {
"mno": " "
}
}
},
"properties": {}
},
"type": "s.d",
"svg": {
"isSelected": false,
"compX": 0,
"compY": 0,
"scaleX": 1,
"scaleY": 1,
"x": 891,
"y": 210,
"rotateAng": 0
},
"name": "DTU2"
},
"1d7c4f07-38ba-4fb2-81ef-b8c5c4e82039": {
"type": "s.l",
"instance": {
"curve": {
"m": {
"x": 1030,
"y": 369.5
},
"e": {
"x": 966,
"y": 272.5
}
},
"from": {
"directType": 1,
"iType": 1,
"ownerShapeType": "s.d",
"ownerSvgId": "7526b571-2f37-4647-a46c-723eca475440",
"deviceMetaId": "59f9c050-181f-4776-9f6d-f3c887a32c67",
"interfaceMetaId": "924d853a-b705-40e2-a54e-55bdd6a2f1bb",
"deviceMetaInterfaceId": "999fd6b7-072b-46f6-b01a-cae8543091a1",
"shapeType": "s.a",
"aType": "s.d.i",
"svgId": "7526b571-2f37-4647-a46c-723eca475440.999fd6b7-072b-46f6-b01a-cae8543091a1"
},
"to": {
"directType": 2,
"iType": 1,
"ownerShapeType": "s.d",
"ownerSvgId": "379967aa-1ec8-4890-9dea-d0689a9165b7",
"deviceMetaId": "daf40346-d379-4c3c-a1e2-5802eb0be5b7",
"interfaceMetaId": "924d853a-b705-40e2-a54e-55bdd6a2f1bb",
"deviceMetaInterfaceId": "a0357abd-6960-4749-adb2-28e40bd7d918",
"shapeType": "s.a",
"aType": "s.d.i",
"svgId": "379967aa-1ec8-4890-9dea-d0689a9165b7.a0357abd-6960-4749-adb2-28e40bd7d918"
}
}
}
}
}
Response说明
字段 | 类型 | 说明 | |
---|---|---|---|
settings | object | 编辑器设置,见后续独立说明 | |
instances | object | 部署设备实例集合 | |
自动生产的uuid | object | 单一实例。部署时,由请求端为每个实例生成对象和唯一key;类型有:iOTA服务实例/设备/链路/Scheme,见后面的描述 | |
自动生产的uuid | object | 同上,有多个 |
settings
字段 | 类型 | 必填 | 说明 | |
---|---|---|---|---|
grid | object | 否 | ||
step | number | 否 | 网格间隔步长,默认20px | |
padding | number | 否 | 编辑器外边距,默认40px | |
width | number | 否 | 编辑器宽度,默认5120px | |
height | number | 否 | 编辑器高度,默认3072px | |
scale | number | 否 | 编辑器缩放比例,默认1 | |
scrollLeft | number | 否 | 编辑器横向滚动位置 | |
scrollTop | number | 否 | 编辑器纵向滚动位置 |
每个实例的可视化属性,通过svg对象描述
svg对象
字段 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
x | number | 0 | 否 | 实例在svg中的绝对x坐标 |
y | number | 0 | 否 | 实例在svg中的绝对x坐标 |
scaleX | number | 1 | 否 | X轴缩放比例 |
scaleY | number | 1 | 否 | Y轴缩放比例 |
rotateAng | number | 0 | 否 | 旋转角度 |
rotateMatrix | object | undefined | 否 | 旋转、缩放叠加后的transform矩阵 |
compX | number | 0 | 否 | 被包装组件相对于包装组件的坐标x |
compY | number | 0 | 否 | 被包装组件相对于包装组件的坐标y |
iOTA服务实例
字段 | 类型 | 必填 | 说明 |
---|---|---|---|
type | string | 是 | 必须是s.iota |
svg | object | 否 | 在 iOTA 中用来表示可视化编辑中的位置、角度等编辑属性,见svg |
设备实例
字段 | 类型 | 必填 | 说明 | |||||
---|---|---|---|---|---|---|---|---|
type | string | 是 | 必须是s.d | |||||
svg | object | 否 | 在 iOTA 中用来表示可视化编辑中的位置、角度等编辑属性,见svg | |||||
instance | object | 是 | 根据设备原型实例化的信息 | |||||
name | string | 是 | 设备实例名称 | |||||
deviceMetaId | string | 是 | 设备原型id,便于载入时查询 | |||||
visibility | string | 是 | 设备原型对应该用户的可见性:public/private/shared,便于载入时查询 | |||||
properties | object | 是 | 设备原型定义的属性,name:value形式 | |||||
interfaces | object | 是 | 设备接口实例化信息集 | |||||
deviceMetaIntefaceId | object | 是 | 单一设备接口实例化信息,必须使用原型中的接口id作为键值,避免冲突 | |||||
properties | object | 是 | 对应接口原型定义的属性,name:value形式 | |||||
capabilities | object | 是 | 接口支持的能力集 | |||||
capabilityMetaId | object | 是 | 该接口上单一能力实例化信息,必须使用原型中的能力id作为键值,避免冲突 | |||||
object | 是 | 该接口上单一能力实例化信息,必须使用原型中的能力id作为键值,避免冲突 | ||||||
deviceInterfaceId | string | 是 | 能力所使用的设备接口id | |||||
protocolMetaId | string | 当原型处有定义?否:是 | 能力所使用的协议,这里的协议保留了动态性,可以覆盖在原型定义阶段的协议选择;同时可以不设置,以解决实际协议在父节点的情况 | |||||
properties | object | 是 | 对应能力原型定义的属性,name:value形式 | |||||
dimension | object | 是 | 能力在被关联维度调度时的参数,name:value形式 |
Scheme
Scheme定义了相应维度的调度策略。
字段 | 类型 | 必填 | 说明 | |
---|---|---|---|---|
type | string | 是 | 必须是e.d | |
instance | object | 是 | 根据设备原型实例化的信息 | |
name | string | 是 | 设备实例名称 | |
mode | enum | 是 | 模式 | |
unit | string | 是 | 间隔时间单位 | |
interval | object | 是 | 间隔 | |
beginTime | object | 是 | 开始时间 | |
endTime | object | 是 | 结束时间 | |
notifyMode | object | 是 | 任务结束后的回调模式 | |
capabilityNotifyMode | object | 是 | 能力完成后的回调模式 |
Link
Link描述了接口与接口之间、接口与iOTA的物理连接关系,iOTA在利用某个能力时,通过Link来寻找设备的实际物理链路,从而决策具体的指令、协议等相关信息。
iOTA 中以 Anchor 来实例化呈现接口。
字段 | 类型 | 必填 | 说明 | |||||
---|---|---|---|---|---|---|---|---|
type | string | 是 | 必须是s.l | |||||
svg | object | 否 | 在 iOTA 中用来表示可视化编辑中的位置、角度等编辑属性,见svg | |||||
instance | object | 是 | 根据设备原型实例化的信息 | |||||
from | string | 是 | 链路起点 | |||||
svgId | string | 是 | 对应的Anchor的全局唯一id,iOTA中自动生成 | |||||
shapType | string | 是 | 必须是s.a | |||||
ownerShapeType | string | 是 | 锚点归属物的类型,from 固定为 s.d | |||||
ownerSvgId | string | 是 | 锚点归属物的id | |||||
以下为扩展信息 | 是 | from的归属物目前都是设备,扩展信息是统一的 | ||||||
deviceMetaId | string | 是 | 归属设备的原型id | |||||
deviceMetaIntefaceId | string | 是 | 对应的接口id | |||||
interfaceMetaId | string | 是 | 对应的接口原型id | |||||
directType | integer | 是 | 接口方向,from 固定为 1 | |||||
iType | integer | 是 | 接口原型类型 | |||||
aType | string | 是 | Anchor类型,from 固定为 s.d.i | |||||
to | string | 是 | 链路终点 | |||||
svgId | string | 是 | 对应的Anchor的全局唯一id,iOTA中自动生成 | |||||
shapType | string | 是 | 必须是s.a | |||||
ownerShapeType | string | 是 | 锚点归属物的类型,s.d 或 s.iota | |||||
ownerSvgId | string | 是 | 锚点归属物的id | |||||
以下为扩展信息 | 是 | 当 ownerShapeType 为 s.d 有效 | ||||||
deviceMetaId | string | 是 | 归属设备的原型id | |||||
deviceMetaIntefaceId | string | 是 | 对应的接口id | |||||
interfaceMetaId | string | 是 | 对应的接口原型id | |||||
directType | integer | 是 | 接口方向,to 固定为 2 | |||||
iType | integer | 是 | 接口原型类型 | |||||
aType | string | 是 | Anchor类型,当 ownerShapeType 为 s.d 有效, 固定为 s.d.i | |||||
curve | object | 是 | 曲线可视化信息 | |||||
m | object | 是 | 曲线起点 | |||||
x | number | 是 | x坐标 | |||||
y | number | 是 | y坐标 | |||||
e | object | 是 | 曲线终点 | |||||
x | number | 是 | x坐标 | |||||
y | number | 是 | y坐标 |
部署/更新部署
对指定的Thing进行设备部署或更新。
请求 JSON 参考查询接口。
HTTP Request
POST /v1/api/things/a15c8bcb-9837-48c0-8925-a6e0424bde0c/deploys
Request
POST /v1/api/things/a15c8bcb-9837-48c0-8925-a6e0424bde0c/deploys
Response
{
"settings": {
"padding": 40,
"width": 5120,
"height": 3072,
"scale": 10,
"grid": {
"step": 20
},
"scrollTop": 1086,
"scrollLeft": 1819
},
"instances": {
"7526b571-2f37-4647-a46c-723eca475440": {
"instance": {
"deviceMetaId": "59f9c050-181f-4776-9f6d-f3c887a32c67",
"visibility": "private",
"name": "测斜仪",
"interfaces": {
"999fd6b7-072b-46f6-b01a-cae8543091a1": {
"capabilities": {
"9c14fbc7-6891-44b6-9f79-a588e8634871": {
"properties": null,
"deviceInterfaceId": "7526b571-2f37-4647-a46c-723eca475440.999fd6b7-072b-46f6-b01a-cae8543091a1",
"dimension": {
"dimensionId": "92372623-1837-4ab0-877d-65bd5519c080",
"id": "92372623-1837-4ab0-877d-65bd5519c080",
"repeats": 11,
"qos": 1,
"interval": "1"
}
}
},
"id": "7526b571-2f37-4647-a46c-723eca475440.999fd6b7-072b-46f6-b01a-cae8543091a1",
"deviceInterfaceMetaId": "999fd6b7-072b-46f6-b01a-cae8543091a1",
"properties": {
"mno": "1361 "
}
}
},
"properties": {
"F1": " "
}
},
"type": "s.d",
"svg": {
"isSelected": false,
"compX": 0,
"compY": 0,
"scaleX": 1,
"scaleY": 1,
"x": 955,
"y": 362,
"rotateAng": 0
},
"name": "测斜仪"
},
"58dad687-0ca6-4e63-b644-5316483efc6e": {
"instance": {
"deviceMetaId": "daf40346-d379-4c3c-a1e2-5802eb0be5b7",
"visibility": "private",
"name": "DTU1",
"interfaces": {
"c90670e3-8d68-44c2-aaee-35946dd1ce78": {
"capabilities": {
"d2fc164a-0d85-4885-8d8a-cce44da5c99e": {
"properties": null,
"deviceInterfaceId": "58dad687-0ca6-4e63-b644-5316483efc6e.c90670e3-8d68-44c2-aaee-35946dd1ce78",
"dimension": {
"dimensionId": null,
"id": null,
"repeats": null,
"qos": null,
"interval": null
}
}
},
"id": "58dad687-0ca6-4e63-b644-5316483efc6e.c90670e3-8d68-44c2-aaee-35946dd1ce78",
"deviceInterfaceMetaId": "c90670e3-8d68-44c2-aaee-35946dd1ce78",
"properties": {
"id": "20170418"
}
},
"a0357abd-6960-4749-adb2-28e40bd7d918": {
"capabilities": {},
"id": "58dad687-0ca6-4e63-b644-5316483efc6e.a0357abd-6960-4749-adb2-28e40bd7d918",
"deviceInterfaceMetaId": "a0357abd-6960-4749-adb2-28e40bd7d918",
"properties": {
"mno": " "
}
}
},
"properties": {}
},
"type": "s.d",
"svg": {
"isSelected": false,
"compX": 0,
"compY": 0,
"scaleX": 1,
"scaleY": 1,
"x": 492,
"y": 212,
"rotateAng": 0
},
"name": "DTU1"
},
"8f892587-ea36-44b8-8f64-1b9331e48479": {
"type": "s.l",
"instance": {
"curve": {
"m": {
"x": 646,
"y": 402.5
},
"e": {
"x": 567,
"y": 274.5
}
},
"from": {
"directType": 1,
"iType": 1,
"ownerShapeType": "s.d",
"ownerSvgId": "b8080640-5541-4c4c-9b33-55d7e8f20203",
"deviceMetaId": "59f9c050-181f-4776-9f6d-f3c887a32c67",
"interfaceMetaId": "924d853a-b705-40e2-a54e-55bdd6a2f1bb",
"deviceMetaInterfaceId": "999fd6b7-072b-46f6-b01a-cae8543091a1",
"shapeType": "s.a",
"aType": "s.d.i",
"svgId": "b8080640-5541-4c4c-9b33-55d7e8f20203.999fd6b7-072b-46f6-b01a-cae8543091a1"
},
"to": {
"directType": 2,
"iType": 1,
"ownerShapeType": "s.d",
"ownerSvgId": "58dad687-0ca6-4e63-b644-5316483efc6e",
"deviceMetaId": "daf40346-d379-4c3c-a1e2-5802eb0be5b7",
"interfaceMetaId": "924d853a-b705-40e2-a54e-55bdd6a2f1bb",
"deviceMetaInterfaceId": "a0357abd-6960-4749-adb2-28e40bd7d918",
"shapeType": "s.a",
"aType": "s.d.i",
"svgId": "58dad687-0ca6-4e63-b644-5316483efc6e.a0357abd-6960-4749-adb2-28e40bd7d918"
}
}
},
"1d34c9f3-e156-4e81-a551-29ac9e0721c2": {
"instance": {},
"type": "s.iota",
"svg": {
"isSelected": false,
"compX": 0,
"compY": 0,
"scaleX": 1,
"scaleY": 1,
"x": 1215,
"y": 169,
"rotateAng": 0
}
},
"e1e2bae0-96a6-4312-a8f3-96c23828bcdf": {
"type": "s.l",
"instance": {
"curve": {
"m": {
"x": 567,
"y": 219.5
},
"e": {
"x": 1295,
"y": 204
}
},
"from": {
"directType": 1,
"iType": 4,
"ownerShapeType": "s.d",
"ownerSvgId": "58dad687-0ca6-4e63-b644-5316483efc6e",
"deviceMetaId": "daf40346-d379-4c3c-a1e2-5802eb0be5b7",
"interfaceMetaId": "cf3a33ff-16b8-44ce-b57b-45f19557d4fc",
"deviceMetaInterfaceId": "c90670e3-8d68-44c2-aaee-35946dd1ce78",
"shapeType": "s.a",
"aType": "s.d.i",
"svgId": "58dad687-0ca6-4e63-b644-5316483efc6e.c90670e3-8d68-44c2-aaee-35946dd1ce78"
},
"to": {
"shapeType": "s.a",
"ownerShapeType": "s.d",
"ownerSvgId": "1d34c9f3-e156-4e81-a551-29ac9e0721c2"
}
}
},
"44da4604-7781-46c7-b1c9-3774d447b3c6": {
"type": "s.l",
"instance": {
"curve": {
"m": {
"x": 966,
"y": 217.5
},
"e": {
"x": 1295,
"y": 204
}
},
"from": {
"directType": 1,
"iType": 4,
"ownerShapeType": "s.d",
"ownerSvgId": "379967aa-1ec8-4890-9dea-d0689a9165b7",
"deviceMetaId": "daf40346-d379-4c3c-a1e2-5802eb0be5b7",
"interfaceMetaId": "cf3a33ff-16b8-44ce-b57b-45f19557d4fc",
"deviceMetaInterfaceId": "c90670e3-8d68-44c2-aaee-35946dd1ce78",
"shapeType": "s.a",
"aType": "s.d.i",
"svgId": "379967aa-1ec8-4890-9dea-d0689a9165b7.c90670e3-8d68-44c2-aaee-35946dd1ce78"
},
"to": {
"shapeType": "s.a",
"ownerShapeType": "s.d",
"ownerSvgId": "1d34c9f3-e156-4e81-a551-29ac9e0721c2"
}
}
},
"b8080640-5541-4c4c-9b33-55d7e8f20203": {
"instance": {
"deviceMetaId": "59f9c050-181f-4776-9f6d-f3c887a32c67",
"visibility": "private",
"name": "测斜仪",
"interfaces": {
"999fd6b7-072b-46f6-b01a-cae8543091a1": {
"capabilities": {
"9c14fbc7-6891-44b6-9f79-a588e8634871": {
"properties": null,
"deviceInterfaceId": "b8080640-5541-4c4c-9b33-55d7e8f20203.999fd6b7-072b-46f6-b01a-cae8543091a1",
"dimension": {
"dimensionId": null,
"id": null,
"repeats": null,
"qos": null,
"interval": null
}
}
},
"id": "b8080640-5541-4c4c-9b33-55d7e8f20203.999fd6b7-072b-46f6-b01a-cae8543091a1",
"deviceInterfaceMetaId": "999fd6b7-072b-46f6-b01a-cae8543091a1",
"properties": {
"mno": " 1360"
}
}
},
"properties": {
"F1": " "
}
},
"type": "s.d",
"svg": {
"isSelected": false,
"compX": 0,
"compY": 0,
"scaleX": 1,
"scaleY": 1,
"x": 571,
"y": 395,
"rotateAng": 0
},
"name": "测斜仪"
},
"379967aa-1ec8-4890-9dea-d0689a9165b7": {
"instance": {
"deviceMetaId": "daf40346-d379-4c3c-a1e2-5802eb0be5b7",
"visibility": "private",
"name": "DTU2",
"interfaces": {
"c90670e3-8d68-44c2-aaee-35946dd1ce78": {
"capabilities": {
"d2fc164a-0d85-4885-8d8a-cce44da5c99e": {
"properties": null,
"deviceInterfaceId": "379967aa-1ec8-4890-9dea-d0689a9165b7.c90670e3-8d68-44c2-aaee-35946dd1ce78",
"dimension": {
"dimensionId": null,
"id": null,
"repeats": null,
"qos": null,
"interval": null
}
}
},
"id": "379967aa-1ec8-4890-9dea-d0689a9165b7.c90670e3-8d68-44c2-aaee-35946dd1ce78",
"deviceInterfaceMetaId": "c90670e3-8d68-44c2-aaee-35946dd1ce78",
"properties": {
"id": "20170419"
}
},
"a0357abd-6960-4749-adb2-28e40bd7d918": {
"capabilities": {},
"id": "379967aa-1ec8-4890-9dea-d0689a9165b7.a0357abd-6960-4749-adb2-28e40bd7d918",
"deviceInterfaceMetaId": "a0357abd-6960-4749-adb2-28e40bd7d918",
"properties": {
"mno": " "
}
}
},
"properties": {}
},
"type": "s.d",
"svg": {
"isSelected": false,
"compX": 0,
"compY": 0,
"scaleX": 1,
"scaleY": 1,
"x": 891,
"y": 210,
"rotateAng": 0
},
"name": "DTU2"
},
"1d7c4f07-38ba-4fb2-81ef-b8c5c4e82039": {
"type": "s.l",
"instance": {
"curve": {
"m": {
"x": 1030,
"y": 369.5
},
"e": {
"x": 966,
"y": 272.5
}
},
"from": {
"directType": 1,
"iType": 1,
"ownerShapeType": "s.d",
"ownerSvgId": "7526b571-2f37-4647-a46c-723eca475440",
"deviceMetaId": "59f9c050-181f-4776-9f6d-f3c887a32c67",
"interfaceMetaId": "924d853a-b705-40e2-a54e-55bdd6a2f1bb",
"deviceMetaInterfaceId": "999fd6b7-072b-46f6-b01a-cae8543091a1",
"shapeType": "s.a",
"aType": "s.d.i",
"svgId": "7526b571-2f37-4647-a46c-723eca475440.999fd6b7-072b-46f6-b01a-cae8543091a1"
},
"to": {
"directType": 2,
"iType": 1,
"ownerShapeType": "s.d",
"ownerSvgId": "379967aa-1ec8-4890-9dea-d0689a9165b7",
"deviceMetaId": "daf40346-d379-4c3c-a1e2-5802eb0be5b7",
"interfaceMetaId": "924d853a-b705-40e2-a54e-55bdd6a2f1bb",
"deviceMetaInterfaceId": "a0357abd-6960-4749-adb2-28e40bd7d918",
"shapeType": "s.a",
"aType": "s.d.i",
"svgId": "379967aa-1ec8-4890-9dea-d0689a9165b7.a0357abd-6960-4749-adb2-28e40bd7d918"
}
}
}
}
}
即时能力调用
对指定的能力进行即时的触发请求。
HTTP Request
`POST /v1/api/capabilities/invoke
Request
POST /v1/api/capabilities/invoke
body {
"deviceId": "ed781c8f-575e-4ef6-a1f5-8b9ffe9afab5",
"thingId": "3eebc743-63eb-4a7b-9d49-3a19ea123a42",
"dimCapId": "82e9f82c-67ef-4c03-9ee0-2f02d66877ce",
"timeout": 10
}
Response 协议返回执行结果或错误信息
Body Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
deviceId | string | 是 | 能力归属的设备实例id |
thingId | string | 否 | 设备实例归属的ThingId |
dimCapId | string | 否 | 定义的能力实例Id |
timeout | number | 否 | 超时时间,默认10秒 |
设备数据
原始数据
查询设备原始数据
查询指定Thing中设备所产生的数据。
HTTP Request
GET /v1/api/discover/raw_data
Request
GET /v1/api/discover/raw_data?thingId=''&deviceId=''
Response
{
"total": 1,
"rawData": [
{
"result": {
"code": 0,
"msg": ""
},
"userId": "a0dbf164-5388-4ba2-846d-2d06688b1bfb",
"thingId": "5c6cc186-0b2b-4cda-871d-ff8990f28fb0",
"dimensionId": "d272c575-4707-419c-baa2-ade1f35d02f9",
"dimCapId": "96f10562-d92e-47ee-86c6-f826765cd783",
"deviceId": "1b45fc6c-2eb8-481b-b65c-59edb9b028ad",
"scheduleId": "f1e843d4-6f7b-4ad4-b185-7c142c3bb6e0",
"taskId": "5114e735-b579-4637-a0d6-0db6cd2d77fb",
"jobId": 4,
"jobRepeatId": 4,
"triggerTime": "2017-05-24T10:33:24.0009029+08:00",
"finishTime": "2017-05-24T10:33:24.0868404+08:00",
"data": {
"result": {
"code": 0,
"msg": ""
},
"data": [{
"Temp": 163.99,
"X": -4.743042,
"Y": 16.15397
}]
}
}
]
}
Query Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
thingId | string | 是 | 指定Thing id |
deviceId | string | 是 | 指定设备id |
begin | string | 是 | 开始时间, 格式:YYYY-MM-DD HH:mm:ss |
end | string | 是 | 结束时间, 格式:YYYY-MM-DD HH:mm:ss;时间未填写时,默认为最近24小时 |
timezone | string | 是 | 时区,“+08:00” 形式,默认使用服务侧所在时区 |
告警管理
查询告警分类
查询系统中的告警分类。
HTTP Request
GET /v1/api/alerts/categories
Request
GET /v1/api/alerts/categories
Response
{
"categories": [
{
"id": 1,
"name": "连接状态",
"desc": "反映设备与iOTA的连接状态",
"createdAt": null,
"updatedAt": null
},
{
"id": 2,
"name": "数据采集",
"desc": "反映iOTA通过设备采集数据或设备上报数据的状态",
"createdAt": null,
"updatedAt": null
},
{
"id": 3,
"name": "数据处理",
"desc": "反映数据处理的状态",
"createdAt": null,
"updatedAt": null
}
]
}
查询告警事件类型
查询系统中的告警事件类型。
HTTP Request
GET /v1/api/alerts/event_types
Request
GET /v1/api/alerts/event_types
Response
{
"eventTypes": [
{
"id": 1,
"name": "连接状态",
"desc": "反映设备与iOTA的连接状态",
"createdAt": null,
"updatedAt": null
},
{
"id": 2,
"name": "数据采集",
"desc": "反映iOTA通过设备采集数据或设备上报数据的状态",
"createdAt": null,
"updatedAt": null
},
{
"id": 3,
"name": "数据处理",
"desc": "反映数据处理的状态",
"createdAt": null,
"updatedAt": null
}
]
}
查询告警定义
查询系统中的告警定义。
HTTP Request
GET /v1/api/alerts/definitions
Request
GET /v1/api/alerts/definitions
Response
{
"definitions": [
{
"id": 1,
"key": "LinkStatus",
"name": "设备掉线",
"desc": "设备与iOTA连接中断",
"severity": 1,
"createdAt": null,
"updatedAt": null,
"alertCategoryId": 1,
"alertEventTypeId": 1,
"category": {
"id": 1,
"name": "连接状态",
"desc": "反映设备与iOTA的连接状态",
"createdAt": null,
"updatedAt": null
},
"eventType": {
"id": 1,
"name": "可恢复的事件",
"desc": "可恢复的事件",
"recoverMode": "Recoverable",
"createdAt": null,
"updatedAt": null
}
},
{
"id": 2,
"key": "DacError",
"name": "采集异常",
"desc": "设备数据采集异常",
"severity": 2,
"createdAt": null,
"updatedAt": null,
"alertCategoryId": 2,
"alertEventTypeId": 1,
"category": {
"id": 2,
"name": "数据采集",
"desc": "反映iOTA通过设备采集数据或设备上报数据的状态",
"createdAt": null,
"updatedAt": null
},
"eventType": {
"id": 1,
"name": "可恢复的事件",
"desc": "可恢复的事件",
"recoverMode": "Recoverable",
"createdAt": null,
"updatedAt": null
}
},
{
"id": 3,
"key": "OutOfRange",
"name": "数据超量程",
"desc": "设备数据超过设备量程范围",
"severity": 3,
"createdAt": null,
"updatedAt": null,
"alertCategoryId": 3,
"alertEventTypeId": 1,
"category": {
"id": 3,
"name": "数据处理",
"desc": "反映数据处理的状态",
"createdAt": null,
"updatedAt": null
},
"eventType": {
"id": 1,
"name": "可恢复的事件",
"desc": "可恢复的事件",
"recoverMode": "Recoverable",
"createdAt": null,
"updatedAt": null
}
}
]
}
查询当前告警
查询系统中的告警。
HTTP Request
GET /v1/api/alerts/current
Request
GET /v1/api/alerts/current
Response
{
"total": 4,
"alerts": [
{
"id": "edef7e763d5e4017cb2f3d6aeae49b5aa96bf939",
"status": "firing",
"labels": {
"alertname": "DacError",
"deviceId": "",
"dimensionId": "0eddb4a9-29f5-4e83-924e-e182bbb8c583",
"instance": "10.244.3.108:19201",
"job": "iOTA-DAC",
"kubernetes_pod_name": "iota-dac-0",
"monitor": "codelab-monitor",
"thingId": "7b5e5e08-7b33-4538-aa53-22ccba3b4da5",
"userId": "f16833ab-a4a4-45f5-9b39-ad2c66e488f6"
},
"annotations": {
"summary": "采集异常",
"description": "Thing:thing1, 维度:100s"
},
"startsAt": "2018-03-21T16:36:37.383333093Z",
"endsAt": "0001-01-01T00:00:00Z",
"generatorURL": "http://iota-prometheus-5cdbc4f4f8-pn2kb:19090/graph?g0.expr=iota_dac_sustained_error_count+%3E%3D+3&g0.tab=1",
"latestStartsAt": "2018-03-21T16:36:37.383333093Z",
"severity": 2,
"repeatTimes": 1
},
{
"id": "c988d373efaeeddf4e8349bcf5c30dba178f94ff",
"status": "firing",
"labels": {
"alertname": "DacError",
"deviceId": "7e98bcf7-15a1-4b76-bcac-e892e5aea35d",
"dimensionId": "0eddb4a9-29f5-4e83-924e-e182bbb8c583",
"instance": "10.244.3.108:19201",
"job": "iOTA-DAC",
"kubernetes_pod_name": "iota-dac-0",
"monitor": "codelab-monitor",
"thingId": "7b5e5e08-7b33-4538-aa53-22ccba3b4da5",
"userId": "f16833ab-a4a4-45f5-9b39-ad2c66e488f6"
},
"annotations": {
"summary": "采集异常",
"description": "Thing:thing1, 维度:100s, 设备:测斜仪"
},
"startsAt": "2018-03-21T14:46:52.383163086Z",
"endsAt": "0001-01-01T00:00:00Z",
"generatorURL": "http://iota-prometheus-5cdbc4f4f8-pn2kb:19090/graph?g0.expr=iota_dac_sustained_error_count+%3E%3D+3&g0.tab=1",
"latestStartsAt": "2018-03-21T14:46:52.383163086Z",
"severity": 2,
"repeatTimes": 1
},
{
"id": "66db8b957517410ce5773f23d0d547c2b6edd852",
"status": "firing",
"labels": {
"alertname": "LinkStatus",
"deviceId": "66fd76fe-cd81-4a68-8429-33923f675ea9",
"dimensionId": "",
"instance": "10.244.2.108:19201",
"job": "iOTA-DAC",
"kubernetes_pod_name": "iota-dac-2",
"monitor": "codelab-monitor",
"thingId": "3eebc743-63eb-4a7b-9d49-3a19ea123a42",
"userId": "f16833ab-a4a4-45f5-9b39-ad2c66e488f6"
},
"annotations": {
"summary": "设备掉线",
"description": "Thing:文件提取测试, 设备:工作站"
},
"startsAt": "2018-03-20T09:56:21.998401666Z",
"endsAt": "0001-01-01T00:00:00Z",
"generatorURL": "http://iota-prometheus-5cdbc4f4f8-pn2kb:19090/graph?g0.expr=iota_dac_device_status+%3D%3D+0&g0.tab=1",
"latestStartsAt": "2018-03-20T09:56:21.998401666Z",
"severity": 1,
"repeatTimes": 1
},
{
"id": "e823979b35c91a6c19be412ccb4406bb4ce7e799",
"status": "firing",
"labels": {
"alertname": "LinkStatus",
"deviceId": "278d0b97-d9db-4719-a2f4-a45c82cb4ab8",
"dimensionId": "",
"instance": "10.244.3.87:19201",
"job": "iOTA-DAC",
"kubernetes_pod_name": "iota-dac-0",
"monitor": "codelab-monitor",
"thingId": "fe0f2ded-d961-4d81-b891-f9a8304f640b",
"userId": "f16833ab-a4a4-45f5-9b39-ad2c66e488f6"
},
"annotations": {
"summary": "设备掉线",
"description": "Thing:监听, 设备:振弦采集仪"
},
"startsAt": "2018-03-15T06:43:16.998350011Z",
"endsAt": "0001-01-01T00:00:00Z",
"generatorURL": "http://iota-prometheus-75959cf787-c89sh:19090/graph?g0.expr=iota_dac_device_status+%3D%3D+0&g0.tab=1",
"latestStartsAt": "2018-03-15T06:43:16.998350011Z",
"severity": 1,
"repeatTimes": 1
}
]
}
Query Parameters
参数 | 类型 | 必填 | 说明 | |
---|---|---|---|---|
labels | string | 是 | 指定Thing id labels=thingId:3eebc743-63eb-4a7b-9d49-3a19ea123a42,deviceId:ed781c8f-575e-4ef6-a1f5-8b9ffe9afab5 | |
thingId | string | 是 | 指定Thing id, 可多选 thingId:3eebc743-63eb-4a7b-9d49-3a19ea123a42 | |
deviceId | string | 是 | 指定设备id, 可多选 deviceId:ed781c8f-575e-4ef6-a1f5-8b9ffe9afab5 | |
severities | number | 是 | 级别,多选 | |
definitions | string | 是 | 告警定义,多选 见告警定义中的key值,目前系统仅支持三类 |
查询当前告警
查询系统中的历史告警。
HTTP Request
GET /v1/api/alerts/history
Request
GET /v1/api/alerts/history
Response 同当前告警,多恢复时间输出
Query Parameters
参数 | 类型 | 必填 | 说明 | |
---|---|---|---|---|
labels | string | 是 | 指定Thing id labels=thingId:3eebc743-63eb-4a7b-9d49-3a19ea123a42,deviceId:ed781c8f-575e-4ef6-a1f5-8b9ffe9afab5 | |
thingId | string | 是 | 指定Thing id, 可多选 thingId:3eebc743-63eb-4a7b-9d49-3a19ea123a42 | |
deviceId | string | 是 | 指定设备id, 可多选 deviceId:ed781c8f-575e-4ef6-a1f5-8b9ffe9afab5 | |
severities | number | 是 | 级别,多选 | |
definitions | string | 是 | 告警定义,多选 见告警定义中的key值,目前系统仅支持三类 | |
begin | number | 是 | 开始时间, 格式:1521686519958 | |
end | number | 是 | 结束时间, 格式:1521686519958 |
规则
iOTA 中,通过规则实现对采集到的设备数据进行后续处理。
规则由多个数据流节点定义对数据的处理流程,系统内置以下数据节点:
- 数据源
- 用户数据源
- 子用户数据源
- Thing数据源
- Device数据源
- 维度数据源
- 能力数据源
- 输出
- 输出至MQTT
- 输出至TCP
- 输出至E-mail
- 请求/应答
- HTTP请求
- TCP请求
- 工具
- 自定义数据源
- Debug
- 注释
查询所有
查询所有规则。
HTTP Request
GET /v1/api/rules
Request
GET /v1/api/rules
Response
{
"total": 2,
"rules": [{
"id": "9e30f570-182c-4221-a8cb-5d59c9b24a7a",
"name": "测试规则2",
"desc": "",
"flow": "[{\"id\":\"9e30f570-182c-4221-a8cb-5d59c9b24a7a\",\"type\":\"tab\",\"label\":\"11\"}]",
"createBy": "66b1b02c-3e6e-47e2-aeee-b5cdff39a653",
"belongTo": "66b1b02c-3e6e-47e2-aeee-b5cdff39a653",
"investor": "66b1b02c-3e6e-47e2-aeee-b5cdff39a653",
"public": false,
"enable": false,
"release": false,
"createdAt": "2017-07-21T01:03:04.185Z",
"updatedAt": "2017-07-21T01:04:26.852Z"
}, {
"id": "fa5c0932-d1f8-4505-a8e3-b4ab532a23fa",
"name": "测试规则",
"desc": "",
"flow": "[{\"id\":\"fa5c0932-d1f8-4505-a8e3-b4ab532a23fa\",\"type\":\"tab\",\"label\":\"测试规则\"},{\"id\":\"6664ee11.fe5bc\",\"type\":\"inject\",\"z\":\"fa5c0932-d1f8-4505-a8e3-b4ab532a23fa\",\"name\":\"\",\"topic\":\"\",\"payload\":\"\",\"payloadType\":\"date\",\"repeat\":\"\",\"crontab\":\"\",\"once\":false,\"x\":420,\"y\":187,\"wires\":[[\"13464ed8.044961\"]]},{\"id\":\"13464ed8.044961\",\"type\":\"debug\",\"z\":\"fa5c0932-d1f8-4505-a8e3-b4ab532a23fa\",\"name\":\"\",\"active\":true,\"console\":\"false\",\"complete\":\"payload\",\"x\":674,\"y\":195,\"wires\":[]},{\"id\":\"c21739cd.6c75b8\",\"type\":\"comment\",\"z\":\"fa5c0932-d1f8-4505-a8e3-b4ab532a23fa\",\"name\":\"注释\",\"info\":\"注释\",\"x\":690,\"y\":120,\"wires\":[]}]",
"createBy": "66b1b02c-3e6e-47e2-aeee-b5cdff39a653",
"belongTo": "66b1b02c-3e6e-47e2-aeee-b5cdff39a653",
"investor": "66b1b02c-3e6e-47e2-aeee-b5cdff39a653",
"public": false,
"enable": false,
"release": false,
"createdAt": "2017-07-19T08:05:33.367Z",
"updatedAt": "2017-07-21T01:04:17.239Z"
}]
}
Query Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
name | string | 否 | 名称,模糊查询 |
查询指定
通过id查询指定的规则。
HTTP Request
GET /v1/api/rules/:id
GET /v1/api/rules/fa5c0932-d1f8-4505-a8e3-b4ab532a23fa
Response
{
"id": "fa5c0932-d1f8-4505-a8e3-b4ab532a23fa",
"name": "测试规则",
"desc": "",
"flow": "[{\"id\":\"fa5c0932-d1f8-4505-a8e3-b4ab532a23fa\",\"type\":\"tab\",\"label\":\"测试规则\"},{\"id\":\"6664ee11.fe5bc\",\"type\":\"inject\",\"z\":\"fa5c0932-d1f8-4505-a8e3-b4ab532a23fa\",\"name\":\"\",\"topic\":\"\",\"payload\":\"\",\"payloadType\":\"date\",\"repeat\":\"\",\"crontab\":\"\",\"once\":false,\"x\":420,\"y\":187,\"wires\":[[\"13464ed8.044961\"]]},{\"id\":\"13464ed8.044961\",\"type\":\"debug\",\"z\":\"fa5c0932-d1f8-4505-a8e3-b4ab532a23fa\",\"name\":\"\",\"active\":true,\"console\":\"false\",\"complete\":\"payload\",\"x\":674,\"y\":195,\"wires\":[]},{\"id\":\"c21739cd.6c75b8\",\"type\":\"comment\",\"z\":\"fa5c0932-d1f8-4505-a8e3-b4ab532a23fa\",\"name\":\"注释\",\"info\":\"注释\",\"x\":690,\"y\":120,\"wires\":[]}]",
"createBy": "66b1b02c-3e6e-47e2-aeee-b5cdff39a653",
"belongTo": "66b1b02c-3e6e-47e2-aeee-b5cdff39a653",
"investor": "66b1b02c-3e6e-47e2-aeee-b5cdff39a653",
"public": false,
"enable": false,
"release": false,
"createdAt": "2017-07-19T08:05:33.367Z",
"updatedAt": "2017-07-21T01:04:17.239Z"
}
URL Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
id | string | 是 | 规则 id |
创建
创建规则(仅基本信息)。
HTTP Request
POST /v1/api/rules
Request
POST /v1/api/rules
body {
"name": "测试规则3",
"desc": "",
"enable": false,
"release": false,
}
Response
{
"id": "ff378be5-4994-46ae-adc5-ae74a423d126",
"name": "测试规则3",
"desc": "",
"flow": "[{\"id\":\"ff378be5-4994-46ae-adc5-ae74a423d126\",\"type\":\"tab\",\"label\":\"测试规则3\"}]",
"createBy": "66b1b02c-3e6e-47e2-aeee-b5cdff39a653",
"belongTo": "66b1b02c-3e6e-47e2-aeee-b5cdff39a653",
"investor": "66b1b02c-3e6e-47e2-aeee-b5cdff39a653",
"public": false,
"enable": false,
"release": false,
"createdAt": "2017-07-21T01:44:58.803Z",
"updatedAt": "2017-07-21T01:44:58.813Z"
}
Body Parameters
参数 | 类型 | 必填 | 说明 | |
---|---|---|---|---|
name | string | 是 | 名称 | |
desc | string | 否 | 描述 | |
enable | bool | 否 | 是否启用 | |
release | bool | 否 | 是否发布 |
修改基本信息
修改规则的名称、描述。
HTTP Request
PUT /v1/api/rules/:id
Request
PUT /v1/api/rules/ff378be5-4994-46ae-adc5-ae74a423d126
body {
"name": "规则名称",
"desc": "",
"enable": false,
"release": false,
}
URL Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
id | string | 是 | Thing id |
Body Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
name | string | 是 | 名称 |
desc | string | 否 | 描述 |
enable | bool | 否 | 是否启用 |
release | bool | 否 | 是否发布 |
删除
删除指定的规则。
Request
DELETE /v1/api/rules/ff378be5-4994-46ae-adc5-ae74a423d126
HTTP Request
DELETE /v1/api/rules/:id
URL Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
id | string | 是 | 规则 id |
Metrics
提供基础的用户指标信息接口。
设备接口
获取用户的私有/公开设备接口,及总数;获取接口被引用的情况。
HTTP Request
GET /v1/api/metrics/meta/interfaces
Request
GET /v1/api/metrics/meta/interfaces
Response
{
"summary": {
"total": 3,
"public": 0,
"private": 3,
"referenced": 5
},
"referenced": [{
"count": "2",
"id": "869625e6-caf9-4955-a663-e5d4e43a145e",
"name": "SoIP"
}, {
"count": "1",
"id": "558407da-e05c-4df9-af4d-04ae57cf9526",
"name": "03test-MSP"
}, {
"count": "2",
"id": "a3d17308-e9f7-4d45-8c44-efbbb99de2f7",
"name": "03-serialcon"
}]
}
设备协议
获取用户的私有/公开设备协议,及总数;获取协议被引用的情况。
HTTP Request
GET /v1/api/metrics/meta/protocols
Request
GET /v1/api/metrics/meta/protocols
Response
{
"summary": {
"total": 2,
"public": 0,
"private": 2,
"referenced": 3
},
"referenced": [{
"count": "2",
"id": "6b4cb5ca-b699-4824-af6c-254f48c9c9b3",
"name": "03t-1503"
}, {
"count": "1",
"id": "9204d9cf-ec40-4b24-9396-a3d01a1ce52e",
"name": "03test-9608"
}]
}
设备
获取用户的私有/公开设备原型,及总数;获取设备原型被实例化的情况。
HTTP Request
GET /v1/api/metrics/meta/devices
Request
GET /v1/api/metrics/meta/devices
Response
{
"summary": {
"total": 4,
"public": 1,
"private": 3,
"instances": 3
},
"instances": [{
"count": "1",
"id": "a0fced72-7f39-4a5c-9512-f37a65d24759",
"name": "03test-MSP"
}, {
"count": "1",
"id": "df74b4a2-d361-43ea-9094-8582c6ab0cd7",
"name": "03test-采集仪"
}, {
"count": "1",
"id": "f69868c6-9918-47e7-a9a7-567f617cadce",
"name": "03test-测斜仪"
}]
}
数据采集
获取用户的全部/最近一年/最近一月/最近一周内的数据采集情况。
HTTP Request
GET /v1/api/metrics/raw_data/rates
Request
GET /v1/api/metrics/raw_data/rates
Response
{
"summary": {
"total": 751,
"complete": 726,
"useful": 725,
"rates": {
"complete": "96.67",
"useful": "96.54"
}
}
}
Query Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
range | string | 否 | year/week/month |
thingIds | string | 否 | Thing ID,",“分割 |
Things
获取用户Things的状态信息。
HTTP Request
GET /v1/api/metrics/runtime/things
Request
GET /v1/api/metrics/runtime/things
Response
{
"summary": {
"total": 1,
"runningThings": 1,
"runningDimensions": 0
},
"runningThings": [{
"name": "IOTA",
"dimensions": [{
"id": "b7957c87-5eb8-4340-a082-a87e5e5f0021",
"name": "1",
"desc": "",
"createdAt": "2017-09-23T08:11:19.170Z",
"updatedAt": "2017-09-23T08:11:19.178Z",
"thingId": "e6a1d207-f75f-4d55-8aca-c4f295fc9c15"
}]
}]
}
流量统计
获取用户的设备数据流量信息。
HTTP Request
GET /v1/api/metrics/raw_data/streams
Request
GET /v1/api/metrics/raw_data/streams
Response
{
"summary": {
"total": 509,
"incoming": 239,
"outgoing": 270
}
}
授权管理
子用户管理
查询子用户
查询主用户创建的所有子用户。
Request:
HTTP Request
GET /v1/api/users/:parentId/subusers
GET /v1/api/users/8cb27445-99ed-4168-8a8f-876ed83440b2/subusers
Response:
{
"total": 3,
"users": [
{
"id": "a2e2a70c-6b75-4b7b-a4b9-0719862446ac",
"username": "iota",
"email": "iota@theiota.com",
"mobile": "11111111111",
"subExt": {
"id": 3,
"dependent": true,
"enable": false,
"createdAt": "2017-04-18T08:08:48.642Z",
"updatedAt": "2017-04-18T08:08:48.893Z",
"parentId": "8cb27445-99ed-4168-8a8f-876ed83440b2",
"userId": "a2e2a70c-6b75-4b7b-a4b9-0719862446ac"
}
}
]
}
URL Parameters
参数 | 类型 | 必填 | 说明 | |
---|---|---|---|---|
parentId | string | 是 | 子用户的父用户id |
查询指定子用户
查询主用户创建的某个子用户。
HTTP Request
GET /v1/api/users/:parentId/subusers/:id
Request:
GET /v1/api/users/8cb27445-99ed-4168-8a8f-876ed83440b2/subusers/a2e2a70c-6b75-4b7b-a4b9-0719862446ac
Response:
{
"id": "a2e2a70c-6b75-4b7b-a4b9-0719862446ac",
"username": "iota",
"email": "iota@theiota.com",
"mobile": "11111111111",
"subExt": {
"id": 3,
"dependent": true,
"enable": false,
"createdAt": "2017-04-18T08:08:48.642Z",
"updatedAt": "2017-04-18T08:08:48.893Z",
"parentId": "8cb27445-99ed-4168-8a8f-876ed83440b2",
"userId": "a2e2a70c-6b75-4b7b-a4b9-0719862446ac"
}
}
URL Parameters
参数 | 类型 | 必填 | 说明 | |
---|---|---|---|---|
parentId | string | 是 | 子用户的父用户id | |
id | string | 是 | 子用户id |
创建子用户
主用户创建子用户。
HTTP Request
POST /v1/api/users/:parentId/subusers
Request:
POST /v1/api/users/8cb27445-99ed-4168-8a8f-876ed83440b2/subusers
body {
"username": "iota",
"password": 123456,
"email": "iota@theiota.com",
"mobile": "11111111111"
}
Response:
{
"id": "25055945-16e3-4d8a-ae77-35857ce2a2ff",
"actEmail": false,
"username": "iota",
"email": "iota@theiota.com",
"mobile": "11111111111",
"type": "Sub",
"updatedAt": "2017-04-18T09:45:27.821Z",
"createdAt": "2017-04-18T09:45:27.821Z",
"gravatar": null,
"subExt": {
"enable": true,
"id": 4,
"parentId": "8cb27445-99ed-4168-8a8f-876ed83440b2",
"dependent": false,
"userId": "25055945-16e3-4d8a-ae77-35857ce2a2ff",
"updatedAt": "2017-04-18T09:45:27.842Z",
"createdAt": "2017-04-18T09:45:27.842Z"
},
"account": {
"id": "6bd2c66b-ec5a-4ed6-b404-e648cf1993b7",
"accountName": "iota",
"balance": 0
}
}
URL Parameters
参数 | 类型 | 必填 | 说明 | |
---|---|---|---|---|
parentId | string | 是 | 子用户的父用户id |
Body Parameters
参数 | 类型 | 必填 | 说明 | |
---|---|---|---|---|
username | string | 是 | 子用户用户名 | |
password | string | 是 | 子用户密码 | |
string | 是 | 子用户邮箱 | ||
mobile | string | 是 | 子用户手机号 |
修改子用户基本信息
修改已经创建的子用户的基本信息。
HTTP Request
PUT /v1/api/users/:parentId/subusers/:id
Request:
PUT /v1/api/users/8cb27445-99ed-4168-8a8f-876ed83440b2/subusers/25055945-16e3-4d8a-ae77-35857ce2a2ff
body {
"username": "IOTA",
"email": "IOTA@theiota.com",
"subExt": {"enable": false, "dependent": true}
}
URL Parameters
参数 | 类型 | 必填 | 说明 | |
---|---|---|---|---|
parentId | string | 是 | 子用户的父用户id |
Body Parameters
参数 | 类型 | 必填 | 说明 | |
---|---|---|---|---|
username | string | 否 | 子用户用户名 | |
string | 否 | 子用户邮箱 | ||
mobile | string | 否 | 子用户手机号 | |
subExt | object | 否 | 子用户手机号 | |
enable | boolean | 否 | 子用户激活状态 | |
dependent | boolean | 否 | 子用户独立运维状态 |
启用子用户
修改子用户状态为启用中。
HTTP Request
POST /v1/api/users/:parentId/subusers/enable
Request:
POST /v1/api/users/8cb27445-99ed-4168-8a8f-876ed83440b2/subusers/enable
body {
"ids":[
"25055945-16e3-4d8a-ae77-35857ce2a2ff",
"cbccc17a-5c6b-4fe1-9f0f-52f2ca60f160"
]
}
URL Parameters
参数 | 类型 | 必填 | 说明 | |
---|---|---|---|---|
parentId | string | 是 | 子用户的父用户id |
Body Parameters
参数 | 类型 | 必填 | 说明 | |
---|---|---|---|---|
ids | array | 否 | 子用户id |
禁用子用户
修改子用户状态为禁用。
HTTP Request
POST /v1/api/users/:parentId/subusers/disable
Request:
POST /v1/api/users/8cb27445-99ed-4168-8a8f-876ed83440b2/subusers/disable
body {
"ids":[
"25055945-16e3-4d8a-ae77-35857ce2a2ff",
"cbccc17a-5c6b-4fe1-9f0f-52f2ca60f160"
]
}
URL Parameters
参数 | 类型 | 必填 | 说明 | |
---|---|---|---|---|
parentId | string | 是 | 子用户的父用户id |
Body Parameters
参数 | 类型 | 必填 | 说明 | |
---|---|---|---|---|
ids | array | 否 | 子用户id |
启用子用户独立运维
修改子用户为独立运维。
HTTP Request
POST /v1/api/users/:parentId/subusers/independent
Request:
POST /v1/api/users/8cb27445-99ed-4168-8a8f-876ed83440b2/subusers/independent
body {
"ids":[
"25055945-16e3-4d8a-ae77-35857ce2a2ff",
"cbccc17a-5c6b-4fe1-9f0f-52f2ca60f160"
]
}
URL Parameters
参数 | 类型 | 必填 | 说明 | |
---|---|---|---|---|
parentId | string | 是 | 子用户的父用户id |
Body Parameters
参数 | 类型 | 必填 | 说明 | |
---|---|---|---|---|
ids | array | 否 | 子用户id |
禁用子用户独立运维
修改子用户为非独立运维。
HTTP Request
POST /v1/api/users/:parentId/subusers/dependent
Request:
POST /v1/api/users/8cb27445-99ed-4168-8a8f-876ed83440b2/subusers/dependent
body {
"ids":[
"25055945-16e3-4d8a-ae77-35857ce2a2ff",
"cbccc17a-5c6b-4fe1-9f0f-52f2ca60f160"
]
}
URL Parameters
参数 | 类型 | 必填 | 说明 | |
---|---|---|---|---|
parentId | string | 是 | 子用户的父用户id |
Body Parameters
参数 | 类型 | 必填 | 说明 | |
---|---|---|---|---|
ids | array | 否 | 子用户id |
资源组管理
查询资源类型
查询所有资源类型。
HTTP Request
GET /v1/api/resource_types
Request:
GET /v1/api/resource_types
Response:
{
"resourceTypes": [
{
"name": "协议",
"type": "Protocol",
"desc": "协议资源",
"model": "ProtocolMeta",
"nameField": "name",
"idField": "id",
"descField": "desc",
"key": "protocols",
"url": "meta/protocols",
"createdAt": "2017-04-13T11:45:05.980Z",
"updatedAt": "2017-04-13T11:45:05.980Z",
"operationTypes": [
{
"name": "所有",
"desc": "",
"type": "protocol.*",
"createdAt": "2017-04-13T11:45:06.473Z",
"updatedAt": "2017-04-13T11:45:06.473Z",
"resourceTypeKey": "Protocol"
},
{
"name": "查看",
"desc": "",
"type": "protocol.view",
"createdAt": "2017-04-13T11:45:06.482Z",
"updatedAt": "2017-04-13T11:45:06.482Z",
"resourceTypeKey": "Protocol"
},
{
"name": "修改",
"desc": "",
"type": "protocol.update",
"createdAt": "2017-04-13T11:45:06.487Z",
"updatedAt": "2017-04-13T11:45:06.487Z",
"resourceTypeKey": "Protocol"
},
{
"name": "删除",
"desc": "",
"type": "protocol.delete",
"createdAt": "2017-04-13T11:45:06.492Z",
"updatedAt": "2017-04-13T11:45:06.492Z",
"resourceTypeKey": "Protocol"
}
]
},
{
"name": "接口",
"type": "Interface",
"desc": "接口资源",
"model": "InterfaceMeta",
"nameField": "name",
"idField": "id",
"descField": "desc",
"key": "interfaces",
"url": "meta/interfaces",
"createdAt": "2017-04-13T11:45:05.987Z",
"updatedAt": "2017-04-13T11:45:05.987Z",
"operationTypes": [
{
"name": "所有",
"desc": "",
"type": "interface.*",
"createdAt": "2017-04-13T11:45:06.496Z",
"updatedAt": "2017-04-13T11:45:06.496Z",
"resourceTypeKey": "Interface"
},
{
"name": "查看",
"desc": "",
"type": "interface.view",
"createdAt": "2017-04-13T11:45:06.501Z",
"updatedAt": "2017-04-13T11:45:06.501Z",
"resourceTypeKey": "Interface"
},
{
"name": "修改",
"desc": "",
"type": "interface.update",
"createdAt": "2017-04-13T11:45:06.506Z",
"updatedAt": "2017-04-13T11:45:06.506Z",
"resourceTypeKey": "Interface"
},
{
"name": "删除",
"desc": "",
"type": "interface.delete",
"createdAt": "2017-04-13T11:45:06.512Z",
"updatedAt": "2017-04-13T11:45:06.512Z",
"resourceTypeKey": "Interface"
}
]
},
{
"name": "设备",
"type": "Device",
"desc": "设备资源",
"model": "DeviceMeta",
"nameField": "name",
"idField": "id",
"descField": "desc",
"key": "devices",
"url": "meta/devices",
"createdAt": "2017-04-13T11:45:05.991Z",
"updatedAt": "2017-04-13T11:45:05.991Z",
"operationTypes": [
{
"name": "所有",
"desc": "",
"type": "device.*",
"createdAt": "2017-04-13T11:45:06.516Z",
"updatedAt": "2017-04-13T11:45:06.516Z",
"resourceTypeKey": "Device"
},
{
"name": "查看",
"desc": "",
"type": "device.view",
"createdAt": "2017-04-13T11:45:06.520Z",
"updatedAt": "2017-04-13T11:45:06.520Z",
"resourceTypeKey": "Device"
},
{
"name": "修改",
"desc": "",
"type": "device.update",
"createdAt": "2017-04-13T11:45:06.525Z",
"updatedAt": "2017-04-13T11:45:06.525Z",
"resourceTypeKey": "Device"
},
{
"name": "删除",
"desc": "",
"type": "device.delete",
"createdAt": "2017-04-13T11:45:06.528Z",
"updatedAt": "2017-04-13T11:45:06.528Z",
"resourceTypeKey": "Device"
}
]
},
{
"name": "Thing",
"type": "Thing",
"desc": "Thing资源",
"model": "Thing",
"nameField": "name",
"idField": "id",
"descField": "desc",
"key": "things",
"url": "things",
"createdAt": "2017-04-13T11:45:05.999Z",
"updatedAt": "2017-04-13T11:45:05.999Z",
"operationTypes": [
{
"name": "所有",
"desc": "",
"type": "thing.*",
"createdAt": "2017-04-13T11:45:06.532Z",
"updatedAt": "2017-04-13T11:45:06.532Z",
"resourceTypeKey": "Thing"
},
{
"name": "查看",
"desc": "",
"type": "thing.view",
"createdAt": "2017-04-13T11:45:06.536Z",
"updatedAt": "2017-04-13T11:45:06.536Z",
"resourceTypeKey": "Thing"
},
{
"name": "修改",
"desc": "",
"type": "thing.update",
"createdAt": "2017-04-13T11:45:06.540Z",
"updatedAt": "2017-04-13T11:45:06.540Z",
"resourceTypeKey": "Thing"
},
{
"name": "删除",
"desc": "",
"type": "thing.delete",
"createdAt": "2017-04-13T11:45:06.545Z",
"updatedAt": "2017-04-13T11:45:06.545Z",
"resourceTypeKey": "Thing"
}
]
},
{
"name": "Deploy",
"type": "Deploy",
"desc": "设备布设",
"model": "Thing",
"nameField": "name",
"idField": "id",
"descField": "desc",
"key": "things",
"url": "things",
"createdAt": "2017-04-13T11:45:06.007Z",
"updatedAt": "2017-04-13T11:45:06.007Z",
"operationTypes": [
{
"name": "所有",
"desc": "",
"type": "deploy.*",
"createdAt": "2017-04-13T11:45:06.549Z",
"updatedAt": "2017-04-13T11:45:06.549Z",
"resourceTypeKey": "Deploy"
},
{
"name": "查看",
"desc": "",
"type": "deploy.view",
"createdAt": "2017-04-13T11:45:06.553Z",
"updatedAt": "2017-04-13T11:45:06.553Z",
"resourceTypeKey": "Deploy"
},
{
"name": "修改",
"desc": "",
"type": "deploy.update",
"createdAt": "2017-04-13T11:45:06.557Z",
"updatedAt": "2017-04-13T11:45:06.557Z",
"resourceTypeKey": "Deploy"
},
{
"name": "删除",
"desc": "",
"type": "deploy.delete",
"createdAt": "2017-04-13T11:45:06.561Z",
"updatedAt": "2017-04-13T11:45:06.561Z",
"resourceTypeKey": "Deploy"
}
]
}
]
}
查询资源组
查询当前登录主用户创建的所有资源组。
Request:
HTTP Request
GET /v1/api/resource_groups
GET /v1/api/resource_groups
Response:
{
"total": 1,
"resourceGroups": [
{
"id": "655b28f3-3945-4f14-a3ae-24e8e3ef102b",
"name": "group1",
"desc": null,
"createBy": "2de50bee-f007-47e5-810d-8949c00017c8",
"createdAt": "2017-04-19T06:13:27.995Z",
"updatedAt": "2017-04-19T06:13:27.995Z"
}
]
}
查询指定资源组
查询当前登录主用户创建的某个资源组。
HTTP Request
GET /v1/api/resource_groups/:id?
Request:
GET /v1/api/resource_groups/655b28f3-3945-4f14-a3ae-24e8e3ef102b
Response:
{
"id": "655b28f3-3945-4f14-a3ae-24e8e3ef102b",
"name": "group1",
"desc": null,
"createBy": "2de50bee-f007-47e5-810d-8949c00017c8",
"createdAt": "2017-04-19T06:13:27.995Z",
"updatedAt": "2017-04-19T06:13:27.995Z",
}
URL Parameters
参数 | 类型 | 必填 | 说明 | |
---|---|---|---|---|
id | string | 是 | 资源组id |
查询指定资源组的资源
查询当前登录主用户创建的某个资源组的资源
HTTP Request
GET /v1/api/resource_groups/:resourceGroupId/resources
Request:
GET /v1/api/resource_groups/655b28f3-3945-4f14-a3ae-24e8e3ef102b/resources
Response:
{
"total":1,
"resources": [
{
"id": "8634ab7e-558b-47a9-8bc3-51c0f826d8b8",
"name": "Interface",
"desc": null,
"type": "Interface",
"key": "45950c0a-f953-4867-8b44-73673732fcbf",
"createBy": "2de50bee-f007-47e5-810d-8949c00017c8",
"createdAt": "2017-04-19T06:13:28.012Z",
"updatedAt": "2017-04-19T06:13:28.012Z",
"resourceGroupId": "655b28f3-3945-4f14-a3ae-24e8e3ef102b"
}
]
}
URL Parameters
参数 | 类型 | 必填 | 说明 | |
---|---|---|---|---|
resourceGroupId | string | 是 | 资源组id |
查询指定资源组的指定资源
查询当前登录主用户创建的某个资源组的指定资源
HTTP Request
GET /v1/api/resource_groups/:resourceGroupId/resources/:id
Request:
GET /v1/api/resource_groups/655b28f3-3945-4f14-a3ae-24e8e3ef102b/resources/8634ab7e-558b-47a9-8bc3-51c0f826d8b
Response:
{
"id": "8634ab7e-558b-47a9-8bc3-51c0f826d8b8",
"name": "Interface",
"desc": null,
"type": "Interface",
"key": "45950c0a-f953-4867-8b44-73673732fcbf",
"createBy": "2de50bee-f007-47e5-810d-8949c00017c8",
"createdAt": "2017-04-19T06:13:28.012Z",
"updatedAt": "2017-04-19T06:13:28.012Z",
"resourceGroupId": "655b28f3-3945-4f14-a3ae-24e8e3ef102b"
}
URL Parameters
参数 | 类型 | 必填 | 说明 | |
---|---|---|---|---|
resourceGroupId | string | 是 | 资源组id | |
id | string | 是 | 资源id |
查询不在指定资源组内的某类资源
查询当前登录主用户创建的某个资源组中未分配的某类资源。
HTTP Request
GET /v1/api/resource_groups/:resourceGroupId/not_in_gourp/reources/:type
Request:
GET /v1/api/resource_groups/655b28f3-3945-4f14-a3ae-24e8e3ef102b/resources/Protocol
Response:
{
"total":1,
"protocols": [
{
"id": "551f91d9-553b-42d2-9496-dfb1d928642c",
"name": "Modbus",
"desc": "Modbus是由Modicon(现为施耐德电气公司的一个品牌)在1979年发明的,是全球第一个真正用于工业现场的总线协议。"
}
]
}
URL Parameters
参数 | 类型 | 必填 | 说明 | |
---|---|---|---|---|
resourceGroupId | string | 是 | 资源组id | |
type | string | 是 | 资源类型,见查询资源类型接口 |
创建资源组
当前登录主用户创建资源组。
HTTP Request
POST /v1/api/resource_groups
Request:
POST /v1/api/resource_groups
body {
"name": "iota",
"desc": "IOTA",
"resources": [{
"type": "Protocol",
"key": "551f91d9-553b-42d2-9496-dfb1d928642c"
},{
"type": "Thing",
"key": "81fe4df8-6769-4b0e-9df8-5dc3b95a28c7"
}]
}
Response:
{
"name": "iota",
"desc": "IOTA",
"resources": [
{
"type": "Protocol",
"key": "551f91d9-553b-42d2-9496-dfb1d928642c",
"name": "Modbus",
"desc": "Modbus是由Modicon(现为施耐德电气公司的一个品牌)在1979年发明的,是全球第一个真正用于工业现场的总线协议。"
},
{
"type": "Thing",
"key": "81fe4df8-6769-4b0e-9df8-5dc3b95a28c7",
"name": "云南澜沧江大桥",
"desc": "为云南澜沧江大桥建立在线监测系统,涵盖桥梁9个监测内容,全面掌握桥梁健康状况。"
}
],
"id": "118f795f-d080-4dae-83ad-408a32ec4d89"
}
Body Parameters
参数 | 类型 | 必填 | 说明 | |
---|---|---|---|---|
name | string | 是 | 资源组名称 | |
desc | string | 否 | 资源组描述 | |
resources | array of object | 是 | 添加的组内资源 | |
type | enum | 是 | 资源类型 Protocol/Interface/Device/Thing/Deploy | |
key | string | 是 | 添加的组内资源的id |
修改资源组基本信息
修改已经创建的资源组的基本信息。
HTTP Request
PUT /v1/api/resource_groups/:id
Request:
PUT /v1/api/resource_groups/118f795f-d080-4dae-83ad-408a32ec4d89
body {
"name": "theIOTA",
"desc": "theIOTA"
}
URL Parameters
参数 | 类型 | 必填 | 说明 | |
---|---|---|---|---|
id | string | 是 | 资源组id |
Body Parameters
参数 | 类型 | 必填 | 说明 | |
---|---|---|---|---|
name | string | 否 | 资源组名称 | |
desc | string | 否 | 资源组描述 |
删除资源组
删除已经创建的资源组。
HTTP Request
DELETE /v1/api/resource_groups
Request:
DELETE /v1/api/resource_group
body {
"ids":[
"118f795f-d080-4dae-83ad-408a32ec4d89",
"655b28f3-3945-4f14-a3ae-24e8e3ef102b"
]
}
Body Parameters
参数 | 类型 | 必填 | 说明 | |
---|---|---|---|---|
ids | array | 否 | 资源组id |
添加资源组内资源
向指定资源组内添加资源。
HTTP Request
POST /v1/api/resource_groups/:resourceGroupId/resources
Request:
POST /v1/api/resource_groups/118f795f-d080-4dae-83ad-408a32ec4d89/resources
body {
"resources": [{
"type": "Device",
"key": "bda28056-9078-4b25-84a5-2abaa54e2a57"
}]
}
Response:
[
{
"type": "Device",
"key": "bda28056-9078-4b25-84a5-2abaa54e2a57",
"id": "2cc1a19e-c344-447e-9b2c-51ff884da1fb"
}
]
URL Parameters
参数 | 类型 | 必填 | 说明 | |
---|---|---|---|---|
resourceGroupId | string | 是 | 资源组id |
Body Parameters
参数 | 类型 | 必填 | 说明 | |
---|---|---|---|---|
resources | array of object | 是 | 添加的组内资源 | |
type | enum | 是 | 资源类型 Protocol/Interface/Device/Thing/Deploy | |
key | string | 是 | 添加的组内资源的id |
修改资源组内资源
修改已经创建的资源组内的资源。
HTTP Request
PUT /v1/api/resource_groups/:resourceGroupId/resources/:id
Request:
PUT /v1/api/resource_groups/118f795f-d080-4dae-83ad-408a32ec4d89/resources/2cc1a19e-c344-447e-9b2c-51ff884da1fb
body {
"type": "Device",
"key": "655b28f3-3945-4f14-a3ae-24e8e666102b"
}
URL Parameters
参数 | 类型 | 必填 | 说明 | |
---|---|---|---|---|
resourceGroupId | string | 是 | 资源组id | |
id | string | 是 | 资源id |
Body Parameters
参数 | 类型 | 必填 | 说明 | |
---|---|---|---|---|
type | enum | 是 | 资源类型 Protocol/Interface/Device/Thing/Deploy | |
key | string | 是 | 添加的组内资源的id |
删除资源组内资源
删除已经创建的资源组内的资源。
HTTP Request
DELETE /v1/api/resource_groups/:resourceGroupId/resources
Request:
DELETE /v1/api/resource_groups/118f795f-d080-4dae-83ad-408a32ec4d89/resources
body {
"ids":[
"118f795f-d080-4dae-83ad-408a32ec4d89",
"655b28f3-3945-4f14-a3ae-24e8e3ef102b"
]
}
URL Parameters
参数 | 类型 | 必填 | 说明 | |
---|---|---|---|---|
resourceGroupId | string | 是 | 资源组id |
Body Parameters
参数 | 类型 | 必填 | 说明 | |
---|---|---|---|---|
ids | array | 否 | 资源id |
角色管理
角色管理包括一些对于角色权限的添加,目前支持的权限操作包括: “protocol.” , “protocol.view” , “protocol.update” , “protocol.delete” , “interface.” , “interface.view” , “interface.update” , “interface.delete” , “device.” , “device.view” , “device.update” , “device.delete” , “thing.” , “thing.view” , “thing.update” , “thing.delete” , “deploy.*” , “deploy.view” , “deploy.update” , “deploy.delete”
查询角色
查询当前登录主用户创建的所有角色。
HTTP Request
GET /v1/api/roles
Request:
GET /v1/api/roles
Response:
{
"total": 1,
"roles": [
{
"id": "43814894-1f9a-4a77-9b08-bc5aeff3cebf",
"name": "role1",
"desc": null,
"createBy": "2de50bee-f007-47e5-810d-8949c00017c8",
"createdAt": "2017-04-19T06:13:27.583Z",
"updatedAt": "2017-04-19T06:13:27.583Z",
"permissions": [
{
"id": "50fac7e6-ca82-4ae0-8c71-4e4a91703150",
"createdAt": "2017-04-19T06:13:28.025Z",
"updatedAt": "2017-04-19T06:13:28.025Z",
"roleId": "43814894-1f9a-4a77-9b08-bc5aeff3cebf",
"resourceTypeKey": "Interface",
"operationTypeKey": "interface.*"
}
]
}
]
}
查询指定角色
查询当前登录主用户创建的某个角色。
HTTP Request
GET /v1/api/roles/:id?
Request:
GET /v1/api/roles/:43814894-1f9a-4a77-9b08-bc5aeff3cebf
Response:
{
"id": "43814894-1f9a-4a77-9b08-bc5aeff3cebf",
"name": "iota",
"desc": null,
"createBy": "2de50bee-f007-47e5-810d-8949c00017c8",
"createdAt": "2017-04-19T06:13:27.583Z",
"updatedAt": "2017-04-19T06:13:27.583Z",
"permissions": [
{
"id": "50fac7e6-ca82-4ae0-8c71-4e4a91703150",
"createdAt": "2017-04-19T06:13:28.025Z",
"updatedAt": "2017-04-19T06:13:28.025Z",
"roleId": "43814894-1f9a-4a77-9b08-bc5aeff3cebf",
"resourceTypeKey": "Interface",
"operationTypeKey": "interface.*"
}
]
}
URL Parameters
参数 | 类型 | 必填 | 说明 | |
---|---|---|---|---|
id | string | 是 | 角色id |
创建角色
当前登录主用户创建角色。
HTTP Request
POST /v1/api/role
Request:
POST /v1/api/role
body {
"name": "IOTA",
"desc": "IOTA",
"permissions": [{
"resourceTypeKey": "Protocol",
"operationTypeKey": "protocol.view"
},
{
"resourceTypeKey": "Protocol",
"operationTypeKey": "protocol.delete"
}]
}
Response:
{
"name": "IOTA",
"desc": "IOTA",
"permissions": [
{
"resourceTypeKey": "Protocol",
"operationTypeKey": "protocol.view",
"roleId": "c155dfda-8b34-4352-9a1b-de33abe17fd9",
"id": "dabde18f-930c-4700-a845-996c59b72db4"
},
{
"resourceTypeKey": "Protocol",
"operationTypeKey": "protocol.delete",
"roleId": "c155dfda-8b34-4352-9a1b-de33abe17fd9",
"id": "86507621-c132-4f09-9ad3-295d901047e8"
}
],
"id": "c155dfda-8b34-4352-9a1b-de33abe17fd9"
}
Body Parameters
参数 | 类型 | 必填 | 说明 | |
---|---|---|---|---|
name | string | 是 | 角色名称 | |
desc | string | 否 | 角色描述 | |
permissions | array of object | 是 | 添加的权限 | |
resourceTypeKey | enum | 是 | 资源类型 Protocol/Interface/Device/Thing/Deploy | |
operationTypeKey | enum | 是 | 添加的权限操作 |
修改角色基本信息
修改已经创建的角色的基本信息。
HTTP Request
PUT /v1/api/roles/:id
Request:
PUT /v1/api/roles/:c155dfda-8b34-4352-9a1b-de33abe17fd9
body {
"name": "iota",
"desc": "iota",
}
URL Parameters
参数 | 类型 | 必填 | 说明 | |
---|---|---|---|---|
id | string | 是 | 角色id |
Body Parameters
参数 | 类型 | 必填 | 说明 | |
---|---|---|---|---|
name | string | 否 | 角色名 | |
desc | string | 否 | 角色描述 |
删除角色
删除已经创建的角色。
HTTP Request
DELETE /v1/api/roles
Request:
DELETE /v1/api/roles
body {
"ids":[
"118f795f-d080-4dae-83ad-408a32ec4d89",
"655b28f3-3945-4f14-a3ae-24e8e3ef102b"
]
}
Body Parameters
参数 | 类型 | 必填 | 说明 | |
---|---|---|---|---|
ids | array | 否 | 角色id |
更新角色权限
修改已经创建的角色的权限。
HTTP Request
PUT /v1/api/roles/:roleId/permissions
Request:
PUT /v1/api/roles/:c155dfda-8b34-4352-9a1b-de33abe17fd9/permissions
body {
"permissions": [{
"resourceTypeKey": "Protocol",
"operationTypeKey": "protocol.*"
},
{
"resourceTypeKey": "Protocol",
"operationTypeKey": "protocol.update"
}]
}
URL Parameters
参数 | 类型 | 必填 | 说明 | |
---|---|---|---|---|
id | string | 是 | 角色id |
Body Parameters
参数 | 类型 | 必填 | 说明 | |
---|---|---|---|---|
permissions | array of object | 是 | 添加的权限 | |
resourceTypeKey | enum | 是 | 资源类型 Protocol/Interface/Device/Thing/Deploy | |
operationTypeKey | enum | 是 | 添加的权限操作 |
用户组管理
查询用户组
查询主用户创建的所有用户组。
HTTP Request
GET /v1/api/user_groups
Request:
GET /v1/api/user_groups
Response:
{
"total": 1
"userGroups": [
{
"id": "118b9975-3253-44b1-acfd-f543c9d23a2a",
"name": "userGroup1",
"desc": null,
"createdAt": "2017-04-19T06:13:27.563Z"
}
]
}
查询指定用户组
查询主用户创建的某个用户组。
HTTP Request
GET /v1/api/user_groups/id
Request:
GET /v1/api/user_groups/118b9975-3253-44b1-acfd-f543c9d23a2a
Response:
{
"id": "118b9975-3253-44b1-acfd-f543c9d23a2a",
"name": "userGroup1",
"desc": null,
"createdAt": "2017-04-19T06:13:27.563Z"
}
URL Parameters
参数 | 类型 | 必填 | 说明 | |
---|---|---|---|---|
id | string | 是 | 用户组id |
创建用户组
当前登录主账户创建用户组。
HTTP Request
POST /v1/api/user_groups
Request:
POST /v1/api/user_groups
body {
"name": "iota",
"desc": "iota",
"users": [{
"type": "Sub",
"key": "0d6ce974-c94d-41fa-878b-bfd56606fc78"
},
{
"type": "Invited",
"key": "iota@theiota.cn"
}]
}
Response:
{
"name": "iota",
"desc": "iota",
"users": [
{
"type": "Sub",
"key": "0d6ce974-c94d-41fa-878b-bfd56606fc78",
"userId": "0d6ce974-c94d-41fa-878b-bfd56606fc78",
"username": "IOTA",
"email": null,
"id": "50000272-fcf4-48af-a7c3-11324a7c0f26",
"enable": true,
"createdAt": "2017-04-19T08:13:55.799Z"
},
{
"type": "Invited",
"key": "iota@theiota.cn",
"userId": "35d4da11e2589bf03821ec777ddfe53761fa9b22",
"username": "iota",
"email": "iota@theiota.cn",
"gravatar": null,
"id": "538197cb-4d55-4ac0-82b7-82f681dc055b",
"enable": true,
"createdAt": "2017-04-19T08:13:55.805Z",
"accept": false
}
],
"id": "15599e21-166b-4e65-b022-31c8dcba9d1e"
}
Body Parameters
参数 | 类型 | 必填 | 说明 | |
---|---|---|---|---|
name | string | 是 | 用户组名称 | |
desc | string | 是 | 用户组描述 | |
users | array of object | 是 | 添加的用户 | |
type | enum | 是 | 添加的用户类型 Sub/Invited | |
key | string | 是 | 添加的用户key值 |
修改用户组基本信息
当前登录主账户修改指定的用户组基本信息。
HTTP Request
PUT /v1/api/user_groups/:id
Request:
PUT /v1/api/user_groups/15599e21-166b-4e65-b022-31c8dcba9d1e
body {
"name": "IOTA",
"desc": "IOTA"
}
Body Parameters
参数 | 类型 | 必填 | 说明 | |
---|---|---|---|---|
name | string | 是 | 用户组名称 | |
desc | string | 是 | 用户组描述 |
删除用户组
删除已经创建的用户组。
HTTP Request
DELETE /v1/api/user_groups
Request:
DELETE /v1/api/user_groups
body {
"ids":[
"15599e21-166b-4e65-b022-31c8dcba9d1e",
"ae3b28f3-3945-4g24-a3ae-24e8e3ef10i8"
]
}
Body Parameters
参数 | 类型 | 必填 | 说明 | |
---|---|---|---|---|
ids | array | 否 | 用户组id |
查询指定用户组内用户
查询主用户创建的某个用户组内的所有用户。
HTTP Request
GET /v1/api/user_groups/:userGroupId/users
Request:
GET /v1/api/user_groups/118b9975-3253-44b1-acfd-f543c9d23a2a/users
Response:
{
"total": 1,
"users": [
{
"id": "8e273a16-ba8d-4770-8df6-4d089e0b3e97",
"userId": "0d6ce974-c94d-41fa-878b-bfd56606fc78",
"userGroupId": "118b9975-3253-44b1-acfd-f543c9d23a2a",
"email": null,
"username": "marboo",
"accept": false,
"enable": true,
"type": "Sub",
"createdAt": "2017-04-19T06:13:27.573Z"
}
]
}
URL Parameters
参数 | 类型 | 必填 | 说明 | |
---|---|---|---|---|
userGroupId | string | 是 | 用户组id |
查询指定用户组内指定用户
查询主用户创建的某个用户组内的某个用户。
HTTP Request
GET /v1/api/user_groups/:userGroupId/users/:id
Request:
GET /v1/api/user_groups/118b9975-3253-44b1-acfd-f543c9d23a2a/users/8e273a16-ba8d-4770-8df6-4d089e0b3e97
Response:
{
"id": "8e273a16-ba8d-4770-8df6-4d089e0b3e97",
"userId": "0d6ce974-c94d-41fa-878b-bfd56606fc78",
"userGroupId": "118b9975-3253-44b1-acfd-f543c9d23a2a",
"email": null,
"username": "marboo",
"accept": false,
"enable": true,
"type": "Sub",
"createdAt": "2017-04-19T06:13:27.573Z"
}
URL Parameters
参数 | 类型 | 必填 | 说明 | |
---|---|---|---|---|
userGroupId | string | 是 | 用户组id | |
id | string | 是 | 用户组内用户id |
查询用户组的授权信息
查询主用户创建的某个用户组的某个授权信息。
HTTP Request
GET /v1/api/user_groups/:userGroupId/authorizations/:id
Request:
GET /v1/api/user_groups/118b9975-3253-44b1-acfd-f543c9d23a2a/authorizations/265347af-2c62-4b5c-913e-43fff8c5364a
Response:
{
"id": "265347af-2c62-4b5c-913e-43fff8c5364a",
"createBy": "2de50bee-f007-47e5-810d-8949c00017c8",
"createdAt": "2017-04-19T06:13:28.039Z",
"updatedAt": "2017-04-19T06:13:28.039Z",
"userGroupId": "118b9975-3253-44b1-acfd-f543c9d23a2a",
"resourceGroupId": "655b28f3-3945-4f14-a3ae-24e8e3ef102b",
"roleId": "43814894-1f9a-4a77-9b08-bc5aeff3cebf",
"userGroup": {
"id": "118b9975-3253-44b1-acfd-f543c9d23a2a",
"name": "userGroup1",
"desc": null,
"createBy": "2de50bee-f007-47e5-810d-8949c00017c8",
"createdAt": "2017-04-19T06:13:27.563Z",
"updatedAt": "2017-04-19T06:13:27.563Z"
},
"resourceGroup": {
"id": "655b28f3-3945-4f14-a3ae-24e8e3ef102b",
"name": "group1",
"desc": null,
"createBy": "2de50bee-f007-47e5-810d-8949c00017c8",
"createdAt": "2017-04-19T06:13:27.995Z",
"updatedAt": "2017-04-19T06:13:27.995Z"
},
"role": {
"id": "43814894-1f9a-4a77-9b08-bc5aeff3cebf",
"name": "role1",
"desc": null,
"createBy": "2de50bee-f007-47e5-810d-8949c00017c8",
"createdAt": "2017-04-19T06:13:27.583Z",
"updatedAt": "2017-04-19T06:13:27.583Z"
}
}
URL Parameters
参数 | 类型 | 必填 | 说明 | |
---|---|---|---|---|
userGroupId | string | 是 | 用户组id | |
id | string | 是 | 用户组的授权信息id |
查询用户组授权信息
查询主用户创建的某个用户组的所有授权信息。
HTTP Request
GET /v1/api/user_groups/:userGroupId/authorizations
Request:
GET /v1/api/user_groups/118b9975-3253-44b1-acfd-f543c9d23a2a/authorizations
Response:
{
"total": 1,
"authorizations": [
{
"id": "265347af-2c62-4b5c-913e-43fff8c5364a",
"createBy": "2de50bee-f007-47e5-810d-8949c00017c8",
"createdAt": "2017-04-19T06:13:28.039Z",
"updatedAt": "2017-04-19T06:13:28.039Z",
"userGroupId": "118b9975-3253-44b1-acfd-f543c9d23a2a",
"resourceGroupId": "655b28f3-3945-4f14-a3ae-24e8e3ef102b",
"roleId": "43814894-1f9a-4a77-9b08-bc5aeff3cebf",
"userGroup": {
"id": "118b9975-3253-44b1-acfd-f543c9d23a2a",
"name": "userGroup1",
"desc": null,
"createBy": "2de50bee-f007-47e5-810d-8949c00017c8",
"createdAt": "2017-04-19T06:13:27.563Z",
"updatedAt": "2017-04-19T06:13:27.563Z"
},
"resourceGroup": {
"id": "655b28f3-3945-4f14-a3ae-24e8e3ef102b",
"name": "group1",
"desc": null,
"createBy": "2de50bee-f007-47e5-810d-8949c00017c8",
"createdAt": "2017-04-19T06:13:27.995Z",
"updatedAt": "2017-04-19T06:13:27.995Z"
},
"role": {
"id": "43814894-1f9a-4a77-9b08-bc5aeff3cebf",
"name": "role1",
"desc": null,
"createBy": "2de50bee-f007-47e5-810d-8949c00017c8",
"createdAt": "2017-04-19T06:13:27.583Z",
"updatedAt": "2017-04-19T06:13:27.583Z"
}
}
]
}
URL Parameters
参数 | 类型 | 必填 | 说明 | |
---|---|---|---|---|
userGroupId | string | 是 | 用户组id |
查询不在用户组中的子用户
查询不在某个用户组的所有子用户。
HTTP Request
GET /v1/api/user_groups/:userGroupId/not_in_group/users
Request:
GET /v1/api/user_groups/118b9975-3253-44b1-acfd-f543c9d23a2a/not_in_group/users
Response:
{
"total": 1,
"users": [
{
"id": "0d6ce974-c94d-41fa-878b-bfd56606fc66",
"username": "IOTA",
"email": null,
"mobile": null,
"subExt": {
"id": 2,
"dependent": true,
"enable": true,
"createdAt": "2017-04-19T06:13:27.535Z",
"updatedAt": "2017-04-19T06:13:27.535Z",
"parentId": "2de50bee-f007-47e5-810d-8949c00017c8",
"userId": "0d6ce974-c94d-41fa-878b-bfd56606fc66"
}
}
]
}
URL Parameters
参数 | 类型 | 必填 | 说明 | |
---|---|---|---|---|
userGroupId | string | 是 | 用户组id |
查询用户组未分配资源组
查询某个用户组中未分配的资源组。
HTTP Request
GET /v1/api/user_groups/:userGroupId/resource_groups/not_assigned
Request:
GET /v1/api/user_groups/118b9975-3253-44b1-acfd-f543c9d23a2a/resource_groups/not_assigned
Response:
{
"total": 1,
"resourceGroups": [
{
"id": "118f795f-d080-4dae-83ad-408a32ec4d89",
"name": "theIOTA",
"desc": "theIOTA",
"createBy": "2de50bee-f007-47e5-810d-8949c00017c8",
"createdAt": "2017-04-19T06:24:01.995Z",
"updatedAt": "2017-04-19T06:31:17.685Z",
"resources": [
{
"id": "50ff1437-1e4f-4eda-b759-1bbb3da5748e",
"name": "Modbus",
"desc": "Modbus是由Modicon(现为施耐德电气公司的一个品牌)在1979年发明的,是全球第一个真正用于工业现场的总线协议。",
"type": "Protocol",
"key": "551f91d9-553b-42d2-9496-dfb1d928642c",
"createBy": "2de50bee-f007-47e5-810d-8949c00017c8",
"createdAt": "2017-04-19T06:24:02.010Z",
"updatedAt": "2017-04-19T06:24:02.010Z",
"resourceGroupId": "118f795f-d080-4dae-83ad-408a32ec4d89"
}
]
}
]
}
URL Parameters
参数 | 类型 | 必填 | 说明 | |
---|---|---|---|---|
userGroupId | string | 是 | 用户组id |
通过邮箱验证用户是否在用户组中
通过邮箱验证指定用户是否在指定用户组中。
HTTP Request
GET /v1/api/user_groups/:userGroupId/emails/verify
Request:
GET /v1/api/user_groups/118b9975-3253-44b1-acfd-f543c9d23a2a/emails/verify?email=iota@theiota.cn
URL Parameters
参数 | 类型 | 必填 | 说明 | |
---|---|---|---|---|
userGroupId | string | 是 | 用户组id |
Query Parameters
参数 | 类型 | 必填 | 说明 | |
---|---|---|---|---|
string | 是 | 用户邮箱 |
通过邮箱验证用户是否有效
通过邮箱验证指定用户是否在指定用户组中。
HTTP Request
GET /v1/api/user_groups/emails/verify
Request:
GET /v1/api/user_groups/emails/verify?email=iota@theiota.cn
Query Parameters
参数 | 类型 | 必填 | 说明 | |
---|---|---|---|---|
string | 是 | 用户邮箱 |
新增用户组内用户
向指定用户组内添加用户。
HTTP Request
POST /v1/api/user_groups/:userGroupId/users
Request:
POST /v1/api/user_groups/15599e21-166b-4e65-b022-31c8dcba9d1e/users
body {
"users": [{
"type": "Sub",
"key": "0d6ce974-c94d-41fa-878b-bfd56606fc66"
},
{
"type": "Invited",
"key": "IOTA@theiota.cn"
}]
}
Response:
[
{
"type": "Sub",
"key": "0d6ce974-c94d-41fa-878b-bfd56606fc66",
"userId": "0d6ce974-c94d-41fa-878b-bfd56606fc66",
"username": "IOTA",
"email": null,
"enable": true,
"id": "08c4dce8-3139-4c8b-bd40-ca2e57c92449",
"createdAt": "2017-04-19T08:37:04.948Z"
},
{
"type": "Invited",
"key": "IOTA@theiota.cn",
"userId": "35d4da11e2589bf03821ec777ddfe53761fa9b66",
"username": "",
"email": "IOTA@theiota.cn",
"garavatar": null,
"enable": true,
"id": "88261264-f505-4ca1-9617-89c03935ed86",
"createdAt": "2017-04-19T08:37:04.955Z",
"accept": false
}
]
URL Parameters
参数 | 类型 | 必填 | 说明 | |
---|---|---|---|---|
userGroupId | string | 是 | 用户组id |
Body Parameters
参数 | 类型 | 必填 | 说明 | |
---|---|---|---|---|
users | array of object | 是 | 添加的用户 | |
type | enum | 是 | 添加的用户类型 Sub/Invited | |
key | string | 是 | 添加的用户的key值 |
删除用户组内用户
删除指定用户组内的用户。
HTTP Request
DELETE /v1/api/user_groups/:userGroupId/users
Request:
DELETE /v1/api/user_groups/15599e21-166b-4e65-b022-31c8dcba9d1e/users
body {
"ids":[
"15599e21-166b-4e65-b022-31c8dcba9d1e",
"ae3b28f3-3945-4g24-a3ae-24e8e3ef10i8"
]
}
URL Parameters
参数 | 类型 | 必填 | 说明 | |
---|---|---|---|---|
userGroupId | string | 是 | 用户组id |
Body Parameters
参数 | 类型 | 必填 | 说明 | |
---|---|---|---|---|
ids | array | 否 | 用户组内用户id |
启用组内用户
启用指定用户组内用户。
HTTP Request
POST /v1/api/user_groups/:userGroupId/users/enable
Request:
POST /v1/api/user_groups/15599e21-166b-4e65-b022-31c8dcba9d1/users/enable
body {
"ids":[
"15599e21-166b-4e65-b022-31c8dcba9d1e",
"ae3b28f3-3945-4g24-a3ae-24e8e3ef10i8"
]
}
URL Parameters
参数 | 类型 | 必填 | 说明 | |
---|---|---|---|---|
userGroupId | string | 是 | 用户组id |
Body Parameters
参数 | 类型 | 必填 | 说明 | |
---|---|---|---|---|
ids | 否 | 用户组内用户id |
禁用子用户
禁用指定用户组内用户。
HTTP Request
POST /v1/api/user_groups/:userGroupId/users/disable
Request:
POST /v1/api/user_groups/15599e21-166b-4e65-b022-31c8dcba9d1/users/disable
body {
"ids":[
"15599e21-166b-4e65-b022-31c8dcba9d1e",
"ae3b28f3-3945-4g24-a3ae-24e8e3ef10i8"
]
}
URL Parameters
参数 | 类型 | 必填 | 说明 | |
---|---|---|---|---|
userGroupId | string | 是 | 用户组id |
Body Parameters
参数 | 类型 | 必填 | 说明 | |
---|---|---|---|---|
ids | array | 否 | 用户组内用户id |
接受用户组邀请
用户通过来自其他用户的邀请加入某个用户组的邀请。
HTTP Request
GET /v1/api/user_groups/:userGroupId/invite_users/accept
Request:
GET /v1/api/user_groups/15599e21-166b-4e65-b022-31c8dcba9d1/users/accept?query=a0cfbac2-7679-41bb-ac53-e333fe93568d
Query Parameters
参数 | 类型 | 必填 | 说明 | |
---|---|---|---|---|
code | string | 是 | 邀请密码 |
授权
创建授权信息
将用户组,角色,资源组绑定并授权。
HTTP Request
POST /v1/api/authorizations
Request:
POST /v1/api/authorizations
body {
"userGroupId": "15599e21-166b-4e65-b022-31c8dcba9d1e",
"resourceGroupId": "118f795f-d080-4dae-83ad-408a32ec4d89",
"roleId": "76696d3d-e327-432c-8622-7b23bde28aca"
}
Response:
{
"userGroupId": "15599e21-166b-4e65-b022-31c8dcba9d1e",
"resourceGroupId": "118f795f-d080-4dae-83ad-408a32ec4d89",
"roleId": "76696d3d-e327-432c-8622-7b23bde28aca",
"createBy": "2de50bee-f007-47e5-810d-8949c00017c8",
"id": "ff5606e8-1b8e-4677-943e-6efc7076a684",
"createdAt": "2017-04-19T09:39:33.730Z"
}
Body Parameters
参数 | 类型 | 必填 | 说明 | |
---|---|---|---|---|
userGroupId | string | 是 | 用户组id | |
resourceGroupId | string | 是 | 资源组id | |
roleId | string | 是 | 角色id |
删除授权信息
删除已创建的授权信息。
HTTP Request
DELETE /v1/api/authorizations/
Request:
DELETE /v1/api/authorizations/ff5606e8-1b8e-4677-943e-6efc7076a684
body {
"ids":[
"ff5606e8-1b8e-4677-943e-6efc7076a684",
"ae3b28f3-3945-4g24-a3ae-24e8e3ef10i8"
]
}
Body Parameters
参数 | 类型 | 必填 | 说明 | |
---|---|---|---|---|
ids | array | 否 | 授权信息id |
应用管理
开发者通过应用管理来管理所开发应用所需的App Id/App Secret。
查询所有应用
查询开发者定义的所有应用,获取App Id/App Secret。
HTTP Request
GET /v1/api/oauth2/apps
Request
GET /v1/api/oauth2/apps
Response
{
"total": 3,
"applications": [{
"id": "aabc7693-d2e9-4e83-82ff-fb9c1caefe4c",
"name": "Application-App1",
"key": "301175cba07576e04c0fde4d0b22c11892e7e6f1",
"secret": "e8389b25439a54a6f2b9dce2826f594a65ee6c87",
"platform": "Application",
"extInfo": null,
"createdAt": "2017-04-19T07:01:04.612Z",
"updatedAt": "2017-04-19T07:01:04.612Z",
"userId": "1eb8ccbc-e03c-4906-ba28-baa1ac67027d"
}, {
"id": "cbd51d80-fe74-4896-8e10-eeb556a922d6",
"name": "Android-App2",
"key": "5a200ab5190cc3ba1516a1ca25b14e15cb221c05",
"secret": "42bbee5ff8d359013fc31b4146c4f64d8bc8e4d5",
"platform": "Android",
"extInfo": null,
"createdAt": "2017-04-19T07:01:04.628Z",
"updatedAt": "2017-04-19T07:01:04.628Z",
"userId": "1eb8ccbc-e03c-4906-ba28-baa1ac67027d"
}, {
"id": "3371c7fd-7282-42f6-bea6-a6b902565b16",
"name": "iOS-App2",
"key": "b6a8106f551ca481fb8ca62dd1a5938a6b7a8103",
"secret": "ded5419090aa5d2e123bd05a72b445363dfbddc0",
"platform": "iOS",
"extInfo": null,
"createdAt": "2017-04-19T07:01:04.640Z",
"updatedAt": "2017-04-19T07:01:04.640Z",
"userId": "1eb8ccbc-e03c-4906-ba28-baa1ac67027d"
}]
}
查询指定应用
查询指定的应用以获取 App Id/ App Secret。
HTTP Request
GET /v1/api/oauth2/apps/:id
Request
GET /v1/api/oath2/apps/GET /v1/api/oauth2/apps/:idaabc7693-d2e9-4e83-82ff-fb9c1caefe4
Response
{
"id": "aabc7693-d2e9-4e83-82ff-fb9c1caefe4c",
"name": "Application-App1",
"key": "301175cba07576e04c0fde4d0b22c11892e7e6f1",
"secret": "e8389b25439a54a6f2b9dce2826f594a65ee6c87",
"platform": "Application",
"extInfo": null,
"createdAt": "2017-04-19T07:01:04.612Z",
"updatedAt": "2017-04-19T07:01:04.612Z",
"userId": "1eb8ccbc-e03c-4906-ba28-baa1ac67027d"
}
URL Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
id | string | 是 | App Id |
创建应用
创建新的应用。
HTTP Request
POST /v1/api/oauth2/apps
Request
POST /v1/api/oauth2/apps
body {
"name": "Web",
"platform": "Web",
}
Response
{
"id": "a17b92af-7e84-4bba-b18a-7cf07130479f",
"key": "00837738250ffb99d383c77572a5c059b8ffae74",
"secret": "2ccc8124d00d8a67d31360881d6c43b534164fce",
"userId": "1eb8ccbc-e03c-4906-ba28-baa1ac67027d",
"name": "Web",
"platform": "Web",
"updatedAt": "2017-04-20T03:44:20.977Z",
"createdAt": "2017-04-20T03:44:20.977Z",
"extInfo": null
}
Body Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
name | string | 是 | 名称 |
platform | enum | 是 | 应用类型,Web/Android/Application/iOS |
删除应用
删除指定的应用。
HTTP Request
DELETE /v1/api/oauth2/apps/:id
Request
DELETE /v1/api/oauth2/apps/a17b92af-7e84-4bba-b18a-7cf07130479
URL Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
id | string | 是 | 应用Id |
账户管理
账户信息
查询当前账户信息
查询当前用户的账户信息
HTTP Request
GET /v1/api/accounts/finance
Request
GET /v1/api/accounts/finance
Response
{
"id": "912cccc5-29ad-4c1d-8071-2417b7c4cf4e",
"accountName": "admin",
"balance": 6000,
"totalFee": 0,
"serviceInfo": null
}
个人认证
查询个人认证信息
查询当前用户的个人认证信息。
HTTP Request
GET /v1/api/accounts/certifications/person
Request
GET /v1/api/accounts/certifications/person
Response
{
"id": "d673cc1b-67ad-4c3a-a232-0ad4fd6675c5",
"name": "张三",
"cardId": "429005199303197130",
"frontImg": "/upload/personcert/upload_cfce57316e85d700ed6214a0cba0e81c.png",
"reverseImg": "/upload/personcert/upload_554651075cf88363183723b7c26f35b7.png",
"status": "authenticating",
"createdAt": "2017-04-19T07:39:02.285Z",
"updatedAt": "2017-04-19T07:39:02.285Z",
"userId": "26b087ce-8b28-449e-80d9-986f78e734fa"
}
创建个人认证信息
当前用户创建认证信息
HTTP Request
POST /v1/api/accounts/certifications/person
Request
POST /v1/api/accounts/certifications/person
body {
"name": "张三",
"cardId": "429005199303197130",
"frontImg": "/upload/personcert/upload_cfce57316e85d700ed6214a0cba0e81c.png",
"reverseImg": "/upload/personcert/upload_554651075cf88363183723b7c26f35b7.png"
}
Response
{
"id": "d673cc1b-67ad-4c3a-a232-0ad4fd6675c5",
"name": "张三",
"cardId": "429005199303197130",
"frontImg": "/upload/personcert/upload_cfce57316e85d700ed6214a0cba0e81c.png",
"reverseImg": "/upload/personcert/upload_554651075cf88363183723b7c26f35b7.png",
"status": "authenticating",
"createdAt": "2017-04-19T07:39:02.285Z",
"updatedAt": "2017-04-19T07:39:02.285Z",
"userId": "26b087ce-8b28-449e-80d9-986f78e734fa"
}
Body Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
name | string | 是 | 用户姓名 |
cardId | string | 是 | 用户身份证号 |
frontImg | string | 是 | 身份证正面照(上传的图片地址) |
reverseImg | string | 是 | 身份证反面照(上传的图片地址) |
修改个人认证信息
当前用户认证信息提交后,经审核后不通过的前提下,可以修改个人认证信息。
HTTP Request
PUT /v1/api/accounts/certifications/person
Request
PUT /v1/api/accounts/certifications/person
body {
"name": "李四",
"cardId": "429005199303197111",
"frontImg": "/upload/personcert/upload_cfce57316e85d700ed6214a0cba0e81c.png",
"reverseImg": "/upload/personcert/upload_554651075cf88363183723b7c26f35b7.png"
}
Body Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
name | string | 否 | 用户姓名 |
cardId | string | 否 | 用户身份证号 |
frontImg | string | 否 | 身份证正面照(上传的图片地址) |
reverseImg | string | 否 | 身份证反面照(上传的图片地址) |
企业认证
查询企业认证信息
查询当前用户的企业认证信息。
HTTP Request
GET /v1/api/accounts/certifications/company
Request
GET /v1/api/accounts/certifications/company
Response
{
"id": "17349e46-ece8-4565-95c5-137457a9a698",
"type": "company",
"name": "张三的公司",
"licenseId": "111111",
"licenseImg": "/upload/companycert/upload_3c5b493fe3f5c6e30ad1bfcd74c969a7.png",
"status": "authenticating",
"adminName": "张三",
"cardId": "429015199603197111",
"frontImg": "/upload/companycert/upload_2b3bf955d79ae1a05efa9f529ee2d77f.png",
"reverseImg": "/upload/companycert/upload_4cabaf22034fa3f570dd4029e9623bd1.png",
"reason": null,
"contacts": null,
"address": null,
"mobile": null,
"email": null,
"desc": null,
"createdAt": "2017-04-19T08:23:01.304Z",
"updatedAt": "2017-04-19T08:23:01.304Z",
"userId": "655d7ac5-5b32-4ca1-82b2-a95bdf69bcef"
}
创建企业认证信息
当前用户提交企业认证信息。
HTTP Request
POST /v1/api/accounts/certifications/company
Request
POST /v1/api/accounts/certifications/company
body {
"type": "company",
"name": "张三的公司",
"licenseId": "111111",
"licenseImg": "/upload/companycert/upload_3c5b493fe3f5c6e30ad1bfcd74c969a7.png",
"adminName": "张三",
"cardId": "429015199603197111",
"frontImg": "/upload/companycert/upload_2b3bf955d79ae1a05efa9f529ee2d77f.png",
"reverseImg": "/upload/companycert/upload_4cabaf22034fa3f570dd4029e9623bd1.png"
}
Response
{
"id": "f9f50683-f207-48d7-a3bb-64f738b3305d",
"status": "authenticating",
"userId": "9623656f-e25b-4055-bc3c-3e3c8da48c5e",
"type": "company",
"name": "张三的公司",
"licenseId": "111111",
"licenseImg": "/upload/companycert/upload_3c5b493fe3f5c6e30ad1bfcd74c969a7.png",
"adminName": "张三",
"cardId": "429015199603197111",
"frontImg": "/upload/companycert/upload_2b3bf955d79ae1a05efa9f529ee2d77f.png",
"reverseImg": "/upload/companycert/upload_4cabaf22034fa3f570dd4029e9623bd1.png",
"updatedAt": "2017-04-19T08:45:18.225Z",
"createdAt": "2017-04-19T08:45:18.225Z",
"reason": null,
"contacts": null,
"address": null,
"mobile": null,
"email": null,
"desc": null
}
Body Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
type | string | 是 | 组织类型(企业company or 组织organization) |
name | string | 是 | 企业名称 |
licenseId | string | 是 | 企业执照注册号(上传的图片地址) |
licenseImg | string | 是 | 营业执照扫描件(上传的图片地址) |
adminName | string | 是 | 真实姓名 |
cardId | string | 是 | 身份证号 |
frontImg | string | 是 | 身份证正面照(上传的图片地址) |
reverseImg | string | 是 | 身份证反面照(上传的图片地址) |
修改企业认证信息
当前用户认证信息提交后,经审核不通过的前提下,可以修改企业认证信息。
HTTP Request
PUT /v1/api/accounts/certifications/company
Request
PUT /v1/api/accounts/certifications/company
body {
"adminName": "李四"
}
Body Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
type | string | 否 | 组织类型(企业company or 组织organization) |
name | string | 否 | 企业名称 |
licenseId | string | 否 | 企业执照注册号(上传的图片地址) |
licenseImg | string | 否 | 营业执照扫描件(上传的图片地址) |
adminName | string | 否 | 真实姓名 |
cardId | string | 否 | 身份证号 |
frontImg | string | 否 | 身份证正面照(上传的图片地址) |
reverseImg | string | 否 | 身份证反面照(上传的图片地址) |
修改企业公开信息
当前用户企业认证成功后,可以修改企业的公开信息
HTTP Request
PUT /v1/api/accounts/certifications/company/profile
Request
PUT /v1/api/accounts/certifications/company/profile
body {
"contacts": "张三",
"address": "南京",
"mobile": "15111111111",
"email": "11@qq.com",
"desc": "互联网公司",
}
Body Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
contacts | string | 否 | 联系人 |
address | string | 否 | 地址 |
mobile | string | 否 | 联系电话 |
string | 否 | 邮箱 | |
desc | string | 否 | 描述 |
服务包管理
查询产品服务包
查询所有的产品服务包
HTTP Request
GET /v1/api/services/packages
Request
GET /v1/api/services/packages
Response
{
"services": [
{
"id": "ff931272-68a6-486f-a67e-09b0f65738b3",
"name": "免费版",
"serviceType": "FREE",
"desc": "描述你能干什么",
"specification": {
"resources": {
"thing": {
"viewType": 1,
"available": true,
"name": "创建Thing",
"desc": "",
"quota": 1,
"unit": "个",
"extend": ""
},
"device": {
"viewType": 1,
"available": true,
"name": "创建设备",
"desc": "您可以创建多少个设备",
"quota": 1,
"unit": "个",
"extend": ""
},
"protocol": {
"viewType": 1,
"available": true,
"name": "创建协议",
"desc": "您可以创建多少条协议",
"quota": 1,
"unit": "条",
"extend": ""
},
"interface": {
"viewType": 1,
"available": true,
"name": "创建接口",
"desc": "您可以创建多少个接口",
"quota": 1,
"unit": "个",
"extend": ""
}
},
"server": {
"s1": {
"viewType": 1,
"available": true,
"name": "工单响应",
"desc": "",
"quota": 24,
"unit": "小时",
"extend": "内"
},
"s2": {
"viewType": 2,
"available": false,
"name": "一对一技术支持",
"desc": ""
},
"s3": {
"viewType": 2,
"available": false,
"name": "一对一客户服务"
},
"s4": {
"viewType": 2,
"available": false,
"name": "支付系统技术指导"
}
}
},
"price": 0,
"createdAt": "2017-04-19T06:35:35.576Z",
"updatedAt": "2017-04-19T06:35:35.576Z"
},
{
"id": "a54de31b-2122-4934-b673-3e97be59e93b",
"name": "基础版",
"serviceType": "BASIC",
"desc": "描述服务包B能干什么",
"specification": {
"resources": {
"thing": {
"viewType": 1,
"available": true,
"name": "创建Thing",
"desc": "",
"quota": 5,
"unit": "个",
"extend": ""
},
"device": {
"viewType": 1,
"available": true,
"name": "创建设备",
"desc": "您可以创建多少个设备",
"quota": 10,
"unit": "个",
"extend": ""
},
"protocol": {
"viewType": 1,
"available": true,
"name": "创建协议",
"desc": "您可以创建多少条协议",
"quota": 10,
"unit": "条",
"extend": ""
},
"interface": {
"viewType": 1,
"available": true,
"name": "创建接口",
"desc": "您可以创建多少个接口",
"quota": 10,
"unit": "个",
"extend": ""
}
},
"server": {
"s1": {
"viewType": 1,
"available": true,
"name": "工单响应",
"desc": "",
"quota": 24,
"unit": "小时",
"extend": "内"
},
"s2": {
"viewType": 2,
"available": false,
"name": "一对一技术支持",
"desc": ""
},
"s3": {
"viewType": 2,
"available": false,
"name": "一对一客户服务"
},
"s4": {
"viewType": 2,
"available": false,
"name": "支付系统技术指导"
}
}
},
"price": 0.01,
"createdAt": "2017-04-19T06:35:35.576Z",
"updatedAt": "2017-04-19T06:35:35.576Z"
},
{
"id": "fa104288-ac73-468b-b68a-928717f5b754",
"name": "专业版",
"serviceType": "PROFESSIONAL",
"desc": "描述服务包C能干什么",
"specification": {
"resources": {
"thing": {
"viewType": 1,
"available": true,
"name": "创建Thing",
"desc": "",
"quota": 10,
"unit": "个",
"extend": ""
},
"device": {
"viewType": 1,
"available": true,
"name": "创建设备",
"desc": "您可以创建多少个设备",
"quota": 20,
"unit": "个",
"extend": ""
},
"protocol": {
"viewType": 1,
"available": true,
"name": "创建协议",
"desc": "您可以创建多少条协议",
"quota": 40,
"unit": "条",
"extend": ""
},
"interface": {
"viewType": 1,
"available": true,
"name": "创建接口",
"desc": "您可以创建多少个接口",
"quota": 40,
"unit": "个",
"extend": ""
}
},
"server": {
"s1": {
"viewType": 1,
"available": true,
"name": "工单响应",
"desc": "",
"quota": 60,
"unit": "分钟",
"extend": "内"
},
"s2": {
"viewType": 2,
"available": true,
"name": "5×10技术支持",
"desc": ""
},
"s3": {
"viewType": 2,
"available": true,
"name": "5×10客户服务"
},
"s4": {
"viewType": 2,
"available": true,
"name": "支付系统技术指导"
}
}
},
"price": 0.01,
"createdAt": "2017-04-19T06:35:35.598Z",
"updatedAt": "2017-04-19T06:35:35.598Z"
},
{
"id": "f76245a5-53a7-41f7-b372-245490dcca7e",
"name": "企业版",
"serviceType": "CUSTOMIZED",
"desc": "描述服务包D能干什么",
"specification": {
"resources": {
"thing": {
"viewType": 1,
"available": true,
"name": "创建Thing",
"desc": "",
"quota": 20,
"unit": "个",
"extend": ""
},
"device": {
"viewType": 1,
"available": true,
"name": "创建设备",
"desc": "您可以创建多少个设备",
"quota": 40,
"unit": "个",
"extend": ""
},
"protocol": {
"viewType": 1,
"available": true,
"name": "创建协议",
"desc": "您可以创建多少条协议",
"quota": 80,
"unit": "条",
"extend": ""
},
"interface": {
"viewType": 1,
"available": true,
"name": "创建接口",
"desc": "您可以创建多少个接口",
"quota": 80,
"unit": "个",
"extend": ""
}
},
"server": {
"s1": {
"viewType": 1,
"available": true,
"name": "工单响应",
"desc": "",
"quota": 15,
"unit": "分钟",
"extend": "内"
},
"s2": {
"viewType": 2,
"available": true,
"name": "7×10技术支持",
"desc": ""
},
"s3": {
"viewType": 2,
"available": true,
"name": "7×10客户服务"
},
"s4": {
"viewType": 2,
"available": true,
"name": "支付系统技术指导"
}
}
},
"price": 0.01,
"createdAt": "2017-04-19T06:35:35.598Z",
"updatedAt": "2017-04-19T06:35:35.598Z"
}
]
}
查询指定产品服务包
查询指定id的产品服务包
HTTP Request
GET /v1/api/services/packages/:id
Request
GET /v1/api/services/packages/f76245a5-53a7-41f7-b372-245490dcca7e
Response
{
"id": "f76245a5-53a7-41f7-b372-245490dcca7e",
"name": "企业版",
"serviceType": "CUSTOMIZED",
"desc": "描述服务包D能干什么",
"specification": {
"resources": {
"thing": {
"viewType": 1,
"available": true,
"name": "创建Thing",
"desc": "",
"quota": 20,
"unit": "个",
"extend": ""
},
"device": {
"viewType": 1,
"available": true,
"name": "创建设备",
"desc": "您可以创建多少个设备",
"quota": 40,
"unit": "个",
"extend": ""
},
"protocol": {
"viewType": 1,
"available": true,
"name": "创建协议",
"desc": "您可以创建多少条协议",
"quota": 80,
"unit": "条",
"extend": ""
},
"interface": {
"viewType": 1,
"available": true,
"name": "创建接口",
"desc": "您可以创建多少个接口",
"quota": 80,
"unit": "个",
"extend": ""
}
},
"server": {
"s1": {
"viewType": 1,
"available": true,
"name": "工单响应",
"desc": "",
"quota": 15,
"unit": "分钟",
"extend": "内"
},
"s2": {
"viewType": 2,
"available": true,
"name": "7×10技术支持",
"desc": ""
},
"s3": {
"viewType": 2,
"available": true,
"name": "7×10客户服务"
},
"s4": {
"viewType": 2,
"available": true,
"name": "支付系统技术指导"
}
}
},
"price": 0.01,
"createdAt": "2017-04-19T06:35:35.598Z",
"updatedAt": "2017-04-19T06:35:35.598Z"
}
URL Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
id | string | 是 | 产品服务包的id |
查询用户的服务包
查询当前用户的服务包,包括账户余额、服务包类型、未使用的配额
HTTP Request
GET /v1/api/accounts/services
Request
GET /v1/api/accounts/services
Response
{
"id": "3a36c424-e5f5-4e68-8299-3051f60d36b7",
"balance": 6000,
"createdAt": "2017-04-19T09:29:21.121Z",
"updatedAt": "2017-04-19T09:29:21.121Z",
"userId": "be98bcd2-5468-4299-a3f8-b8f83a348318",
"service": {
"id": "9af2f6e0-c182-448a-9692-13bc70323def",
"name": "企业版",
"price": 0.01,
"specification": {
"resources": {
"thing": {
"viewType": 1,
"available": true,
"name": "创建Thing",
"desc": "",
"quota": 20,
"unit": "个",
"extend": ""
},
"device": {
"viewType": 1,
"available": true,
"name": "创建设备",
"desc": "您可以创建多少个设备",
"quota": 40,
"unit": "个",
"extend": ""
},
"protocol": {
"viewType": 1,
"available": true,
"name": "创建协议",
"desc": "您可以创建多少条协议",
"quota": 80,
"unit": "条",
"extend": ""
},
"interface": {
"viewType": 1,
"available": true,
"name": "创建接口",
"desc": "您可以创建多少个接口",
"quota": 80,
"unit": "个",
"extend": ""
}
},
"server": {
"s1": {
"viewType": 1,
"available": true,
"name": "工单响应",
"desc": "",
"quota": 15,
"unit": "分钟",
"extend": "内"
},
"s2": {
"viewType": 2,
"available": true,
"name": "7×10技术支持",
"desc": ""
},
"s3": {
"viewType": 2,
"available": true,
"name": "7×10客户服务"
},
"s4": {
"viewType": 2,
"available": true,
"name": "支付系统技术指导"
}
}
},
"initialSpecification": {
"resources": {
"thing": {
"viewType": 1,
"available": true,
"name": "创建Thing",
"desc": "",
"quota": 20,
"unit": "个",
"extend": ""
},
"device": {
"viewType": 1,
"available": true,
"name": "创建设备",
"desc": "您可以创建多少个设备",
"quota": 40,
"unit": "个",
"extend": ""
},
"protocol": {
"viewType": 1,
"available": true,
"name": "创建协议",
"desc": "您可以创建多少条协议",
"quota": 80,
"unit": "条",
"extend": ""
},
"interface": {
"viewType": 1,
"available": true,
"name": "创建接口",
"desc": "您可以创建多少个接口",
"quota": 80,
"unit": "个",
"extend": ""
}
},
"server": {
"s1": {
"viewType": 1,
"available": true,
"name": "工单响应",
"desc": "",
"quota": 15,
"unit": "分钟",
"extend": "内"
},
"s2": {
"viewType": 2,
"available": true,
"name": "7×10技术支持",
"desc": ""
},
"s3": {
"viewType": 2,
"available": true,
"name": "7×10客户服务"
},
"s4": {
"viewType": 2,
"available": true,
"name": "支付系统技术指导"
}
}
},
"beginTime": "2017-02-02T00:00:00.000Z",
"endTime": "2018-02-01T00:00:00.000Z",
"createdAt": "2017-04-19T09:29:21.422Z",
"updatedAt": "2017-04-19T09:29:21.422Z",
"accountId": "3a36c424-e5f5-4e68-8299-3051f60d36b7",
"servicePackageId": "4197d736-97ca-4da7-9298-5a73e4cb2813"
}
}
订单管理
查询订单
查询该账户下的所有订单,支持条件查询,包括支付成功、未支付、支付失败的订单
HTTP Request
GET /v1/api/accounts/orders
Request
GET /v1/api/accounts/orders?limit=1
Response
{
"total": 5,
"orders": [
{
"id": "6b620be6-a0a7-4945-9fa7-45386f62a5af",
"out_trade_no": "201704189525693295",
"service_name": "基础版",
"fee": 0.01,
"oldBalance": 6050,
"newBalance": 6050,
"time_start": "2017-04-18 16:14:47",
"time_end": "2017-04-18 16:14:47",
"payChannel": "wechat",
"paymentState": "prepaid",
"transaction_id": "200000010203",
"bank_type": "ICBC",
"openid": "oUpF8uMEb4qRXf22hE3X68TekukE",
"standard": null,
"serviceStartTime": null,
"serviceEndTime": null,
"product_id": "12331432",
"createdAt": "2017-04-18T08:14:47.572Z",
"updatedAt": "2017-04-18T08:14:47.808Z",
"accountId": "cc51c58e-21ab-4b41-9b61-e5b8ce3de99d",
"servicePackageId": "da7c136d-5c19-4809-a321-41b138b2bfc9",
"accountServicePackageId": "f8f5a7d9-4ade-4ca5-a6ac-95a5c80856d9"
}
]
}
Query Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
state | enum | 否 | 根据支付状态查询订单,可选范围 ‘prepaid’, ‘failure’, ‘unpaid’ |
查询指定订单
查询指定id的单个订单
HTTP Request
GET /v1/api/accounts/orders/:id
GET /v1/api/accounts/orders/6b620be6-a0a7-4945-9fa7-45386f62a5af
Response
{
"id": "6b620be6-a0a7-4945-9fa7-45386f62a5af",
"out_trade_no": "201704189525693295",
"service_name": "基础版",
"fee": 0.01,
"oldBalance": 6050,
"newBalance": 6050,
"time_start": "2017-04-18 16:14:47",
"time_end": "2017-04-18 16:14:47",
"payChannel": "wechat",
"paymentState": "prepaid",
"transaction_id": "200000010203",
"bank_type": "ICBC",
"openid": "oUpF8uMEb4qRXf22hE3X68TekukE",
"standard": null,
"serviceStartTime": null,
"serviceEndTime": null,
"product_id": "12331432",
"createdAt": "2017-04-18T08:14:47.572Z",
"updatedAt": "2017-04-18T08:14:47.808Z",
"accountId": "cc51c58e-21ab-4b41-9b61-e5b8ce3de99d",
"servicePackageId": "da7c136d-5c19-4809-a321-41b138b2bfc9",
"accountServicePackageId": "f8f5a7d9-4ade-4ca5-a6ac-95a5c80856d9",
"service": null
}
URL Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
id | string | 是 | 订单的id |
创建订单
根据用户提交的信息生成订单
HTTP Request
POST /v1/api/accounts/orders
Request
POST /v1/api/accounts/orders
body {
"product_id": "123312312",
"type":"wechat",
"time_start": "2017-04-18 16:14:47",
"servicePackageId": "28668f26-90e2-4140-a022-31c3ea48f116"
}
Response
{
"result": {
"return_code": "SUCCESS",
"return_msg": "OK",
"appid": "wxd3d1d2131f2b1b43",
"mch_id": "1439034402",
"nonce_str": "TFiHb5kfvHG5588r",
"sign": "49F3DF719518A171A9D6FF64FCC34251",
"result_code": "SUCCESS",
"prepay_id": "wx20170418175057155b6139350783190753",
"trade_type": "NATIVE",
"code_url": "weixin://wxpay/bizpayurl?pr=Z2Fkx8U"
},
"order": {
"id": "15d0c7a2-9972-4eb0-adae-99c87ef2ed62",
"paymentState": "unpaid",
"out_trade_no": "201704188929088826",
"service_name": "专业版",
"fee": 0.01,
"oldBalance": 6000,
"newBalance": 6000,
"time_start": "2017-04-18 17:50:57",
"time_end": "2017-04-18 17:50:57",
"payChannel": "wechat",
"transaction_id": null,
"bank_type": null,
"openid": null,
"standard": null,
"serviceStartTime": null,
"serviceEndTime": null,
"servicePackageId": "28668f26-90e2-4140-a022-31c3ea48f116",
"product_id": "123312312",
"accountId": "309eaa81-558c-4243-b5d9-12d568e709bf",
"updatedAt": "2017-04-18T09:50:57.650Z",
"createdAt": "2017-04-18T09:50:57.650Z",
"accountServicePackageId": null
}
}
Body Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
type | string | 是 | 选择的支付方式 |
product_id | string | 当type为wechat时必填 | 商品id |
servicePackageId | string | 是 | 服务包的id |
subject | string | 当type为alipay时必填 | 商品名称 |
alibody | string | 当type为alipay时必填 | 商品描述 |
余额支付回调
选择余额支付时的回调
HTTP Request
PUT /v1/api/accounts/orders/balance_pay_callback
Request
PUT /v1/api/accounts/orders/balance_pay_callback
body {
"type":"balance",
"out_trade_no": "201704192435779724"
}
Response
{
"result": "SUCCESS"
}
Body Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
type | string | 是 | 选择的支付方式 |
out_trade_no | string | 是 | 订单编号 |
微信订单回调
微信平台调用该接口,请求中包含支付状态订单号等,该接口返回'success'或者'fail’
具体信息参考微信平台开发文档:https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=9_7
HTTP Request
POST /v1/api/accounts/orders/wechat_result_notify
支付宝订单回调
支付宝平台调用该接口,请求中包含支付状态订单号等,该接口返回'success'或者'fail’
具体信息参考支付宝平台开发文档:https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7629140.0.0.sBVbC0&treeId=62&articleId=104743&docType=1
HTTP Request
POST /v1/api/accounts/orders/alipay_result_notify
充值记录
查询充值记录
查询该账户下的所有充值记录,支持条件查询,包括支付成功、未支付、支付失败的订单
HTTP Request
GET /v1/api/accounts/recharges
Request
GET /v1/api/accounts/recharges?limit=1
Response
{
"total": 1,
"recharges": [
{
"id": "df1812a1-adcd-41ce-8d17-5820eb5e1f31",
"out_trade_no": "201704193502910043",
"fee": 0.01,
"oldBalance": 6000,
"newBalance": 6000,
"time_start": "2017-04-19 11:40:15",
"time_end": "2017-04-19 11:40:15",
"payChannel": "wechat",
"paymentState": "unpaid",
"transaction_id": null,
"bank_type": null,
"openid": null,
"product_id": "12331432",
"createdAt": "2017-04-19T03:40:15.965Z",
"updatedAt": "2017-04-19T03:40:15.965Z",
"accountId": "82daf871-330d-4cf4-bb33-1ccb6dbef611"
}
]
}
Query Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
state | enum | 否 | 根据支付状态查询订单,可选范围 ‘prepaid’, ‘failure’, ‘unpaid’ |
查询指定充值记录
查询指定id的单个充值记录
HTTP Request
GET /v1/api/accounts/recharges/:id
GET /v1/api/accounts/recharges/df1812a1-adcd-41ce-8d17-5820eb5e1f31
Response
{
"id": "df1812a1-adcd-41ce-8d17-5820eb5e1f31",
"out_trade_no": "201704193502910043",
"fee": 0.01,
"oldBalance": 6000,
"newBalance": 6000,
"time_start": "2017-04-19 11:40:15",
"time_end": "2017-04-19 11:40:15",
"payChannel": "wechat",
"paymentState": "unpaid",
"transaction_id": null,
"bank_type": null,
"openid": null,
"product_id": "12331432",
"createdAt": "2017-04-19T03:40:15.965Z",
"updatedAt": "2017-04-19T03:40:15.965Z",
"accountId": "82daf871-330d-4cf4-bb33-1ccb6dbef611"
}
URL Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
id | string | 是 | 充值记录的id |
充值
根据用户提交的信息生成充值订单.
HTTP Request
POST /v1/api/accounts/recharges
Request
POST /v1/api/accounts/recharges
body {
"type":"alipay",
"fee":"1"
}
Response
{
"url": "https://mapi.alipay.com/gateway.do?_input_charset=UTF-8&body=%E5%85%85%E5%80%BC%E5%88%B0%E4%B8%AA%E4%BA%BA%E8%B4%A6%E6%88%B7¬ify_url=http%3A%2F%2F139.196.197.39%3A56789%2Fv1%2Fapi%2Faccounts%2Fbalance%2Frecharge%2Falipay_result_notify&out_trade_no=201704195374266624&partner=2088421286728062&payment_type=1&return_url=http%3A%2F%2F139.196.197.39%3A56789%2Fconsole%2Faccount%2Frecharge_list&seller_email=liu.jiangang%40theiota.cn&service=create_direct_pay_by_user&subject=%E4%B8%AA%E4%BA%BA%E8%B4%A6%E6%88%B7%E5%85%85%E5%80%BC&total_fee=1&sign=62b6ccbfd7907d8dcab43f9e4b6ea244&sign_type=MD5",
"recharge": {
"id": "0c94cef1-45e6-4bd1-bf9f-8e2d51176102",
"paymentState": "unpaid",
"out_trade_no": "201704195374266624",
"fee": 100,
"oldBalance": 6050,
"newBalance": 6050,
"time_start": "2017-04-19 14:09:04",
"time_end": "2017-04-19 14:09:04",
"payChannel": "alipay",
"product_id": null,
"accountId": "b70ab03a-21c3-4052-a54d-4540799191ef",
"updatedAt": "2017-04-19T06:09:04.204Z",
"createdAt": "2017-04-19T06:09:04.204Z",
"transaction_id": null,
"bank_type": null,
"openid": null
}
}
Body Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
type | enum | 是 | “wechat"或者"alipay” |
product_id | string | 当type为wechat时必填 | 二维码中包含的商品的id |
fee | string | 是 | 充值的金额,单位:人民币元 |
微信充值回调
微信平台调用该接口,请求中包含充值状态、订单号等,该接口返回'success'或者'fail’
具体信息参考微信平台开发文档:https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=9_7
HTTP Request
POST /v1/api/accounts/recharges/wechat_result_notify
支付宝充值回调
支付宝平台调用该接口,请求中包含支付状态、订单号等,该接口返回'success'或者'fail’
具体信息参考支付宝平台开发文档:https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7629140.0.0.sBVbC0&treeId=62&articleId=104743&docType=1
HTTP Request
POST /v1/api/accounts/recharges/alipay_result_notify
用户注册
邮箱
激活邮箱
用户在收到的激活邮件中,激活邮箱
HTTP Request
GET /v1/api/accounts/email/active
Request:
GET /v1/api/accounts/email/active?id=054ee7d5-e986-48c0-88af-f82c0e6d4369
Query Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
id | string | 是 | 验证用户是否有权限激活邮箱的字段 |
发送激活邮箱邮件
发送激活邮箱的邮件
HTTP Request
POST /v1/api/accounts/email/active
Request:
POST /v1/api/accounts/email/active
body {
"email": "iota@theiota.cn"
}
Body Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
string | 是 | 待激活的邮箱账号 |
注册信息校验
获取验证码
获取验证码
HTTP Request
GET /v1/api/validations/codes
Request:
GET /v1/api/validations/codes
验证码校验
校验传入的验证码是否正确
HTTP Request
GET /v1/api/validations/codes/validate
Request:
GET /v1/api/validations/codes/validate?vcode=roynjp
Query Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
vcode | string | 是 | 验证码 |
邮箱校验
校验邮箱是否有效
HTTP Request
GET /v1/api/validations/emails/validate
Request:
GET /v1/api/validations/emails/validate?email=test@qq.com
Query Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
string | 是 | 邮箱 |
验证手机号
校验手机号是否有效
HTTP Request
GET /v1/api/validations/mobiles/validate
Request:
GET /v1/api/validations/mobiles/validate?mobile=13000000000
Query Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
mobile | string | 是 | 手机号 |
获取短信验证码
用户发送获取验证码请求后,会收到验证码的短信
HTTP Request
POST /v1/api/validations/smses
Request:
POST /v1/api/validations/smses
body {
"mobile":"13000000000"
}
Body Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
mobile | string | 是 | 用户的手机号码,可接受短信的手机号码 |
验证短信验证码
校验传入的手机验证码是否为有效验证码
HTTP Request
GET /v1/api/validations/smses/validate
Request:
GET /v1/api/validations/smses/validate?mobile=13011110000&captcha=123456
Query Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
mobile | string | 是 | 手机号 |
captcha | string | 是 | 手机短信验证码 |
验证用户名
校验传入的用户名是否有效
HTTP Request
GET /v1/api/validations/usernames/validate
Request:
GET /v1/api/validations/usernames/validate?username=kady
Query Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
username | string | 是 | 用户名 |
注册
注册用户。
HTTP Request
POST /v1/api/signup
Request
POST /v1/api/signup
Body Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
username | string | 是 | 用户名 |
string | 是 | 邮箱 | |
mobile | string | 是 | 手机。邮箱、手机至少填写一个 |
password | string | 是 | 密码 |
vcode | string | 是 | 校验码 |
登录
登录系统。
HTTP Request
POST /v1/api/signin
Request
POST /v1/api/signin
Body Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
username | string | 是 | 用户名 |
string | 是 | 邮箱 | |
mobile | string | 是 | 手机。用户名、邮箱、手机至少填写一个 |
password | string | 是 | 密码 |
退出
退出系统。
HTTP Request
POST /v1/api/signout
Request
POST /v1/api/signout
用户信息
发送重置密码邮件
用户忘记密码时,可以发送重置密码的邮件
HTTP Request
POST /v1/api/accounts/password/forget
Request:
POST /v1/api/accounts/password/forget
body {
"email": "iota@theiota.cn"
}
忘记密码
用户收到的重置密码邮件中,发起的回调请求
HTTP Request
GET /v1/api/accounts/password/forget
Request:
GET /v1/api/accounts/password/forget?id=dae2ff13-59e5-4d48-80c0-8a1504529aab
Query Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
id | string | 是 | 验证是否拥有修改密码权限的字段 |
重置密码
通过邮箱获取的到重置密码的权限后,允许设置新密码
HTTP Request
POST /v1/api/accounts/password/reset
Request:
POST /v1/api/accounts/password/reset
body {
"password": "111112",
"id": "505fe0bb-9887-4696-88b0-4a5467bcbd3b"
}
Body Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
password | string | 是 | 新密码 |
id | string | 是 | 验证是否拥有修改密码权限的字段 |
修改密码
用户登录系统后,可以修改密码
HTTP Request
POST /v1/api/accounts/password/change
Request:
POST /v1/api/accounts/password/change
body {
"old": "123456",
"new": "123456"
}
Body Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
old | string | 是 | 旧密码 |
new | string | 是 | 新密码 |
查询用户的信息
查询当前登录用户的信息
HTTP Request
GET /v1/api/accounts/profile
Request:
GET /v1/api/accounts/profile
Response:
{
"authed":true,
"user":{
"id":"5e008cb0-72a2-4179-87d2-5d9a6bde041a",
"username":"admin",
"email":"iota@theiota.cn",
"mobile":null,
"gravatar":null,
"actEmail":true,
"type":"Master",
"subExt":null
}
}
更新用户信息
当前登录的用户,修改自己的基本信息。例如:用户名、邮箱、手机号
HTTP Request
PUT /v1/api/accounts/profile
Request:
PUT /v1/api/accounts/profile
body {
"username": "admin",
"email": "iota@theiota.cn",
"actEmail": 0,
"mobile":"13012341234"
}
Body Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
username | string | 是 | 新用户名 |
string | 是 | 新邮箱 | |
mobile | string | 否 | 用户手机号,修改手机号,需要先行获取短信验证码 |
OAuth2
iOTA 支持通过 OAuth2 获得第三方应用授权方式访问 iOTA。
微信
扫描回调接口
开发者扫描 iOTA 呈现的二维码,确认授权时的回调接口。
回调结果
- 已绑定用户,自动登录
- 未绑定用户,跳转至登录并绑定页面,并且通过cookie设置必要的临时参数
- 回调失败,跳转至失败提示页面
HTTP Request
GET /v1/api/oauth2/third_parties/wechat
Request
GET /v1/api/oauth2/third_parties/wechat?code=0010dAnl1bytYj08RIjl1y5jnl10dAnu&state=f5bc0f65-e50d-4b48-ae70-ccc6c0aba845
Query Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
code | string | 是 | 微信授权临时票据 |
state | string | 是 | 用于保持请求和回调的状态,授权请求后原样带回给第三方。该参数可用于防止csrf攻击(跨站请求伪造攻击),iOTA 在扫码界面中生成并提交给微信,微信在回调时原样带回。 |
登录并绑定
开发者扫描二维码,如果未绑定过用户,跳转至登录并绑定页面,输入已经存在的用户名,密码登录,iOTA 将此用户与微信帐号绑定,后续可扫描自动登录。
HTTP Request
POST /v1/api/oauth2/third_parties/wechat/signin
Request
POST /v1/api/oauth2/third_parties/wechat/signin
body {
"username":"admin",
"password":"Iotatest1_"
}
Cookie
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
wxk | string | 是 | 用于获取缓存的微信用户信息 |
Body Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
username | string | 是 | 用户名 |
string | 是 | 邮箱 | |
mobile | string | 是 | 手机 以上三个至少填写一个 |
password | string | 是 | 密码 |
注册并绑定
开发者扫描二维码,如果未绑定过用户,跳转至登录并绑定页面,开发者可选择注册新用户,iOTA 将此用户与微信帐号绑定,后续可扫描自动登录。
HTTP Request
POST /v1/api/oauth2/third_parties/wechat/signup
Request
POST /v1/api/oauth2/third_parties/wechat/signup
body {
"username":"admin",
"password":"Iotatest1_",
"email":"admin@theiota.cn"
}
Cookie
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
wxk | string | 是 | 用于获取缓存的微信用户信息 |
Body Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
username | string | 是 | 用户名 |
string | 是 | 邮箱 | |
mobile | string | 是 | 手机 以上两个至少填写一个 |
password | string | 是 | 密码 |
vcode | string | 是 | 校验码 |
查询当前用户微信绑定状态
查询当前用户是否已经绑定用户。
HTTP Request
GET /v1/api/accounts/wechat/binding/status
Request
GET /v1/api/accounts/wechat/binding/status
Response
{
"binding": false
}
当前用户微信绑定
为微信扫码后的回调接口,与前面的区别是对当前登录用户的操作。
HTTP Request
GET /v1/api/accounts/wechat/binding
Request
GET /v1/api/accounts/wechat/binding?code=0010dAnl1bytYj08RIjl1y5jnl10dAnu&state=f5bc0f65-e50d-4b48-ae70-ccc6c0aba845
Query Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
code | string | 是 | 微信授权临时票据 |
state | string | 是 | 用于保持请求和回调的状态,授权请求后原样带回给第三方。该参数可用于防止csrf攻击(跨站请求伪造攻击),iOTA 在扫码界面中生成并提交给微信,微信在回调时原样带回。 |
回调结果
- 绑定成功,提示绑定成功,更新状态
- 绑定失败,提示失败原因:
- 微信已经绑定其他用户
- 微信已经绑定其他用户
当前用户解除微信绑定
解除当前用户的微信绑定信息。
HTTP Request
POST /v1/api/accounts/wechat/unbind
Request
POST /v1/api/accounts/wechat/unbind
附件
附件上传
上传图片
上传图片成功后返回服务器图片路径。
HTTP Request
POST /v1/api/attachment/:p?
Request
POST /v1/api/attachment/test
body form-data
Response
{
"uploaded": "/upload/test/upload_aa981697dd863ef7e567bac063c87c57.png"
}
URL Parameters
参数 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
p | string | other | 否 | 图片存放的文件夹 |
修改指定图片
更替服务器图片路径相应的图片资源。
HTTP Request
PUT /v1/api/attachment
Request
PUT /v1/api/attachment?src=/upload/test/upload_aa981697dd863ef7e567bac063c87c57.png
body form-data
Response
{
"uploaded": "/upload/test/upload_bb981697ddasdasdwqe21dfas063c87c57.png"
}
Query Parameters
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
src | string | 是 | 图片地址 |