IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> emqx通过http API创建规则 -> 正文阅读

[网络协议]emqx通过http API创建规则

emqx通过http API创建规则


如需转载请标明出处:http://blog.csdn.net/itas109
QQ技术交流群:129518033

环境: emqx: v4.3.8

相关阅读:
emq获取所有发布内容

emqx HTTP API基础

HTTP API

EMQ X 提供了 HTTP API 以实现与外部系统的集成,例如查询客户端信息、发布消息和创建规则等。

EMQ X 的 HTTP API 服务默认监听 8081 端口,可通过 etc/plugins/emqx_management.conf 配置文件修改监听端口,或启用 HTTPS 监听。EMQ X 4.0.0以后的所有 API 调用均以 api/v4 开头。

接口安全

EMQ X 的 HTTP API 使用Basic 认证方式,idpassword 须分别填写 AppID 和 AppSecret。 默认的 AppID 和 AppSecret 是:admin/public。你可以在 Dashboard 的左侧菜单栏里,选择 “管理” -> “应用” 来修改和添加 AppID/AppSecret。

响应码

HTTP 状态码 (status codes)

EMQ X 接口在调用成功时总是返回 200 OK,响应内容则以 JSON 格式返回。

可能的状态码如下:

Status CodeDescription
200成功,返回的 JSON 数据将提供更多信息
400客户端请求无效,例如请求体或参数错误
401客户端未通过服务端认证,使用无效的身份验证凭据可能会发生
404找不到请求的路径或者请求的对象不存在
500服务端处理请求时发生内部错误

返回码 (result codes)

EMQ X 接口的响应消息体为 JSON 格式,其中总是包含返回码 code

可能的返回码如下:

Return CodeDescription
0成功
101RPC 错误
102未知错误
103用户名或密码错误
104空用户名或密码
105用户不存在
106管理员账户不可删除
107关键请求参数缺失
108请求参数错误
109请求参数不是合法 JSON 格式
110插件已开启
111插件已关闭
112客户端不在线
113用户已存在
114旧密码错误
115不合法的主题

获取Broker基本信息

GET /api/v4/brokers/{node}

返回集群下所有节点的基本信息。

Path Parameters:

NameTypeRequiredDescription
nodeStringFalse节点名字,如 "emqx@127.0.0.1。 不指定时返回所有节点的信息

代码

const request = require('request');

const authStr = "admin:public";

let options = {
  'method': 'GET',
  'url': 'http://localhost:8081/api/v4/brokers/',
  'headers': {
    'Authorization': 'Basic ' + Buffer.from(authStr, 'ascii').toString('base64')
  }
};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});

返回

{
    "data": [
        {
            "version": "4.3.8",
            "uptime": "19 hours, 34 minutes, 51 seconds",
            "sysdescr": "EMQ X",
            "otp_release": "23.0/11.0",
            "node_status": "Running",
            "node": "emqx@127.0.0.1",
            "datetime": "2021-10-19 10:29:03"
        }
    ],
    "code": 0
}

设置规则引擎

POST /api/v4/rules

创建规则,返回规则 ID。

Parameters (json):

NameTypeRequiredDescription
rawsqlStringTrue规则的 SQL 语句
actionsArrayTrue动作列表
- actions[0].nameStringTrue动作名称
- actions[0].paramsObjectTrue动作参数。参数以 key-value 形式表示。 详情可参看添加规则的示例
descriptionStringFalse可选,规则描述

代码

const request = require('request');

const authStr = "admin:public";

let options = {
    'method': 'POST',
    'url': 'http://localhost:8081/api/v4/rules/',
    'headers': {
        'Authorization': 'Basic ' + Buffer.from(authStr, 'ascii').toString('base64'),
        'Content-Type': 'application/json'
    },
    body: JSON.stringify({
        "rawsql": "SELECT * FROM \"#\"",
        "actions": [{
            "params": {
                "target_topic": "abc",
                "target_qos": 0,
                "payload_tmpl": "event: ${event}\ntopic: ${topic}\npayload: ${payload}"
            },
            "name": "republish"
        }],
        "description": "all publish message"
    })

};
request(options, function (error, response) {
    if (error) throw new Error(error);
    console.log(response.body);
});

获取规则引擎信息

GET /api/v4/rules/{rule_id}

获取某个规则的详情,包括规则的 SQL、Topics 列表、动作列表等。还会返回当前规则和动作的统计指标的值。

Path Parameters:

NameTypeRequiredDescription
rule_idStringFalse可选,Rule ID。如不指定 rule_id 则 以数组形式返回所有已创建的规则

代码

const request = require('request');

const authStr = "admin:public";

let options = {
  'method': 'GET',
  'url': 'http://localhost:8081/api/v4/rules/',
  'headers': {
    'Authorization': 'Basic ' + Buffer.from(authStr, 'ascii').toString('base64')
  }
};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});

License

License under CC BY-NC-ND 4.0: 署名-非商业使用-禁止演绎


Reference:

  1. https://docs.emqx.cn/enterprise/v4.3/advanced/http-api.html
  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-10-27 13:09:19  更:2021-10-27 13:11:14 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 5:35:29-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码