功能性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,不传则删除所有规则

返回数据

名称
类型
是否必须
备注