跳到主要内容

REST API

概述

Rest API

返回值接口规范

名称位置类型说明
request_idbodystring请求唯一标识符id
statusbodystring请求是否成功Success/Failed
error_codebodystring异常码,status为Failed时存在
error_messagebodystring异常消息,status为Failed时存在
detail_messagebodystring详细异常信息,status为Failed时可能存在
databodyobject返回结果数据,一般在status为Success时存在

登录认证

POST 令牌刷新

POST /oauth2/token

请求参数

名称位置类型必选说明
bodybodyobjectnone
» refresh_tokenbodystringnone
» grant_typebodystringnone
» client_idbodystringnone
» client_secretbodystringnone
» usernamebodystringnone
» passwordbodystringnone

Body 请求参数

refresh_token: string
grant_type: password
client_id: iab
client_secret: milesight*iab
username: string
password: string

返回结果

状态码状态码含义说明数据模型
200OK成功Inline

返回示例

200 Response

{
"access_token": "string",
"expires_in": 0,
"refresh_token:":"string"
}

POST 用户注册

POST /user/register

请求参数

名称位置类型必选说明
bodybodyobjectnone
» emailbodystringnone
» nicknamebodystringnone
» passwordbodystringnone

Body 请求参数

{
"email": "string",
"nickname": "string",
"password": "string"
}

返回结果

状态码状态码含义说明数据模型
200OK成功Inline

返回示例

200 Response

{}

GET 获取用户信息

GET /user

返回结果

状态码状态码含义说明数据模型
200OK成功Inline

返回示例 200 Response

{
"data": {
"tenant_id": "string",
"user_id": "string",
"nickname": "string",
"email": "string",
"create_at": "string",
"roles": [{
"role_id": "string",
"role_name": "string"
}]
}
}

GET 获取用户状态信息

GET /user/status

返回结果

状态码状态码含义说明数据模型
200OK成功Inline

返回示例

200 Response

{
"data": {
"init": true
}
}

GET 获取用户列表(分页)

GET /user/users

请求参数

名称位置类型必选说明
bodybodyObjectnone
» keywordbodystring模糊匹配nickname或email

Body 请求参数

{
"keyword": "string"
}

返回结果

状态码状态码含义说明数据模型
200OK成功Inline

返回示例 200 Response

{
"data": {
"tenant_id": "string",
"user_id": "string",
"nickname": "string",
"email": "string",
"create_at": "string",
"roles": [{
"role_id": "string",
"role_name": "string"
}]
}
}

POST 创建用户

POST /user

请求参数

名称位置类型必选说明
bodybodyobjectnone
» emailbodystringnone
» nicknamebodystringnone
» passwordbodystringnone

Body 请求参数

{
"email": "string",
"nickname": "string",
"password": "string"
}

返回结果

状态码状态码含义说明数据模型
200OK成功Inline

返回示例

200 Response

{}

POST 修改用户信息

PUT /user/{userId}

请求参数

名称位置类型必选说明
userIdpathstringnone
bodybodyobjectnone
» emailbodystringnone
» nicknamebodystringnone
» passwordbodystringnone

Body 请求参数

{
"email": "string",
"nickname": "string",
"password": "string"
}

返回结果

状态码状态码含义说明数据模型
200OK成功Inline

返回示例

200 Response

{}

DELETE 删除用户

DELETE /user/{user_id}

请求参数

名称位置类型必选说明
user_idpathstringnone

返回结果

状态码状态码含义说明数据模型
200OK成功Object

返回示例

成功

{
"data":{

}
}

POST 修改密码(自己)

PUT /user/password

请求参数

名称位置类型必选说明
bodybodyobjectnone
» old_passwordbodystringnone
» new_passwordbodystringnone

Body 请求参数

{
"old_password": "string",
"new_password": "string"
}

返回结果

状态码状态码含义说明数据模型
200OK成功Inline

返回示例

200 Response

{}

GET 获取用户下的菜单列表

GET /user/{user_id}/menus

请求参数

名称位置类型必选说明
user_idpathstringnone

返回结果

状态码状态码含义说明数据模型
200OK成功Object

返回示例

成功

