Skip to main content

REST API

Overview

REST API

Return Value Interface Specification

NameLocationTypeDescription
request_idbodystringUnique request identifier ID
statusbodystringRequest status: Success/Failed
error_codebodystringError code, present when status is Failed
error_messagebodystringError message, present when status is Failed
detail_messagebodystringDetailed error message, possibly present when status is Failed
databodyobjectReturned result data, generally present when status is Success

Authentication

POST Token Refresh

POST /oauth2/token

Request Parameters

NameLocationTypeRequiredDescription
bodybodyobjectNonone
» refresh_tokenbodystringNonone
» grant_typebodystringNonone
» client_idbodystringNonone
» client_secretbodystringNonone
» usernamebodystringNonone
» passwordbodystringNonone

Body Request Parameters

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

Response

Status CodeDescriptionData Model
200OKSuccess

Response Example

200 Response

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

POST User Registration

POST /user/register

Request Parameters

NameLocationTypeRequiredDescription
bodybodyobjectNonone
» emailbodystringYesnone
» nicknamebodystringYesnone
» passwordbodystringYesnone

Body Request Parameters

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

Response

Status CodeDescriptionData Model
200OKSuccess

Response Example

200 Response

{}

GET User Information

GET /user

Response

Status CodeDescriptionData Model
200OKSuccess

Response Example

200 Response

{
"data": {
"tenant_id": "string",
"user_id": "string",
"nickname": "string",
"email": "string",
"created_at": "string",
"roles": [{
"role_id": "string",
"role_name": "string"
}],
"menus": [
{
"menu_id": "",
"code": "",
"name": "",
"type": "",
"parent_id":""
}
],
"super_admin": true
}
}

GET User Status Information

GET /user/status

Response

Status CodeDescriptionData Model
200OKSuccess

Response Example

200 Response

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

Post user list (page)

Post /user/members/search

请求参数

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

Body 请求参数

{
"keyword": "string"
}

Response

Status CodeDescriptionData Model
200OKSuccess

Response Example

200 Response

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

POST create user

POST /user/members

Request Parameters

NameLocationTypeRequiredDescription
bodybodyobjectNOnone
» emailbodystringYESnone
» nicknamebodystringYESnone
» passwordbodystringYESnone

Body REQUEST

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

Response

Status CodeDescriptionData Model
200OKSuccess

Response Example

200 Response

{}

PUT edit user

PUT /user/members/{userId}

Request Parameters

NameLocationTypeRequiredDescription
userIdpathstringYESnone
bodybodyobjectNOnone
» emailbodystringYESnone
» nicknamebodystringYESnone

Body REQUEST

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

Response

Status CodeDescriptionData Model
200OKSuccess

Response Example

200 Response

{}

PUT RESET password

PUT /user/members/{userId}/change-password

Request Parameters

NameLocationTypeRequiredDescription
userIdpathstringYESnone
bodybodyobjectNOnone
» passwordbodystringNOnone

Body Request

{
"password": "string"
}

Response

Status CodeDescriptionData Model
200OKSuccess

Response Example

200 Response

{}

DELETE delete user

DELETE /user/members/{user_id}

Request Parameters

NameLocationTypeRequiredDescription
---------------------
user_idpathstringYESnone

Response

Status CodeDescriptionData Model
200OKSuccess

Response Example

200 Response

{
"data":{

}
}

POST batch delete user

POST /user/batch-delete

Request Parameters

NameLocationTypeRequiredDescription
bodybodyobjectNOnone
» user_id_listbodyArrayYESnone

Body REQUEST

{
"user_id_list": []
}

Response

Status CodeDescriptionData Model
200OKSuccess

Response Example

200 Response

{}

PUT edit password(self)

PUT /user/password

Request Parameters

NameLocationTypeRequiredDescription
bodybodyobjectNOnone
» old_passwordbodystringYESnone
» new_passwordbodystringYESnone

Body Request

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

Response

