ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

物联网平台与kettle技术的结合(三)

2021-06-05 11:00:22  阅读:157  来源: 互联网

标签:kettle name 平台 接口 联网 note 11eb nickname id


上篇文章主要介绍了将tb的websocket接口进行透传,转化为业务所需要的格式。上上篇文章讲得是如何将tb的rest接口进行透传,转化为标准的格式。  基于以上两篇文章属于对单接口的改造能力,本篇文章就介绍一下如何将tb的多个接口进行聚合,以满足复杂的业务场景。

问题 :

需求:查询某资产所包含的所有设备(出参应包含设备名称,设备描述,设备状态)。

分析:请求参数肯定是资产id,查看tb平台的api,发现只能根据资产id获取该资产包含的所有设备id。也就是说只能获取到资产和设备的关系。如果想获取设备的详细信息(设备名称,设备描述等)是需要设备相关的api接口去解决的。当然,tb提供了根据设备id获取设备详情信息的接口。这就需要聚合接口来查询了。之前我介绍过kettle平台的强大功能,kettle善于处理多数据源的数据聚合,善于处理数据协议与格式的转换。很明显是非常适合用来解决此类问题的。下面是tb相关接口(关系接口和设备接口)

方案:

采用kettle平台处理。下图为编写的kettle转换文件。

 查看“REST Client”节点,你会发现调用的就是tb的关系接口,根据资产id将资产与设备的关系查询出来。

 查看“解决result接口”,是通过js去调用tb的设备详情接口来实现的,并最终将数据封装成标准的json格式。

将kettle转换文件上传到kettle平台,并进行测试。

最终输出结果如下:

{
    "success":true,
    "resultCode":"00",
    "resultMsg":"",
    "result":[
        {
            "name":"1_G03",
            "id":"53858b20-8554-11eb-bccd-c11a74ecd150",
            "nickname":"出线柜",
            "note":"出线柜"
        },
        {
            "name":"1_G02",
            "id":"5386eab0-8554-11eb-bccd-c11a74ecd150",
            "nickname":"电源计量柜",
            "note":"电源计量柜"
        },
        {
            "name":"1_G01",
            "id":"53884a40-8554-11eb-bccd-c11a74ecd150",
            "nickname":"电源进线",
            "note":"电源进线"
        },
        {
            "name":"1_G05",
            "id":"538a4610-8554-11eb-bccd-c11a74ecd150",
            "nickname":"出线柜",
            "note":"出线柜"
        },
        {
            "name":"1_G01_ZB",
            "id":"538bf3c0-8554-11eb-bccd-c11a74ecd150",
            "nickname":null,
            "note":null
        },
        {
            "name":"1_G04",
            "id":"53903980-8554-11eb-bccd-c11a74ecd150",
            "nickname":"出线柜",
            "note":"出线柜"
        },
        {
            "name":"1_G06",
            "id":"53928370-8554-11eb-bccd-c11a74ecd150",
            "nickname":"出线柜",
            "note":"出线柜"
        },
        {
            "name":"1_G03_ZB",
            "id":"946e6cf0-878f-11eb-b0f9-870b9c7d858c",
            "nickname":null,
            "note":null
        },
        {
            "name":"1_G04_ZB",
            "id":"a9b92b90-878f-11eb-b0f9-870b9c7d858c",
            "nickname":null,
            "note":null
        },
        {
            "name":"1_G05_ZB",
            "id":"b48ffb20-878f-11eb-b0f9-870b9c7d858c",
            "nickname":null,
            "note":null
        },
        {
            "name":"1_G06_ZB",
            "id":"baf58de0-878f-11eb-b0f9-870b9c7d858c",
            "nickname":null,
            "note":null
        }
    ]
}

 总结:

本篇文章介绍了如何通过kettle平台将tb的接口进行聚合,来满足实际的业务需求。如果遇到复杂的业务场景,接口聚合是不可避免的,使用kettle平台作为中台是一个很好的选择,因为通过kettle平台几乎可以满足所有的业务聚合转换需求。

标签:kettle,name,平台,接口,联网,note,11eb,nickname,id
来源: https://blog.csdn.net/qingxinziran007/article/details/117586692

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有