通过规则引擎发布HTTP服务

原理: 利用网络组件中的HTTP服务,向外暴露API接口

创建HTTP服务

  1. 进入系统: 设备接入-网络组件-新建组件

  2. 输入组件信息,组件类型选择HTTP服务。

  3. 点击保存进行保存。
    http服务

  4. 启动服务。
    http-server-start

创建规则实例

  1. 进入系统: 规则引擎-规则实例-创建规则

  2. 输入id、名称。

  3. 点击确定进行保存。

创建规则

配置监听HTTP

  1. 点击规则实例上的编辑按钮。

进入设计器

  1. 在工作区中拖入监听HTTP节点。

http-listener

  1. 双击节点进入编辑页。

update-http-listener

添加处理逻辑

  1. 在工作区中拖入函数节点。

  2. 双击节点进入编辑页。

    此处将

    1. {
    2. "deviceId": "test001",
    3. "data": {
    4. "temp":123,
    5. "name":"abc"
    6. }
    7. }

    转换为

    1. {
    2. "sn": "test001",
    3. "data": {
    4. "property": "abc",
    5. "value": 123
    6. }
    7. }

    为例。
    update-function

转换节点中的代码为:

  1. var ctx = context;
  2. handler.onMessage(function(ruleData){
  3. var data = ruleData.data;
  4. ctx.getLogger().warn("ruleData:{}",ruleData);
  5. var oldData = data.payload;
  6. var result = {
  7. payload: {
  8. sn: oldData.deviceId,
  9. data: {
  10. property: oldData.data.name,
  11. value: oldData.data.temp
  12. }
  13. }
  14. };
  15. return result;
  16. })

配置响应HTTP

在工作区中拖入响应HTTP节点。
http-response

配置完成后启动规则

测试

此处以postman来测试此规则。

postman

请求成功并响应预期中的数据则通过。

回到规则引擎设计器中,点击右上角调试按钮,将展示各节点运行产生的数据。

debug