功能性API接口说明

当coolpy7启动时,在没有改变相关启动参数的前提下,coolpy7会启动本api服务在8081端口。默认的登陆账号为admin,密码为coolpy7。如需修改登陆可在启动参数使用 -syst=xxxx设置。已对接完成的前端项目已开源于:https://github.com/Coolpy7/admin

公共分类

登录

基本信息

Path: /login/account

Method: POST

接口描述:

请求参数

Headers

参数名称

参数值

是否必须

示例

备注

Content-Type

application/json

Body

名称

类型

是否必须

默认值

备注

userName

string

必须

admin

用户名

password

string

必须

coolpy7

密码

返回数据

名称

类型

是否必须

备注

status

string

非必须

结果状态

token

string

非必须

token

//登陆示例
curl --location --request POST 'http://localhost:8081/login/account' \
--header 'Content-Type: text/plain' \
--data-raw '{"userName": "admin", "password": "coolpy7"}'

鉴权说明:除登录接口外,其他接口均需把登录接口返回的TOKEN值 写到HTTP的header中,并使用Authorization为header键值,value值为 Bearer 加空格后带上token内容。

Brokers节点

基本信息

Path: /api/brokers

Method: GET

接口描述:

请求参数

返回数据

名称

类型

是否必须

备注

current

number

非必须

当前页

data

object []

非必须

数据载体

├─ addr

string

必须

节点群集通信IP

├─ name

string

必须

节点名称

├─ port

number

必须

节点群集通信端口号

├─ version

string

必须

节点版本号

├─ uptime

string

必须

节点启动时间

├─ datetime

string

必须

节点所在设备当前时间

├─ is_local

boolean

非必须

是否当前节点

pageSize

number

非必须

页大小

success

boolean

非必须

请求结果

total

number

非必须

合计记录数

//示例
curl --location --request GET 'http://localhost:8081/api/brokers?current=1&pageSize=100' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJDUDciLCJleHAiOjE2MjgzMjI3NjgsImp0aSI6ImFkbWluIiwiaWF0IjoxNjI4MzE1NTY4LCJpc3MiOiJjb29scHkubmV0IiwibmJmIjoxNjI4MzE1NTY4fQ.r5cS1OIz8iJqrswAlo5-FStWNm9OP2LJchgVnVIhh9w' \
--data-raw ''

度量指标:Runtime运行统计

基本信息

Path: /api/runtime

Method: GET

接口描述:

请求参数

返回数据

名称

类型

是否必须

备注

current

number

非必须

当前页

data

object []

非必须

数据

├─ clientsdata

number

必须

度量值

├─ clientstype

string

必须

度量类型

pageSize

number

非必须

页大小

success

boolean

非必须

操作结果

total

number

非必须

总记录数

//示例
curl --location --request GET 'http://localhost:8081/api/runtime?current=1&pageSize=100' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJDUDciLCJleHAiOjE2MjgzMjI3NjgsImp0aSI6ImFkbWluIiwiaWF0IjoxNjI4MzE1NTY4LCJpc3MiOiJjb29scHkubmV0IiwibmJmIjoxNjI4MzE1NTY4fQ.r5cS1OIz8iJqrswAlo5-FStWNm9OP2LJchgVnVIhh9w' \
--data-raw ''

度量指标:Config配置

基本信息

Path: /api/config

Method: GET

接口描述:

请求参数

返回数据

名称

类型

是否必须

备注

current

number

非必须

当前页

data

object []

非必须

数据

├─ configdata

number,string

必须

配置值

├─ configtype

string

必须

配置类型

pageSize

number

非必须

页大小

success

boolean

非必须

操作结果

total

number

非必须

总记录数

//示例
curl --location --request GET 'http://localhost:8081/api/config?current=1&pageSize=100' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJDUDciLCJleHAiOjE2MjgzMjI3NjgsImp0aSI6ImFkbWluIiwiaWF0IjoxNjI4MzE1NTY4LCJpc3MiOiJjb29scHkubmV0IiwibmJmIjoxNjI4MzE1NTY4fQ.r5cS1OIz8iJqrswAlo5-FStWNm9OP2LJchgVnVIhh9w' \
--data-raw ''