{
"data": [
{
"menu_id": "",
"code": "",
"name": "",
"type": "",
"parent_id":""
}
]
}

POST 创建角色

POST /role

请求参数

名称位置类型必选说明
bodybodyObjectnone
» namebodystringnone
» descriptionbodystringnone

Body 请求参数

{
"name": "string",
"description": "string"
}

返回结果

状态码状态码含义说明数据模型
200OK成功Object

返回示例

成功

{
"data":{
"role_id": ""
}
}

PUT 更新角色

PUT /role/{role_id}

请求参数

名称位置类型必选说明
role_idpathstringnone
bodybodyObjectnone
» namebodystringnone
» descriptionbodystringnone

Body 请求参数

{
"name": "string",
"description": "string"
}

返回结果

状态码状态码含义说明数据模型
200OK成功Object

返回示例

成功

{
"data":{

}
}

DELETE 删除role

DELETE /role/{role_id}

请求参数

名称位置类型必选说明
role_idpathstringnone

返回结果

状态码状态码含义说明数据模型
200OK成功Object

返回示例

成功

{
"data":{

}
}

GET 获取角色列表(分页)

GET /role/roles

返回结果

状态码状态码含义说明数据模型
200OK成功Object
dataArraynoneArray
» role_idstringnoneString
» namestringnoneString
» descriptionstringnoneString
» created_atstringnoneString
» user_role_countstringnoneString
» role_integration_countstringnoneString

返回示例

成功

{
"data": [
{
"role_id": "",
"name": "",
"description": "",
"created_at": "",
"user_role_count": "",
"role_integration_count": ""
}
]
}

GET 获取角色下的用户列表

GET /role/{role_id}/users

请求参数

名称位置类型必选说明
role_idpathstringnone

返回结果

状态码状态码含义说明数据模型
200OK成功Object

返回示例

成功

{
"data": [
{
"user_id": "",
"user_email": "",
"user_nickname": "",
"role_id":""
}
]
}

GET 获取角色下的菜单列表

GET /role/{role_id}/menus

请求参数

名称位置类型必选说明
role_idpathstringnone

返回结果

状态码状态码含义说明数据模型
200OK成功Object

返回示例

成功

{
"data": [
{
"menu_id": "",
"code": "",
"name": "",
"type": "",
"parent_id":""
}
]
}

GET 获取角色下的资源列表

GET /role/{role_id}/resources

请求参数

名称位置类型必选说明
role_idpathstringnone
bodybodyObjectnone
» resource_typebodystringnone

返回结果

状态码状态码含义说明数据模型
200OK成功Object

返回示例

成功

{
"data": [
{
"resource_id": "",
"resource_type":""
}
]
}

POST 添加用户到角色

POST /role/{role_id}/associate-user

请求参数

名称位置类型必选说明
role_idpathstringnone
bodybodyObjectnone
» user_idsbodyArray全量的用户id(不包含在其中的将被删除)
{
"user_ids": ["",""]
}

返回结果

状态码状态码含义说明数据模型
200OK成功Object

返回示例

成功

{
"data":{

}
}

POST 添加资源到角色

POST /role/{role_id}/associate-resource

请求参数

名称位置类型必选说明
role_idpathstringnone
bodybodyObjectnone
» resourcesbodyArray对应type的全量资源数据(不包含在该type下的其它数据将被删除)
»» idbodyStringnone
»» typebodyString[ENTITY, DEVICE, INTEGRATION, DASHBOARD]none
{
"resources": [
{
"id": "String",
"type": "String"
}
]
}

返回结果

状态码状态码含义说明数据模型
200OK成功Object

返回示例

成功

{
"data":{

}
}

POST 创建菜单

POST /menu

请求参数

名称位置类型必选说明
bodybodyObjectnone
» codebodystringnone
» namebodystringnone
» typebodystringnone
» parent_idbodystringnone

Body 请求参数

{
"code": "string",
"name": "string",
"type": "string",
"parent_id":"string"
}

返回结果

状态码状态码含义说明数据模型
200OK成功Object

返回示例

成功

{
"data":{
"menu_id": ""
}
}

PUT 更新菜单

PUT /menu/{menu_id}

请求参数