Status CodeDescriptionData Model
200OKSuccess

Response Example

200 Response

{}

GET user menu list

GET /user/members/{user_id}/menus

Request Parameters

NameLocationTypeRequiredDescription
user_idpathstringYESnone

Response

Status CodeDescriptionData Model
200OKSuccess

Response Example

200 Response

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

Post is has some resource permission

Post /user/members/{userId}/permission

请求参数

名称位置类型必选说明
userIdpathstringnone
bodybodyobjectnone
» resource_typebodystringnone
» resource_idbodystringnone

Body 请求参数

{
"resource_type": "string",
"resource_id": "string"
}

Request Parameters

NameLocationTypeRequiredDescription
userIdpathstringYESnone

Response

Status CodeDescriptionData Model
200OKSuccess

Response Example

200 Response

{
"has_permission": true
}

POST create role

POST /user/roles

Request Parameters

NameLocationTypeRequiredDescription
bodybodyObjectNOnone
» namebodystringYESnone
» descriptionbodystringNOnone

Body REQUEST

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

Response

Status CodeDescriptionData Model
200OKSuccess

Response Example

200 Response

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

PUT update role

PUT /user/roles/{role_id}

Request Parameters

NameLocationTypeRequiredDescription
role_idpathstringYESnone
bodybodyObjectNOnone
» namebodystringYESnone
» descriptionbodystringNOnone

Body Request

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

Response

Status CodeDescriptionData Model
200OKSuccess

Response Example

200 Response

{
"data":{

}
}

DELETE delete role

DELETE /user/roles/{role_id}

Request Parameters

NameLocationTypeRequiredDescription
role_idpathstringYESnone

Response

Status CodeDescriptionData Model
200OKSuccess

Response Example

200 Response

{
"data":{

}
}

GET role list(page)

Post /user/roles/search

Response

Status CodeDescriptionData Model
200OKSuccess

Response Example

200 Response

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

GET user list in role

GET /user/roles/{role_id}/members

Request Parameters

NameLocationTypeRequiredDescription
role_idpathstringYESnone

Response

Status CodeDescriptionData Model
200OKSuccess

Response Example

200 Response

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

GET menu list in role

GET /user/roles/{role_id}/menus

Request Parameters

NameLocationTypeRequiredDescription
role_idpathstringYESnone

Response

Status CodeDescriptionData Model
200OKSuccess

Response Example

200 Response

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

Post resource list in role

Post /user/roles/{role_id}/resources

Request Parameters

NameLocationTypeRequiredDescription
role_idpathstringYesnone
bodybodyObjectNOnone
» resource_typebodystringNOnone

Response

Status CodeDescriptionData Model
200OKSuccess

Response Example

200 Response

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

Post Integration list in role

Post /user/roles/{role_id}/integrations

Request Parameters

NameLocationTypeRequiredDescription
role_idpathstringYesnone
bodybodyObjectNOnone
» keywordbodystringNOnone

Response

Status CodeDescriptionData Model
200OKSuccess

Response Example

200 Response

{
"data": [
{
"integration_id": "",
"integration_name":"",
"device_num":"",
"entity_num": ""
}
]
}

Post device list in role

Post /user/roles/{role_id}/devices

Request Parameters

NameLocationTypeRequiredDescription
role_idpathstringYesnone
bodybodyObjectnonone
» keywordbodystringnonone

Response

Status CodeDescriptionData Model
200OKSuccess

Response Example

200 Response

{
"data": [
{
"device_id": "",
"device_name":"",
"created_at": "",
"integration_id": "",
"integration_name":"",
"user_id":"",
"user_email": "",
"user_nickname":"",
"role_integration": "boolean"
}
]
}

Post dashboard list in role

Post /user/roles/{role_id}/dashboards

Request Parameters

NameLocationTypeRequiredDescription
role_idpathstringyesnone
bodybodyObjectnonone
» keywordbodystringnonone

Response

Status CodeDescriptionData Model
200OKSuccess

