阿里云API芝士堂[物模型管理][模型]

简介: 将近一年没有关注阿里云物联网的api,最近看了下官网的文档,api列表中赫然多出了物模型的管理和使用两大类.这也难怪,物模型被誉为物联网世界的原子.通过物模型可以有效的使用属性,服务和事件就可以表示出纷繁复杂和多姿多彩的物联网世界中的各种类型的设备;目前物模型并没有统一的规范,所以阿里,小米,京东和中移动等大厂,都是各自制定一套自己的规范;阿里云这面主要是在自家的ICA联盟定义了一套物模型的规范.本文也从实践角度分享一下物模型相关api的使用.

将近一年没有关注阿里云物联网的api,最近看了下官网的文档,api列表中赫然多出了物模型的管理和使用两大类.这也难怪,物模型被誉为物联网世界的原子.通过物模型可以有效的使用属性,服务和事件就可以表示出纷繁复杂和多姿多彩的物联网世界中的各种类型的设备;目前物模型并没有统一的规范,所以阿里,小米,京东和中移动等大厂,都是各自制定一套自己的规范;阿里云这面主要是在自家的ICA联盟定义了一套物模型的规范.本文也从实践角度分享一下物模型相关api的使用.

物模型管理这类api一共有18个,所有物模型的api接口都是基于产品的,所以需要一个以创建的产品id:productkey. 按照功能特性又可以分为模型,模板,语言和脚本四个小类.下面就看一下第一小类模型的6个api.
它们分别是:创建 查询 更新 发布 拷贝 删除
首先是创建一个物模型,使用CreateThingModel这个api接口;这个接口需要使用到两个参数:产品的id号以及创建物模型的三元素[属性.服务.事件],为了易于理解,我们以单独创建一个物模型的属性为例,创建一束光的属性,标识符和名称都为LightVal,取值范围为1-10,访问权限为可读写,那么可以使用如下格式:
XYsayFrO.IoT.Srv.CreateThingModel.a141rgUXgFl.{"properties":[{"identifier":"LightVal","dataSpecs":{"max":"10","min":"1","dataType":"INT"},"std":false,"custom":true,"dataType":"INT","rwFlag":"READ_WRITE","productKey":"a141rgUXgFl","required":false,"customFlag":true,"name":"LightVal"}]}.
运行脚本解释器,可以看到创建成功的提示:

因为创建模型的接口,返回的信息只有成功和失败,过于精简,所以需要我们使用查询物模型接口来确认一下.这个查询的接口为QueryThingModel,后面只需要带一个产品id号的参数就可以啦;具体格式和示例如下:
XYsayFrO.IoT.Srv.QueryThingModel.a141rgUXgFl.
返回的结果截图界面如下:

可以看到绿色圈的信息和我们要求创建的信息一致;

物模型创建好后,难免根据实际情况需要修改更新,这时候就需要用到第三个接口UpdateThingModel物模型更新api了,此接口和第一个创建物模型接口类似,也是需要产品id号和物模型json格式的信息.比如我们需要现在将之前的创建号的光束改为最大值为100,名字改为Light,那么就可以使用下面的格式:
XYsayFrO.IoT.Srv.UpdateThingModel.a141rgUXgFl.{"properties":[{"identifier":"LightVal","dataSpecs":{"max":"100","min":"1","step":"1","dataType":"INT"},"dataType":"INT","rwFlag":"READ_WRITE","productKey":"a141rgUXgFl","required":false,"name":"Light"}]}.
如果更新成功,就会返回如下界面:

这个时候,我们就可以再使用之前一样的查询命令去看更新后的信息.
XYsayFrO.IoT.Srv.QueryThingModel.a141rgUXgFl.
可以看到返回的结果已经变为最大值为100了,说明之前的更新确实成功了;

当我们将物模型创建好,又修改好了以后,就可以正式发布了,这时需要使用第四个接口,PublishThingModel这个api来发布,这里需要两个参数,一个为产品id,一个为需要发布的版本号.
XYsayFrO.IoT.Srv.PublishThingModel.a141rgUXgFl.V0x0x9.
发布成功后,会有如下信息:

当我们的产品很多,创建的物模型相似度又非常高的时候,可以使用第五个拷贝接口,具体名称为CopyThingModel,根据这个接口的实际功能,需要三个参数分别为:拷贝源和目的的产品id,以及源产品的发布版本号.
比如,我们现在把产品id为a141rgUXgFl的产品中物模型,拷贝到产品id为a17hjshDgiK的产品中,物模型的版本号为V0x0x9,那么就可以使用下面的格式:
XYsayFrO.IoT.Srv.CopyThingModel.a141rgUXgFl.a17hjshDgiK.V0x0x9.

最后一个接口为删除产品的物模型,这个api只需要一个参数:需要删除产品所对应的产品id.
XYsayFrO.IoT.Srv.DeleteThingModel.a141rgUXgFl.
运行后,会返回如下信息:

这个时候再去使用下面的命令查询,会返回所有相关的空信息.
XYsayFrO.IoT.Srv.QueryThingModel.a141rgUXgFl.

本次实践演示程序下载连接:
http://xysuger.xunyun17.xyz/v0.1.0.1模型.rar

目录
相关文章
|
1天前
|
人工智能 API
阿里云微服务引擎及 API 网关 2024 年 4 月产品动态
阿里云微服务引擎及 API 网关 2024 年 4 月产品动态。
|
1天前
|
运维 Cloud Native 应用服务中间件
阿里云微服务引擎 MSE 及 API 网关 2024 年 04 月产品动态
阿里云微服务引擎 MSE 面向业界主流开源微服务项目, 提供注册配置中心和分布式协调(原生支持 Nacos/ZooKeeper/Eureka )、云原生网关(原生支持Higress/Nginx/Envoy,遵循Ingress标准)、微服务治理(原生支持 Spring Cloud/Dubbo/Sentinel,遵循 OpenSergo 服务治理规范)能力。API 网关 (API Gateway),提供 APl 托管服务,覆盖设计、开发、测试、发布、售卖、运维监测、安全管控、下线等 API 生命周期阶段。帮助您快速构建以 API 为核心的系统架构.满足新技术引入、系统集成、业务中台等诸多场景需要。
|
5天前
|
存储 自然语言处理 搜索推荐
Elasticsearch 8.10 同义词管理新篇章:引入同义词 API
Elasticsearch 8.10 同义词管理新篇章:引入同义词 API
12 0
|
5天前
|
存储 数据可视化 数据建模
阿里云大佬叮嘱我务必要科普这个 Elasticsearch API
阿里云大佬叮嘱我务必要科普这个 Elasticsearch API
13 0
|
6天前
|
JSON 文字识别 算法
C# 通过阿里云 API 实现企业营业执照OCR识别
C# 通过阿里云 API 实现企业营业执照OCR识别
|
6天前
|
JSON API C#
C# 通过阿里云 API 实现企业工商数据查询
C# 通过阿里云 API 实现企业工商数据查询
|
13天前
|
SQL 数据管理 API
数据管理DMS产品使用合集之阿里云DMS提供API接口来进行数据导出功能吗
阿里云数据管理DMS提供了全面的数据管理、数据库运维、数据安全、数据迁移与同步等功能,助力企业高效、安全地进行数据库管理和运维工作。以下是DMS产品使用合集的详细介绍。
|
14天前
|
弹性计算 运维 Serverless
Serverless 应用引擎产品使用之在阿里函数计算中,使用阿里云API或SDK从函数计算调用ECS实例的服务如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
41 4
|
1天前
|
安全 API 开发者
智能体-Agent能力升级!新增Assistant API & Tools API服务接口
ModelScope-Agent是一个交互式创作空间,它支持LLM(Language Model)的扩展能力,例如工具调用(function calling)和知识检索(knowledge retrieval)。它已经对相关接口进行了开源,以提供更原子化的应用LLM能力。用户可以通过Modelscope-Agent上的不同代理(agent),结合自定义的LLM配置和消息,调用这些能力。
|
5天前
|
JSON 搜索推荐 数据挖掘
电商数据分析的利器:电商关键词搜索API接口(标题丨图片丨价格丨链接)
淘宝关键词搜索接口为电商领域的数据分析提供了丰富的数据源。通过有效利用这一接口,企业和研究人员可以更深入地洞察市场动态,优化营销策略,并提升用户体验。随着电商平台技术的不断进步,未来的API将更加智能和个性化,为电商行业带来更多的可能性。