名称位置类型必选说明
menu_idpathstringnone
bodybodyObjectnone
» namebodystringnone
» typebodystring [MENU,BUTTON]none

Body 请求参数

{
"name": "string",
"type": "string"
}

返回结果

状态码状态码含义说明数据模型
200OK成功Object

返回示例

成功

{
"data":{

}
}

DELETE 删除菜单

DELETE /menu/{menu_id}

请求参数

名称位置类型必选说明
menu_idpathstringnone

返回结果

状态码状态码含义说明数据模型
200OK成功Object

返回示例

成功

{
"data":{

}
}

GET 获取菜单列表

GET /menu/menus

返回结果

状态码状态码含义说明数据模型
200OK成功Object
dataArraynoneArray
» menu_idstringnoneString
» namestringnoneString
» codestringnoneString
» typestringnoneString
» parent_idstringnoneString
» childrenArraynoneString

返回示例

成功

{
"data": [
{
"menu_id": "",
"code": "",
"name": "",
"type": "",
"parent_id": "",
"children": []
}
]
}

POST 添加菜单到角色

POST /role/{role_id}/associate-menu

请求参数

名称位置类型必选说明
role_idpathstringnone
bodybodyObjectnone
» menu_idsbodyArray全量的菜单(包含按钮)id(不包含在其中的将被删除)
{
"menu_ids": ["",""]
}

返回结果

状态码状态码含义说明数据模型
200OK成功Object

返回示例

成功

{
"data":{

}
}

集成

POST 获取集成列表

POST /integration/search

请求参数

名称位置类型必选说明
device_addablebodyboolean是否返回可添加设备的集成
device_deletablebodyboolean是否返回可删除设备的集成

Body 请求参数

{
"device_addable": true,
"device_deletable": true
}

返回结果

字段名字段类型说明
$object集成信息列表项
$.idstring集成id
$.iconstring集成图标地址
$.namestring集成名称
$.descriptionstring集成描述
$.add_device_service_keystring添加设备服务实体key
$.device_countnumber设备数量
$.entity_countnumber实体数量(包括设备实体和集成实体)

返回示例

成功

{
"data": [
{
"id": "",
"icon": "",
"name": "",
"description": "",
"add_device_service_key": "",
"deviceCount": 0,
"entityCount": 0
}
]
}

GET 获取集成详细信息

GET /integration/{integration_id}

请求参数

名称位置类型必选说明
integration_idpathstring集成id

返回结果

字段名字段类型说明
idstring集成id
iconstring集成图标地址
namestring集成名称
descriptionstring集成描述
add_device_service_keystring添加设备服务实体key
entity_countnumber实体数量(包括设备实体和集成实体)
entity_countnumber实体数量(包括设备实体和集成实体)
delete_device_service_keystring删除设备服务实体key
integration_entitiesarray集成的实体列表
integration_entities.$object集成的实体列表项
integration_entities.$.idstring实体id
integration_entities.$.keystring实体key
integration_entities.$.namestring实体名称
integration_entities.$.typestring实体类型 (属性PROPERTY / 服务SERVICE / 事件EVENT)
integration_entities.$.value_attributeobject实体属性
integration_entities.$.value_typestring数据类型 STRING/LONG/DOUBLE/BOOLEAN/BINARY/OBJECT
integration_entities.$.access_modstring读写 R / W / RW,只对属性类型的实体生效
integration_entities.$.parentstring父实体key
integration_entities.$.valuestring实体当前值

返回示例

成功

{
"data": {
"id": "",
"icon": "",
"name": "",
"description": "",
"add_device_service_key": "",
"deviceCount": 0,
"entityCount": 0,
"delete_device_service_key": "",
"integration_entities": [
{
"id": "",
"key": "",
"name": "",
"type": "",
"value_attribute": {
"": {}
},
"value_type": "",
"access_mod": "",
"parent": "",
"value": {}
}
]
}
}

设备

POST 创建设备

POST /device

请求参数

名称位置类型必选说明
namebodystring设备名称
integrationbodystring集成id
param_entitiesbodyobject添加设备服务所需参数实体

Body 请求参数

{
"name": "string",
"integration": "string",
"param_entities": {
"key": "value"
}
}