度量指标:System

基本信息

Path: /api/system

Method: GET

接口描述:

请求参数

返回数据

名称

类型

是否必须

备注

current

number

非必须

当前页

data

object []

非必须

数据

├─ bytes_received

number

非必须

输入流量

├─ bytes_sent

number

非必须

输出流量

├─ connections_count

number

非必须

当前连接数

├─ connections_max

number

非必须

最大连接数

├─ messages_received

number

非必须

消息接收数

├─ messages_retained

number

非必须

retained消息

├─ messages_sent

number

非必须

消息发送数

├─ subscriptions_count

number

非必须

订阅数

├─ subscriptions_max

number

非必须

最大订阅数

pageSize

number

非必须

页大小

success

boolean

非必须

操作结果

total

number

非必须

总记录数

//示例
curl --location --request GET 'http://localhost:8081/api/system?current=1&pageSize=100' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJDUDciLCJleHAiOjE2MjgzMjI3NjgsImp0aSI6ImFkbWluIiwiaWF0IjoxNjI4MzE1NTY4LCJpc3MiOiJjb29scHkubmV0IiwibmJmIjoxNjI4MzE1NTY4fQ.r5cS1OIz8iJqrswAlo5-FStWNm9OP2LJchgVnVIhh9w' \
--data-raw ''

Clients客户端

基本信息

Path: /api/clients

Method: GET

接口描述:

请求参数

Query

参数名称

是否必须

示例

current

?current=1&pageSize=10

pageSize

?current=1&pageSize=10

Body

名称

类型

是否必须

备注

ClientId

string

非必须

客户端ID

Ip

string

非必须

客户端IP

Protocol

string

非必须

协议类型

SessionAt

string

非必须

会话时间

Status

string

非必须

状态

返回数据

名称

类型

是否必须

备注

current

number

非必须

当前页

data

object []

非必须

数据

├─ client_id

string

必须

客户端ID

├─ ip

string

必须

客户端IP

├─ protocol

string

必须

协议类型

├─ session_at

string

必须

会话时间

├─ status

string

必须

客户端状态

├─ subscribes

number

必须

订阅数

├─ updated_at

string

必须

更新时间

├─ user_name

string

必须

用户名

pageSize

number

非必须

页大小

success

boolean

非必须

操作结果

total

number

非必须

总记录数

curl --location --request GET 'http://localhost:8081/api/clients?current=1&pageSize=100' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJDUDciLCJleHAiOjE2MjgzMjI3NjgsImp0aSI6ImFkbWluIiwiaWF0IjoxNjI4MzE1NTY4LCJpc3MiOiJjb29scHkubmV0IiwibmJmIjoxNjI4MzE1NTY4fQ.r5cS1OIz8iJqrswAlo5-FStWNm9OP2LJchgVnVIhh9w' \
--data-raw ''

Topics主题

基本信息

Path: /api/topics

Method: GET

接口描述:

请求参数

Query

参数名称

是否必须

示例

current

?current=1&pageSize=10

pageSize

?current=1&pageSize=10

返回数据

名称

类型

是否必须

备注

current

number

非必须

当前页

data

object []

非必须

数据

├─ client_id

string

必须

客户端ID

├─ node_name

string

必须

节点名称

├─ qos

number

必须

消息质量

├─ topic

string

必须

主题

├─ updated_at

string

必须

更新时间

pageSize

number

非必须

页大小

success

boolean

非必须

操作结果

total

number

非必须

总记录数