Response Example

200 Response

{
"data": [
{
"dashboard_id": "",
"dashboard_name":"",
"created_at": "",
"user_id":"",
"user_email": "",
"user_nickname":""
}
]
}

Post undistributed dashboard list

Post /user/roles/{role_id}/undistributed-dashboards

Request Parameters

NameLocationTypeRequiredDescription
role_idpathstringyesnone
bodybodyObjectnonone
» keywordbodystringnonone

Response

Status CodeDescriptionData Model
200OKSuccess

Response Example

200 Response

{
"data": [
{
"dashboard_id": "",
"dashboard_name":"",
"created_at": "",
"user_id":"",
"user_email": "",
"user_nickname":""
}
]
}

Post undistributed user list

Post /user/roles/{role_id}/undistributed-users

Request Parameters

NameLocationTypeRequiredDescription
role_idpathstringyesnone
bodybodyObjectnonone
» keywordbodystringnonone

Response

Status CodeDescriptionData Model
200OKSuccess

Response Example

200 Response

{
"data": [
{
"email": "",
"nickname":"",
"user_id":""
}
]
}

Post undistributed integration list

Post /user/roles/{role_id}/undistributed-integrations

Request Parameters

NameLocationTypeRequiredDescription
role_idpathstringyesnone
bodybodyObjectnonone
» keywordbodystringnonone

Response

Status CodeDescriptionData Model
200OKSuccess

Response Example

200 Response

{
"data": [
{
"integration_id": "",
"integration_name":""
}
]
}

Post undistributed device list

Post /user/roles/{role_id}/undistributed-devices

Request Parameters

NameLocationTypeRequiredDescription
role_idpathstringyesnone
bodybodyObjectnonone
» keywordbodystringnonone

Response

Status CodeDescriptionData Model
200OKSuccess

Response Example

200 Response

{
"data": [
{
"device_id": "",
"device_name":"",
"created_at": "",
"integration_id": "",
"integration_name":"",
"user_id":"",
"user_email": "",
"user_nickname":""
}
]
}

POST add user to role

POST /user/roles/{role_id}/associate-user

Request Parameters

NameLocationTypeRequiredDescription
role_idpathstringyesnone
bodybodyObjectnonone
» user_idsbodyArraynonone
{
"user_ids": ["",""]
}

Response

Status CodeDescriptionData Model
200OKSuccess

Response Example

200 Response

{
"data":{

}
}

POST add resource to role

POST /user/roles/{role_id}/associate-resource

Request Parameters

NameLocationTypeRequiredDescription
role_idpathstringyesnone
bodybodyObjectnonone
» resourcesbodyArraynonone
»» idbodyStringnonone
»» typebodyString[ENTITY, DEVICE, INTEGRATION, DASHBOARD, WORKFLOW]none
{
"resources": [
{
"id": "String",
"type": "String"
}
]
}

Response

Status CodeDescriptionData Model
200OKSuccess

Response Example

200 Response

{
"data":{

}
}

POST disassociate user from role

POST /user/roles/{role_id}/disassociate-user

Request Parameters

NameLocationTypeRequiredDescription
role_idpathstringYESnone
bodybodyObjectNOnone
» user_idsbodyArrayNOnone
{
"user_ids": ["",""]
}

Response

Status CodeDescriptionData Model
200OKSuccess

Response Example

200 Response

{
"data":{

}
}

POST disassociate resource from role

POST /user/roles/{role_id}/disassociate-resource

Request Parameters

NameLocationTypeRequiredDescription
role_idpathstringYESnone
bodybodyObjectnonone
» resourcesbodyArraynonone
»» idbodyStringnonone
»» typebodyString[ENTITY, DEVICE, INTEGRATION, DASHBOARD, WORKFLOW]none
{
"resources": [
{
"id": "String",
"type": "String"
}
]
}

Response

Status CodeDescriptionData Model
200OKSuccess

Response Example

200 Response

{
"data":{

}
}