返回结果

返回示例

成功

{}

POST 搜索设备

POST /device/search

请求参数

名称位置类型必选说明
namebodystring搜索的设备名称
page_numberbodynumber页数
page_sizebodynumber分页大小

Body 请求参数

{
"name": "",
"page_number": 1,
"page_size": 10
}

返回结果

返回示例

成功

{
"data": {
"page_size": 0,
"page_number": 0,
"total": 0,
"content": [
{
"id": "",
"key": "",
"name": "",
"integration": "",
"additional_data": {},
"created_at": 0,
"updated_at": 0,
"integration_name": "",
"deletable": true
}
]
}
}

PUT 更新设备信息

PUT /device/{device_id}

请求参数

名称位置类型必选说明
device_idpathstring设备id
namebodystring设备名称

Body 请求参数

{
"name": "string"
}

返回结果

返回示例

成功

{}

GET 获取设备详细信息

GET /device/{device_id}

请求参数

名称位置类型必选说明
device_idpathstring设备id

返回结果

字段名字段类型说明
idstring设备id
keystring设备key
namestring设备名称
integrationstring设备所属集成id
integration_namestring集成名称
additional_dataobject设备额外数据
created_atnumber创建时间戳
updated_atnumber修改时间戳
deletableboolean是否可删除
identifierstring标识符
entitiesarray设备的实体列表
entities.$object实体列表项
entities.$.idstring实体id
entities.$.keystring实体key
entities.$.namestring名称
entities.$.typestring实体类型
entities.$.value_attributeobject实体属性
entities.$.value_typestring实体值类型

返回示例

成功

{
"data": {
"id": "",
"key": "",
"name": "",
"integration": "",
"additional_data": {
"": {}
},
"created_at": 0,
"updated_at": 0,
"integration_name": "",
"deletable": false,
"identifier": "",
"entities": [
{
"id": "",
"key": "",
"name": "",
"type": "",
"value_attribute": {
"": {}
},
"value_type": ""
}
]
}
}

POST 批量删除设备

POST /device/batch-delete

请求参数

名称位置类型必选说明
device_id_listbodyarray请求删除的设备id列表
device_id_list.$bodystring设备id

Body 请求参数

{
"device_id_list": [
"string"
]
}

返回结果

返回示例

成功

{}

实体

POST 实体查询

POST /entity/search

请求参数

名称位置类型必选说明
bodybodyObjectnone

Body 请求参数

{
"keyword": "string",
"entity_type": "Array[PROPERTY, SERVICE, EVENT]",
"exclude_children": "Boolean",
"entity_value_type": "Array[STRING, LONG, DOUBLE, BOOLEAN, BINARY, OBJECT]",
"entity_access_mod": "Array[R, W, RW]"
}

返回结果

状态码状态码含义说明数据模型
200OK成功Object
» entity_idstringnonenone
» entity_namestringnonenone
» entity_typestringnonenone
» entity_value_typestringnonenone
» entity_value_attributeobjectnonenone
» entity_access_modstringnonenone
» entity_keystringnonenone
» device_namestringnonenone
» integration_namestringnonenone

返回示例 成功

{
"data": {
"device_name": "String",
"integration_name": "String",
"entity_id": "String",
"entity_access_mod": "String",
"entity_key": "String",
"entity_name": "String",
"entity_type": "String",
"entity_value_attribute": {},
"entity_value_type": "String"
}
}

GET 获取子实体

GET /entity/{entity_id}/children

请求参数

名称位置类型必选说明
entity_idpathstringnone

返回结果

状态码状态码含义说明数据模型
200OK成功Object
dataArraynoneArray
» entity_idstringnonenone
» entity_namestringnonenone
» entity_typestringnonenone
» entity_value_typestringnonenone
» entity_value_attributeobjectnonenone
» entity_access_modstringnonenone
» integration_namestringnonenone
» device_namestringnonenone
» entity_keystringnonenone

返回示例

成功

{
"data": [
{
"device_name": "",
"integration_name": "",
"entity_id": "",
"entity_access_mod": "",
"entity_key": "",
"entity_type": "",
"entity_name": "",
"entity_value_attribute": {
"": {}
},
"entity_value_type": ""
}
]
}