curl --location --request GET 'http://localhost:8081/api/topics?current=1&pageSize=100' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJDUDciLCJleHAiOjE2MjgzMjI3NjgsImp0aSI6ImFkbWluIiwiaWF0IjoxNjI4MzE1NTY4LCJpc3MiOiJjb29scHkubmV0IiwibmJmIjoxNjI4MzE1NTY4fQ.r5cS1OIz8iJqrswAlo5-FStWNm9OP2LJchgVnVIhh9w' \
--data-raw ''

规则新增

基本信息

Path: /api/rules

Method: POST

接口描述:

请求参数

Headers

参数名称

参数值

是否必须

Content-Type

application/json

Body

名称

类型

是否必须

备注

ruleName

string

必须

规则名称

rule

string

必须

规则脚本内容

返回数据

名称

类型

是否必须

备注

success

boolean

非必须

状态

id

string

非必须

规则ID

ruleDesc

string

非必须

规则备注

ruleName

string

非必须

规则名

salience

string

非必须

规则优先级

curl --location --request POST 'http://localhost:8081/api/rules' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJDUDciLCJleHAiOjE2MjgzMjI3NjgsImp0aSI6ImFkbWluIiwiaWF0IjoxNjI4MzE1NTY4LCJpc3MiOiJjb29scHkubmV0IiwibmJmIjoxNjI4MzE1NTY4fQ.r5cS1OIz8iJqrswAlo5-FStWNm9OP2LJchgVnVIhh9w' \
--header 'Content-Type: text/plain' \
--data-raw '{"ruleName":"rule2","rule":"//规则名称为rule2,规则备注,执行优先级\nrule \"rule2\" \"rule-describtion\" salience 1\nbegin\n //过滤主题为aaa的消息才进行处理\n if Message.Topic == \"aaa\" {\n //反序列化消息中的载体\n payload = Core.FromJson(Message.Payload)\n //判断消息载体是否为空\n if isNil(payload) {\n println(\"parse error\")\n return\n }\n //实例化一个map用于转换消息体格式\n res = Core.MakeMap()\n //把原消息的msg内容付值到新消息体的m键中\n res[\"m\"] = payload[\"msg\"]\n //序列化新的消息体为json\n reMsg = Core.ToJson(res)\n //传送序列化是否失败\n if isNil(reMsg) {\n println(\"format error\")\n return\n }\n //打印序列化结果于服务端\n println(Core.String(reMsg))\n //实例化mqtt消息体\n newMsg = Core.MakeMessage()\n //设置新的接收主题\n newMsg.Topic = \"bbb/#\"\n //消息质量控制\n newMsg.QOS = 0\n newMsg.Retain = false\n //把新的载体付值到新消息载体中\n newMsg.Payload = reMsg\n //通过内核发布新消息\n err = Core.Publish(newMsg)\n if err != \"\" {\n println(err)\n }\n }\nend","method":"post"}'

规则修改

基本信息

Path: /api/rules

Method: PUT

接口描述:

请求参数

Headers

参数名称

参数值

是否必须

Content-Type

application/json

Body

名称

类型

是否必须

备注

ruleName

string

必须

规则名

rule

string

必须

规则脚本内容

返回数据

名称

类型

是否必须

备注

success

boolean

非必须

状态

id

string

非必须

规则ID

ruleDesc

string

非必须

规则备注

ruleName

string

非必须

规则名

salience

string

非必须

规则优先级