POST create menu

POST /user/menus

Request Parameters

NameLocationTypeRequiredDescription
bodybodyObjectnonone
» codebodystringyesnone
» namebodystringyesnone
» typebodystringyesnone
» parent_idbodystringnonone

Body Request

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

Response

Status CodeDescriptionData Model
200OKSuccess

Response Example

200 Response

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

PUT update menu

PUT /user/menus/{menu_id}

Request Parameters

NameLocationTypeRequiredDescription
menu_idpathstringyesnone
bodybodyObjectnonone
» namebodystringyesnone
» typebodystring [MENU,FUNCTION]yesnone

Body request

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

Response

Status CodeDescriptionData Model
200OKSuccess

Response Example

200 Response

{
"data":{

}
}

DELETE delete menu

DELETE /user/menus/{menu_id}

Request Parameters

NameLocationTypeRequiredDescription
menu_idpathstringyesnone

Response

Status CodeDescriptionData Model
200OKSuccess

Response Example

200 Response

{
"data":{

}
}

GET menu list

GET /user/menus

Response

Status CodeDescriptionData Model
200OKSuccess

Response Example

200 Response

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

POST add menu to role

POST /user/roles/{role_id}/associate-menu

Request Parameters

NameLocationTypeRequiredDescription
role_idpathstringyesnone
bodybodyObjectnonone
» menu_idsbodyArraynonone
{
"menu_ids": ["",""]
}

Response

Status CodeDescriptionData Model
200OKSuccess

Response Example

200 Response

{
"data":{

}
}

Integration

POST Get Integration List

POST /integration/search

Request Parameters

NameLocationTypeRequiredDescription
device_addablebodybooleanNoWhether to return integrations that can add devices
device_deletablebodybooleanNoWhether to return integrations that can delete devices

Body Request Parameters

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

Response

Status CodeDescriptionData Model
200OKSuccess

Response Example

200 Response

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

GET Get Integration Details

GET /integration/{integration_id}

Request Parameters

NameLocationTypeRequiredDescription
integration_idpathstringYesIntegration ID

Response

Status CodeDescriptionData Model
200OKSuccess

Response Example

200 Response

{
"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": {}
}
]
}
}

Devices

POST Create Device

POST /device

Request Parameters

NameLocationTypeRequiredDescription
namebodystringYesDevice name
integrationbodystringYesIntegration ID
param_entitiesbodyobjectYesParameters required for adding the device service

Body Request Parameters

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

Response

Status CodeDescriptionData Model
200OKSuccess

Response Example

200 Response

{}

POST Search Devices

POST /device/search

Request Parameters

NameLocationTypeRequiredDescription
namebodystringNoDevice name to search
page_numberbodynumberNoPage number
page_sizebodynumberNoPage size

Body Request Parameters

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

Response

Status CodeDescriptionData Model
200OKSuccess

Response Example

200 Response