POST 历史数据查询

POST /entity/history/search

请求参数

名称位置类型必选说明
bodybodyObjectnone

Body 请求参数

{
"entity_id": 0,
"start_timestamp": 0,
"end_timestamp": 0
}

返回结果

状态码状态码含义说明数据模型
200OK成功Object
» timestampintegernonenone
» valueobjectnonenone
» value_typestringnonenone

返回示例 成功

{
"timestamp": 0,
"value": "Object",
"value_type": "String[STRING, LONG, DOUBLE, BOOLEAN, BINARY, OBJECT]"
}

POST 历史数据聚合查询

POST /entity/history/aggregate

请求参数

名称位置类型必选说明
bodybodyObjectnone

Body 请求参数

{
"entity_id": 0,
"aggregate_type": "LAST",
"start_timestamp": 0,
"end_timestamp": 0
}

返回结果

状态码状态码含义说明数据模型
200OK成功Object
» valueobjectnonenone
» value_typestringnonenone
» count_resultArraynoneArray
»» valueobjectnonenone
»» value_typestringnonenone
»» countintegernonenone

返回示例

成功

{
"data":{
"value": {},
"value_type": "",
"count_result": [
{
"value": {},
"value_type": "",
"count": 0
}
]
}
}

GET 获取实体当前最新值

GET /entity/{entity_id}/status

请求参数

名称位置类型必选说明
entity_idpathstringnone

返回结果

状态码状态码含义说明数据模型
200OK成功Object
» valueobjectnonenone
» updated_atstringnonenone
» value_typestringnonenone

返回示例

成功

{
"data":{
"value": {},
"updated_at": "",
"value_type": ""
}
}

GET 获取实体元数据信息

GET /entity/{entity_id}/meta

请求参数

名称位置类型必选说明
entity_idpathstringnone

返回结果

状态码状态码含义说明数据模型
200OK成功Object
» keystringnonenone
» namestringnonenone
» typestringnonenone
» access_modstringnonenone
» value_attributeobjectnonenone
» value_typestringnonenone

返回示例

成功

{
"data":{
"key": "",
"name": "",
"type": "",
"access_mod": "",
"value_attribute": {
"": {}
},
"value_type": ""
}
}

Dashboard

POST 创建Dashboard

POST /dashboard

请求参数

名称位置类型必选说明
bodybodyObjectnone
» namebodystringnone

Body 请求参数

{
"name": "string"
}

返回结果

状态码状态码含义说明数据模型
200OK成功Object

返回示例

成功

{
"data":{
"dashboard_id": ""
}
}

PUT 更新Dashboard

PUT /dashboard/{dashboard_id}

请求参数

名称位置类型必选说明
dashboard_idpathstringnone
bodybodyObjectnone
» namebodystringnone
» widgetsbodyArraynone
»» widget_idbodystringnone
»» databodyObjectnone

Body 请求参数

{
"name": "string",
"widgets": [
{
"widget_id": "string",
"data": {
}
}
]
}

返回结果

状态码状态码含义说明数据模型
200OK成功Object

返回示例

成功

{
"data":{

}
}

DELETE 删除Dashboard

DELETE /dashboard/{dashboard_id}

请求参数

名称位置类型必选说明
dashboard_idpathstringnone

返回结果

状态码状态码含义说明数据模型
200OK成功Object

返回示例

成功

{
"data":{

}
}

GET 获取所有Dashboards

GET /dashboard/dashboards

返回结果

状态码状态码含义说明数据模型
200OK成功Object
dataArraynoneArray
» dashboard_idstringnoneString
» user_idstringnoneString
» namestringnoneString
» widgetsArraynoneArray
»» widget_idstringnoneString
»» dataObjectnoneObject
» created_atstringnoneString

返回示例

成功

{
"data": [
{
"dashboard_id": "",
"user_id":"",
"name": "",
"widgets": [
{
"widget_id": "",
"data": {
"": {}
}
}
],
"created_at": ""
}
]
}

WebSocket

WebSocket连接地址为:ws://{host}:{port}/websocket

请求参数

名称位置类型必选说明
Authorizationquerystringnone