curl --location --request PUT 'http://localhost:8081/api/rules' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJDUDciLCJleHAiOjE2MjgzMjI3NjgsImp0aSI6ImFkbWluIiwiaWF0IjoxNjI4MzE1NTY4LCJpc3MiOiJjb29scHkubmV0IiwibmJmIjoxNjI4MzE1NTY4fQ.r5cS1OIz8iJqrswAlo5-FStWNm9OP2LJchgVnVIhh9w' \
--header 'Content-Type: text/plain' \
--data-raw '{"ruleName":"rule2","rule":"//规则名称为rule2,规则备注,执行优先级\nrule \"rule2\" \"rule-describtion\" salience 1\nbegin\n //过滤主题为aaa的消息才进行处理\n if Message.Topic == \"aaa\" {\n //反序列化消息中的载体\n payload = Core.FromJson(Message.Payload)\n //判断消息载体是否为空\n if isNil(payload) {\n println(\"parse error\")\n return\n }\n //实例化一个map用于转换消息体格式\n res = Core.MakeMap()\n //把原消息的msg内容付值到新消息体的m键中\n res[\"m\"] = payload[\"msg\"]\n //序列化新的消息体为json\n reMsg = Core.ToJson(res)\n //传送序列化是否失败\n if isNil(reMsg) {\n println(\"format error\")\n return\n }\n //打印序列化结果于服务端\n println(Core.String(reMsg))\n //实例化mqtt消息体\n newMsg = Core.MakeMessage()\n //设置新的接收主题\n newMsg.Topic = \"bbb/#\"\n //消息质量控制\n newMsg.QOS = 0\n newMsg.Retain = false\n //把新的载体付值到新消息载体中\n newMsg.Payload = reMsg\n //通过内核发布新消息\n err = Core.Publish(newMsg)\n if err != \"\" {\n println(err)\n }\n }\nend","method":"post"}'

规则列表

基本信息

Path: /api/rules

Method: GET

接口描述:

请求参数

Query

参数名称

是否必须

示例

current

?current=1&pageSize=10

pageSize

?current=1&pageSize=10

返回数据

名称

类型

是否必须

备注

current

number

非必须

当前页

data

object []

非必须

数据

├─ id

string

必须

规则ID

├─ ruleName

string

必须

规则名称

pageSize

number

非必须

页大小

success

boolean

非必须

操作结果

total

number

非必须

总记录数

curl --location --request GET 'http://localhost:8081/api/rules?current=1&pageSize=100' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJDUDciLCJleHAiOjE2MjgzMjI3NjgsImp0aSI6ImFkbWluIiwiaWF0IjoxNjI4MzE1NTY4LCJpc3MiOiJjb29scHkubmV0IiwibmJmIjoxNjI4MzE1NTY4fQ.r5cS1OIz8iJqrswAlo5-FStWNm9OP2LJchgVnVIhh9w'

规则详情

基本信息

Path: /api/rule/:ruleid

Method: GET

接口描述:

请求参数

路径参数

参数名称

示例

备注

ruleid

rule2

规则名称

返回数据

名称

类型

是否必须

备注

success

boolean

非必须

操作结果

data

object

非必须

数据

├─ rule

string

非必须

规则脚本内容

├─ ruleName

string

非必须

规则名称

curl --location --request GET 'http://localhost:8081/api/rule/rule1' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJDUDciLCJleHAiOjE2MjgzMjI3NjgsImp0aSI6ImFkbWluIiwiaWF0IjoxNjI4MzE1NTY4LCJpc3MiOiJjb29scHkubmV0IiwibmJmIjoxNjI4MzE1NTY4fQ.r5cS1OIz8iJqrswAlo5-FStWNm9OP2LJchgVnVIhh9w'

规则删除单个或删除所有

基本信息

Path: /api/rules

Method: DELETE

接口描述:

请求参数

Headers

参数名称

参数值

是否必须

Content-Type

application/json

Body

参数名称

参数类型

是否必须

示例

备注

ids

string[]

{"ids":["rule2"]}

删除单个规则需要传规则id,不传则删除所有规则

返回数据

名称

类型

是否必须

备注

success

boolean

非必须

状态

curl --location --request DELETE 'http://localhost:8081/api/rules' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJDUDciLCJleHAiOjE2MjgzMjI3NjgsImp0aSI6ImFkbWluIiwiaWF0IjoxNjI4MzE1NTY4LCJpc3MiOiJjb29scHkubmV0IiwibmJmIjoxNjI4MzE1NTY4fQ.r5cS1OIz8iJqrswAlo5-FStWNm9OP2LJchgVnVIhh9w' \
--header 'Content-Type: text/plain' \
--data-raw '{"ids":["rule2"]}'