{
"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 Update Device Information

PUT /device/{device_id}

Request Parameters

NameLocationTypeRequiredDescription
device_idpathstringYesDevice ID
namebodystringNoDevice name

Body Request Parameters

{
"name": "string"
}

Response

Status CodeDescriptionData Model
200OKSuccess

Response Example

200 Response

{}

GET Get Device Details

GET /device/{device_id}

Request Parameters

NameLocationTypeRequiredDescription
device_idpathstringYesDevice ID

Response

Status CodeDescriptionData Model
200OKSuccess

Response Example

200 Response

{
"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 Batch Delete Devices

POST /device/batch-delete

Request Parameters

NameLocationTypeRequiredDescription
device_id_listbodyarrayYesList of device IDs to delete
device_id_list.$bodystringYesDevice ID

Body Request Parameters

{
"device_id_list": [
"string"
]
}

Response

Status CodeDescriptionData Model
200OKSuccess

Response Example

200 Response

{}

Entities

POST Query Entities

POST /entity/search

Request Parameters

NameLocationTypeRequiredDescription
bodybodyobjectNonone

Body Request Parameters

{
"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]"
}

Response

Status CodeDescriptionData Model
200OKSuccess

Response Example

200 Response

{
"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 Child Entities

GET /entity/{entity_id}/children

Request Parameters

NameLocationTypeRequiredDescription
entity_idpathstringYesnone

Response

Status CodeDescriptionData Model
200OKSuccess

Response Example

200 Response

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

POST Query Historical Data

POST /entity/history/search

Request Parameters

Body REQUEST

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

Response

Status CodeDescriptionData Model
200OKSuccess

Response Example

200 Response

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

POST Query Historical Data Aggregation

POST /entity/history/aggregate

Request Parameters

NameLocationTypeRequiredDescription
bodybodyobjectNonone

Body 请求参数

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

Response

Status CodeDescriptionData Model
200OKSuccess

Response Example

200 Response

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

GET Retrieve the Latest Value of an Entity

GET /entity/{entity_id}/status

Request Parameters

NameLocationTypeRequiredDescription
entity_idpathstringYesnone

Response

Status CodeDescriptionData Model
200OKSuccess

Response Example

200 Response

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

GET Retrieve Entity Metadata

GET /entity/{entity_id}/meta

Request Parameters

NameLocationTypeRequiredDescription
entity_idpathstringYesnone

Response

Status CodeDescriptionData Model
200OKSuccess

Response Example

200 Response

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

Dashboard

POST Create Dashboard

POST /dashboard

Request Parameters

NameLocationTypeRequiredDescription
bodybodyObjectNonone
» namebodystringYesnone

Body Request Example

{
"name": "string"
}

Response

Status CodeDescriptionData Model
200OKSuccess

Response Example

200 Response

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

PUT Update Dashboard

PUT /dashboard/{dashboard_id}

Request Parameters

NameLocationTypeRequiredDescription
dashboard_idpathstringYesnone
bodybodyObjectNonone
» namebodystringYesnone
» widgetsbodyArrayYesnone
»» widget_idbodystringYesnone
»» databodyObjectYesnone

Body 请求参数

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

Response

Status CodeDescriptionData Model
200OKSuccess

Response Example

200 Response

{
"data":{

}
}

DELETE Delete Dashboard

DELETE /dashboard/{dashboard_id}

Request Parameters

NameLocationTypeRequiredDescription
dashboardIdpathstringYesnone

Response

Status CodeDescriptionData Model
200OKSuccess

Response Example

200 Response

{
"data":{

}
}

GET Retrieve All Dashboards

GET /dashboard/dashboards

Response

Status CodeDescriptionData Model
200OKSuccess

Response Example

200 Response

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

WebSocket

WebSocket connection URL: ws://{host}:{port}/websocket

Request Parameters

NameLocationTypeRequiredDescription
AuthorizationquerystringYesnone

Workflow

POST Search Workflow

POST /workflow/flows/search

Request Parameters

NameLocationTypeRequiredDescription
namebodystringNoSearch name

Response

Field NameField TypeDescription
idstringWorkflow ID
namestringWorkflow name
remarkstringWorkflow description
enabledbooleanIs workflow enabled
user_nicknamestringUser name
created_atnumberCreation timestamp
updated_atnumberUpdate timestamp

Response Example

Success

{
"data": {
"id": "",
"name": "",
"remark": "",
"enabled": false,
"user_nickname": "",
"created_at": 0,
"updated_at": 0
}
}

PUT Edit Workflow Information

PUT /workflow/flows/{flowId}

Request Parameters

NameLocationTypeRequiredDescription
flowIdpathstringYesWorkflow ID
namebodystringYesWorkflow name
remarkbodystringYesWorkflow description

Response

None

POST Delete Workflow

POST /workflow/flows/batch-delete

Request Parameters

NameLocationTypeRequiredDescription
workflow_id_listbodyarray of stringsYesList of workflow IDs

Response

None

GET Enable Workflow

GET /workflow/flows/{flowId}/enable

Request Parameters

NameLocationTypeRequiredDescription
flowIdpathstringYesWorkflow ID

Response

None

GET Disable Workflow

GET /workflow/flows/{flowId}/disable

Request Parameters

NameLocationTypeRequiredDescription
flowIdpathstringYesWorkflow ID

Response

None

POST Search Workflow Logs

POST /workflow/flows/{flowId}/logs/search

Request Parameters

NameLocationTypeRequiredDescription
flowIdpathstringYesWorkflow ID
statusbodystringNoStatus (SUCCESS / ERROR)

Response

Field NameField TypeDescription
idstringLog ID
start_timenumberStart timestamp
time_costnumberTime cost (ms)
statusstringStatus (SUCCESS / ERROR)

Response Example

Success

{
"data": [
{
"id": "",
"start_time": 0,
"time_cost": 0,
"status": "SUCCESS"
}
]
}

GET Query Log Details

GET /workflow/flows/logs/{logId}

Request Parameters

NameLocationTypeRequiredDescription
logIdpathstringYesLog ID

Response

Field NameField TypeDescription
trace_infoarrayNode trace information
trace_info.$objectNode trace information item
trace_info.$.message_idstringMessage ID
trace_info.$.node_idstringNode ID
trace_info.$.node_labelstringNode label
trace_info.$.statusstringStatus (SUCCESS / ERROR)
trace_info.$.start_timenumberNode start timestamp
trace_info.$.time_costnumberNode time cost (ms)
trace_info.$.error_messagestringError message
trace_info.$.inputstringInput parameters (JSON format)
trace_info.$.outputstringOutput (JSON format)

Response Example

Success

{
"data": {
"trace_info": [
{
"message_id": "",
"node_id": "",
"node_label": "",
"status": "SUCCESS",
"start_time": 0,
"time_cost": 0,
"error_message": "",
"input": "",
"output": ""
}
]
}
}

GET Retrieve Workflow Design

GET /workflow/flows/{flowId}/design?version={versionId}

Request Parameters

NameLocationTypeRequiredDescription
flowIdpathstringYesWorkflow ID
versionIdquerystringNoVersion ID (if not provided, fetch the latest version)

Response

Field NameField TypeDescription
idstringWorkflow ID
namestringWorkflow name
remarkstringWorkflow description
enabledbooleanIs workflow enabled
versionnumberWorkflow version
design_datastringWorkflow data (JSON format)

Response Example

Success

{
"data": {
"id": "",
"name": "",
"remark": "",
"enabled": false,
"version": 0,
"design_data": ""
}
}

POST Validate Workflow Design

POST /workflow/flows/design/validate

Request Parameters

NameLocationTypeRequiredDescription
design_databodystringYesWorkflow data (JSON format)

Response

None

POST Save Workflow Design

POST /workflow/flows/design

Request Parameters

NameLocationTypeRequiredDescription
idbodystringNoWorkflow ID (if not provided, create new)
versionbodynumberNoCurrent version
namebodystringYesWorkflow name
enabledbodybooleanYesEnable workflow
remarkbodystringYesWorkflow description
design_databodystringYesWorkflow data (JSON format)
info

If id and version are not provided, a new workflow is created. Otherwise, the data for the workflow ID is updated. When a user creates a new workflow and saves it, the returned id and version should be stored. If the user clicks save multiple times on the same page, the id and version from the previous call should be used.

Response

Field NameField TypeDescription
idstringWorkflow ID
versionnumberCurrent version

Response Example

Success

{
"data": {
"id": "",
"version": 0
}
}

POST Test Entire Workflow

POST /workflow/flows/test

Request Parameters

NameLocationTypeRequiredDescription
inputbodyobjectYesInput parameters
design_databodystringYesWorkflow data (JSON format)

Response

Field NameField TypeDescription
statusstringStatus (SUCCESS / ERROR)
flow_idstringWorkflow ID
start_timenumberStart timestamp
time_costnumberTime cost (ms)
trace_infosarrayNode trace information
trace_infos.$objectNode trace information item
trace_infos.$.message_idstringMessage ID
trace_infos.$.node_idstringNode ID
trace_infos.$.node_labelstringNode label
trace_infos.$.statusstringStatus (SUCCESS / ERROR)
trace_infos.$.start_timenumberNode start timestamp
trace_infos.$.time_costnumberNode time cost (ms)
trace_infos.$.error_messagestringError message
trace_infos.$.inputstringInput parameters (JSON format)
trace_infos.$.outputstringOutput (JSON format)

Response Example

Success

{
"data": {
"status": "SUCCESS",
"flow_id": "",
"start_time": 0,
"time_cost": 0,
"trace_infos": [
{
"message_id": "",
"node_id": "",
"node_label": "",
"status": "SUCCESS",
"start_time": 0,
"time_cost": 0,
"error_message": "",
"input": "",
"output": ""
}
]
}
}

POST Test Single Node in Workflow

POST /workflow/flows/node/test

Request Parameters

NameLocationTypeRequiredDescription
node_configbodystringYesNode data (JSON format)
inputbodyobjectYesInput parameters

Response

Field NameField TypeDescription
message_idstringMessage ID
node_idstringNode ID
node_labelstringNode label
statusstringStatus (SUCCESS / ERROR)
start_timenumberNode start timestamp
time_costnumberNode time cost (ms)
error_messagestringError message
inputstringInput parameters (JSON format)
outputstringOutput (JSON format)

Response Example

Success

{
"data": {
"message_id": "",
"node_id": "",
"node_label": "",
"status": "SUCCESS",
"start_time": 0,
"time_cost": 0,
"error_message": "",
"input": "",
"output": ""
}
}

GET Retrieve All Workflow Groups

GET /workflow/components

Request Parameters

None

Response

Field NameField TypeDescription
[section_name]arrayComponents Group Name
[section_name].$objectComponent items
[section_name].$.namestringComponent name
[section_name].$.titlestringComponent title
[section_name].$.datastringComponent definition data

Response Example

Success

{
"data": {
"entry": [
{
"name": "timer",
"title": "timer",
"data": ""
},
{
"name": "direct",
"title": "input",
"data": ""
},
{
"name": "eventListener",
"title": "Event Listener",
"data": ""
}
],
"control": [
{
"name": "choice",
"title": "IF/ELSE",
"data": ""
}
],
"action": [
{
"name": "serviceInvocation",
"title": "Service Invocation",
"data": ""
},
{
"name": "entityAssigner",
"title": "Entity Assigner",
"data": ""
}
],
"external": [
{
"name": "email",
"title": "Email",
"data": ""
},
{
"name": "webhook",
"title": "Webhook",
"data": ""
}
]
}
}

GET Retrieve Workflow Component Data

GET /workflow/components/{componentName}

Request Parameters

NameLocationTypeRequiredDescription
componentNamepathstringYesWorkflow component name

Response

Field NameField TypeDescription
/stringWorkflow component data

Response Example

Success

{
"component": {
"name": "timer",
"description": "Generate messages in specified intervals using java.util.Timer.",
"scheme": "timer",
"syntax":"timer:timerName"
// ...
},
"componentProperties":{/*...*/},
"headers":{
"CamelTimerFiredTime":{/*...*/}
// ...
},
"properties":{
"timerName": { "index": 0, "kind": "path", "displayName": "Timer Name", "group": "consumer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The name of the timer" },
// ...
}
}

GET Retrieve Supported Scripting Languages

GET /workflow/components/languages

Request Parameters

None

Response

Field NameField TypeDescription
codearrayScripting languages
code.$stringLanguage item
expressionarrayExpression languages
expression.$stringLanguage item

Response Example

Success

{
"code": ["groovy","javascript","python","mvel"],
"expression": ["groovy","javascript","python","mvel","jsonPath"]
}