产品的SDK示例
以下是查询产品数据示例
使用时请将如下示例中的userAccessKey和userSecret分别替换成您的accessKey 和secret(您需在安服优物联云管理后台个人中心页面查看您的账号的accessKey和secret)。
package com.afu.common.sdk.test;
import com.afu.common.sdk.config.AfuOpenApiConfig;
import com.afu.common.sdk.dataobject.ProductInfo;
import com.afu.common.sdk.mqtt.AfuOpenApiBase;
import com.afu.common.sdk.openapi.AfuOpenApi;
public class TestOpenApi {
public static void main(String[] args) throws Exception {
//传入userAccessKey和userSecret
AfuOpenApiConfig afuOpenApiConfig = new AfuOpenApiConfig();
afuOpenApiConfig.setAccessKey("userAccessKey");
afuOpenApiConfig.setSecret("userSecret");
AfuOpenApiBase afuOpenApiBase = new AfuOpenApiBase(afuOpenApiConfig);
//实例化AfuOpenApi,其中方法能直接进行相应操作
AfuOpenApi afuOpenApi =new AfuOpenApi(afuOpenApiBase);
ProductInfo productInfo=new ProductInfo();
productInfo.setUserCode("userCode");
String product = afuOpenApi.getProductList(productInfo);
System.out.println("得到的返回数据:"+product);
}
}
在上述代码中的第18行中,开发者在实例化AfuOpenApi对象成功后,在该对象下有多种方法,以上是其中一种(查询产品列表),下面将对其中方法进行使用介绍:
返回数据介绍
名称 | 类型 | 示例值 | 描述 |
---|---|---|---|
message | String | success | 返回信息 |
model | Object | success | 返回结果实体 |
status | String | 200 | 状态码,请参见 错误码文档。 |
产品相关方法介绍:
查询产品列表:getProductList
请求参数:
该请求参数为实体类 ProductInfo 的属性,开发者只需实例化一个ProductInfo对象,并传入相应属性即可
名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
userCode | String | 是 | “sahdajsedq” | 用户编码 |
返回数据实体示例
{
"status":200,
"message":"success",
[
{
"userCode": "USERCODE", //用户编码
"productCode": "PRODUCTCODE", //产品编码
"name": "NAME", //产品名称
"category": 1, //产品品类(1:标准品类 2:自定义)
"nodeType": 1, //节点类型(1:节点直连 2:网关类型 3:网关子设备)
"networkingMode": 1, //联网方式(1:WIFI 2:蜂窝 3:以太网 4:其他)
"dataFormat": 2, //数据格式(1:自定义格式 2:标准JSON)
"authMode": "1", //认证方式
"productKey": "PRODUCTKEY", //系统生成开放产品key
"productSecret": "PRODUCTSECRET", //系统生成开放产品密钥
"remarks": "REMARKS", //产品描述
"createTime": "2021-05-25T11:11:58.000+00:00"
},
{...}
]
}
查询产品:getProduct
请求参数:
该请求参数为实体类 ProductInfo 的属性,开发者只需实例化一个ProductInfo对象,并传入相应属性即可
名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
productCode | String | 是 | “sahdajsedq” | 产品编码 |
返回数据实体示例
{
"status":200,
"message":"success",
"model":{
"deviceSize": "0",
"productInfo": {"userCode": "USERCODE", //用户编码
"productCode": "PRODUCTCODE", //产品编码
"name": "NAME", //产品名称
"category": 1, //产品品类(1:标准品类 2:自定义)
"nodeType": 1, //节点类型(1:节点直连 2:网关类型 3:网关子设备)
"networkingMode": 1, //联网方式(1:WIFI 2:蜂窝 3:以太网 4:其他)
"dataFormat": 2, //数据格式(1:自定义格式 2:标准JSON)
"authMode": "1", //认证方式
"productKey": "PRODUCTKEY", //系统生成开放产品key
"productSecret": "PRODUCTSECRET", //系统生成开放产品密钥
"remarks": "REMARKS", //产品描述
"createTime": "2021-05-25T11:11:58.000+00:00"
}
}
}
删除产品:deleteProduct
请求参数:
该请求参数为实体类 ProductInfo 的属性,开发者只需实例化一个ProductInfo对象,并传入相应属性即可
名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
productCode | String | 是 | “sahdajsedq” | 产品编码 |
返回数据实体示例
{
"status":200,
"message":"success"
}
修改产品:updateProduct
请求参数:
该请求参数为实体类 ProductInfo 的属性,开发者只需实例化一个ProductInfo对象,并传入相应属性即可
名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
productCode | String | 是 | “sasdada” | 产品编码 |
userCode | String | 是 | “sahdajsedq” | 用户编码 |
name | String | 是 | 智能灯 | 产品名称 |
remarks | String | 否 | 智能灯真好看 | 描述 |
返回数据实体示例
{
"status":200,
"message":"success"
}
创建产品:saveProduct
请求参数:
该请求参数为实体类 ProductInfo 的属性,开发者只需实例化一个ProductInfo对象,并传入相应属性即可
名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
userCode | String | 是 | “sahdajsedq” | 用户编码 |
name | String | 是 | 智能灯 | 产品名称 |
category | Integer | 是 | 1 | 产品品类(1:标准品类 2:自定义) |
nodeType | Integer | 是 | 1 | 节点类型(1:节点直连 2:网关类型 3:网关子设备) |
networkingMode | Integer | 是 | 1 | 联网方式(1:WIFI 2:蜂窝 3:以太网 4:其他) |
dataFormat | Integer | 是 | 1 | 数据格式(1:自定义格式 2:标准JSON) |
authMode | String | 是 | 1 | 认证方式 |
remarks | String | 否 | 智能灯真好看 | 描述 |
返回数据实体示例
{
"status":200,
"message":"success",
"model":{
"userCode": "USERCODE", //用户编码
"productCode": "PRODUCTCODE", //产品编码
"name": "NAME", //产品名称
"category": 1, //产品品类(1:标准品类 2:自定义)
"nodeType": 1, //节点类型(1:节点直连 2:网关类型 3:网关子设备)
"networkingMode": 1, //联网方式(1:WIFI 2:蜂窝 3:以太网 4:其他)
"dataFormat": 2, //数据格式(1:自定义格式 2:标准JSON)
"authMode": "1", //认证方式
"productKey": "PRODUCTKEY", //系统生成开放产品key
"productSecret": "PRODUCTSECRET", //系统生成开放产品密钥
"remarks": "REMARKS", //产品描述
"createTime": "2021-05-25T11:11:58.000+00:00"
}
}
设备的SDK示例
以下是设备分页列表数据示例
使用时请将如下示例中的userAccessKey和userSecret分别替换成您的accessKey 和secret(您需在安服优物联云管理后台个人中心页面查看您的账号的accessKey和secret)。
package com.afu.common.sdk.test;
import com.afu.common.sdk.config.AfuOpenApiConfig;
import com.afu.common.sdk.dataobject.DeviceInfo;
import com.afu.common.sdk.dataobject.PageInfo;
import com.afu.common.sdk.mqtt.AfuOpenApiBase;
import com.afu.common.sdk.openapi.AfuOpenApi;
import net.sf.json.JSONObject;
public class TestOpenApi {
public static void main(String[] args) throws Exception {
//传入userAccessKey和userSecret
AfuOpenApiConfig afuOpenApiConfig = new AfuOpenApiConfig();
afuOpenApiConfig.setAccessKey("userAccessKey");
afuOpenApiConfig.setSecret("userSecret");
AfuOpenApiBase afuOpenApiBase = new AfuOpenApiBase(afuOpenApiConfig);
//实例化AfuOpenApi,其中方法能直接进行相应操作
AfuOpenApi afuOpenApi =new AfuOpenApi(afuOpenApiBase);
DeviceInfo deviceInfo = new DeviceInfo();
deviceInfo.setUserCode("usercode");
PageInfo pageInfo=new PageInfo();
pageInfo.setPageNum("1");
pageInfo.setPageSize("2");
String deviceList = afuOpenApi.getDeviceList(deviceInfo, pageInfo);
System.out.println("得到的返回数据:"+deviceList);
}
}
在上述代码中的第20行中,开发者在实例化AfuOpenApi对象成功后,在该对象下有多种方法,以上是其中一种(查询设备分页列表),下面将对其中方法进行使用介绍:
返回数据介绍
名称 | 类型 | 示例值 | 描述 |
---|---|---|---|
message | String | success | 返回信息 |
model | Object | success | 返回结果实体 |
status | String | 200 | 状态码,请参见 错误码文档。 |
设备相关方法介绍:
查询分页设备列表:getDeviceList
请求参数1:
该请求参数为实体类 DeviceInfo 的属性,开发者只需实例化一个DeviceInfo 对象,并传入相应属性即可
名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
userCode | String | 是 | “sahdajsedq” | 用户编码 |
productCode | String | 否 | “sahdajsedq” | 产品编码 |
deviceName | String | 否 | 智能灯 | 设备名称 |
remarksName | String | 否 | “好看” | 描述备注 |
请求参数2:
该请求参数为实体类 PageInfo 的属性,开发者只需实例化一个PageInfo 对象,并传入相应属性即可
名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
pageNum | String | 是 | “1” | 当前页码 |
pageSize | String | 是 | “2” | 页量 |
返回数据实体示例
{
"status":200,
"message":"success",
"model":{
"list": [ //设备数据列表
{
"userCode": "USERCODE", //用户编码
"deviceCode": "DEVICECODE", //设备编码
"productCode": "PRODUCTCODE", //IOT产品编码
"deviceName": "DEVICENAME", //设备名称
"status": 0, //设备状态(0:未激活 1:在线 2:离线 )
"deviceSecret": "DEVICESECRET", //系统生成开放设备密钥
"remarks": "REMARKS", //描述备注
"createTime": "2021-05-22T03:51:57.000+00:00" //创建时间
},
{......}
],
"totalCount": 16, //总记录数
"pageNum": 1, //当前页码
"totalPage": 8 //总页数
}
}
查询设备:getDevice
请求参数:
该请求参数为实体类 DeviceInfo 的属性,开发者只需实例化一个DeviceInfo 对象,并传入相应属性即可
名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
deviceCode | String | 是 | “sahdajsedq” | 设备编码 |
返回数据实体示例
{
"status":200,
"message":"success",
"model":{
"deviceInfo": { //设备信息实体类
"userCode": "USERCODE", //用户编码
"deviceCode": "DEVICECODE", //设备编码
"productCode": "PRODUCTCODE", //IOT产品编码
"deviceName": "DEVICENAME", //设备名称
"status": 0, //设备状态(0:未激活 1:在线 2:离线 )
"deviceSecret": "DEVICESECRET", //系统生成开放设备密钥
"remarks": "REMARKS", //描述备注
"createTime": "2021-05-25T03:51:57.000+00:00" //创建时间
}
}
}
删除设备:deleteDevice
请求参数:
该请求参数为实体类 DeviceInfo 的属性,开发者只需实例化一个DeviceInfo 对象,并传入相应属性即可
名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
deviceCode | String | 是 | “sahdajsedq” | 设备编码 |
返回数据实体示例
{
"status":200,
"message":"success"
}
修改设备:updateDevice
请求参数:
该请求参数为实体类 DeviceInfo 的属性,开发者只需实例化一个DeviceInfo 对象,并传入相应属性即可
名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
deviceCode | String | 是 | “sahdajsedq” | 设备编码 |
remarksName | String | 否 | “sahdajsedq” | 设备备注 |
deviceConnection | String | 否 | “sahdajsedq” | 外接设备码 |
返回数据实体示例
{
"status":200,
"message":"success"
}
创建设备:saveDevice
请求参数:
该请求参数为实体类 DeviceInfo 的属性,开发者只需实例化一个DeviceInfo 对象,并传入相应属性即可
名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
userCode | String | 是 | “sahdajsedq” | 用户编码 |
productCode | String | 是 | “sahdajsedq” | 产品编码 |
productKey | String | 是 | “hjsdksah” | 系统生成开放产品key |
deviceName | String | 是 | 智能灯 | 设备名称 |
remarksName | String | 否 | “好看” | 描述备注 |
返回数据实体示例
{
"status":200,
"message":"success",
"model"[{ //设备信息实体类
"userCode": "USERCODE", //用户编码
"deviceCode": "DEVICECODE", //设备编码
"productCode": "PRODUCTCODE", //IOT产品编码
"deviceName": "DEVICENAME", //设备名称
"status": 0, //设备状态(0:未激活 1:在线 2:离线 )
"deviceSecret": "DEVICESECRET", //系统生成开放设备密钥
"remarks": "REMARKS", //描述备注
"createTime": "2021-05-25T03:51:57.000+00:00" //创建时间
}]
}
批量创建设备:saveBatchDevice
请求参数1:
该请求参数为实体类 DeviceInfo 的属性,开发者只需实例化一个DeviceInfo 对象,并传入相应属性即可
名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
userCode | String | 是 | “sahdajsedq” | 用户编码 |
productCode | String | 是 | “sahdajsedq” | 产品编码 |
productKey | String | 是 | “hjsdksah” | 系统生成开放产品key |
deviceName | String | 是 | 智能灯 | 设备名称 |
remarksName | String | 否 | “好看” | 描述备注 |
请求参数2:
该请求参数为String类型,表示需要批量创建的数量,开发者只需传入要批量创建的数量即可
名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
batchNum | String | 是 | “11” | 批量创建的数量 |
返回数据实体示例
{
"status":200,
"message":"success",
"model"[{ //设备信息实体类
"userCode": "USERCODE", //用户编码
"deviceCode": "DEVICECODE", //设备编码
"productCode": "PRODUCTCODE", //IOT产品编码
"deviceName": "DEVICENAME", //设备名称
"status": 0, //设备状态(0:未激活 1:在线 2:离线 )
"deviceSecret": "DEVICESECRET", //系统生成开放设备密钥
"remarks": "REMARKS", //描述备注
"createTime": "2021-05-25T03:51:57.000+00:00" //创建时间
},{......}]
}
Topic的SDK示例
以下是查询Topic列表数据示例
使用时请将如下示例中的userAccessKey和userSecret分别替换成您的accessKey 和secret(您需在安服优物联云管理后台个人中心页面查看您的账号的accessKey和secret)。
package com.afu.common.sdk.test;
import com.afu.common.sdk.config.AfuOpenApiConfig;
import com.afu.common.sdk.dataobject.ProductTopicInfo;
import com.afu.common.sdk.mqtt.AfuOpenApiBase;
import com.afu.common.sdk.openapi.AfuOpenApi;
import net.sf.json.JSONObject;
public class TestOpenApi {
public static void main(String[] args) throws Exception {
//传入userAccessKey和userSecret
AfuOpenApiConfig afuOpenApiConfig = new AfuOpenApiConfig();
afuOpenApiConfig.setAccessKey("userAccessKey");
afuOpenApiConfig.setSecret("userSecret");
AfuOpenApiBase afuOpenApiBase = new AfuOpenApiBase(afuOpenApiConfig);
//实例化AfuOpenApi,其中方法能直接进行相应操作
AfuOpenApi afuOpenApi =new AfuOpenApi(afuOpenApiBase);
ProductTopicInfo productTopicInfo=new ProductTopicInfo();
productTopicInfo.setProductCode("df23bf853ddf4e5e90fd335cf1e44c41");
String topicList = afuOpenApi.getTopicList(productTopicInfo);
System.out.println("得到的返回数据:"+topicList);
}
}
在上述代码中的第20行中,开发者在实例化AfuOpenApi对象成功后,在该对象下有多种方法,以上是其中一种(查询Topic列表),下面将对其中方法进行使用介绍:
返回数据介绍
名称 | 类型 | 示例值 | 描述 |
---|---|---|---|
message | String | success | 返回信息 |
model | Object | success | 返回结果实体 |
status | String | 200 | 状态码,请参见 错误码文档。 |
Topic相关方法介绍:
查询Topic列表:getTopicList
请求参数:
该请求参数为实体类 ProductTopicInfo的属性,开发者只需实例化一个ProductTopicInfo对象,并传入相应属性即可
名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
productCode | String | 是 | “sahdajsedq” | 产品编码 |
返回数据实体示例
{
"status":200,
"message":"success",
"model":[{
"topicCode": "TOPICCODE", //产品topic编码
"productCode": "PRODUCTCODE", //IOT产品编码
"topicType": 1, //topic类型(1:基础通信 2:物模型通信 3:自定义)
"functionType": 1, //功能类型(1:OTA升级 2:设备标签 3:时钟同步 4:设备影子 5:配置更新
//6:广播 7:属性上报 8:属性设置 9:事件上报 10:服务调用
//注意:如果topicType为3自定义,则没有此字段值)
"topicName": "TOPICNAME", //产品topic类名称
"authorityType": 1, //权限类型(1:发布 2:订阅 3:发布与订阅)
"remarks": "REMARKS", //描述
"createTime": "2021-05-25T11:11:58.000+00:00" //创建时间
},
{ ...... }
]
}
删除Topic:deleteTopic
请求参数:
该请求参数为实体类 ProductTopicInfo的属性,开发者只需实例化一个ProductTopicInfo对象,并传入相应属性即可
名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
topicCode | String | 是 | “sahdajsedq” | 产品topic编码 |
返回数据实体示例
{
"status":200,
"message":"success"
}
修改Topic:updateTopic
请求参数:
该请求参数为实体类 ProductTopicInfo的属性,开发者只需实例化一个ProductTopicInfo对象,并传入相应属性即可
名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
topicCode | String | 是 | “sahdajsedq” | 产品topic编码 |
topicName | String | 是 | “sahdajsedq” | 产品topic类名称 |
authorityType | Integer | 是 | 1 | 权限类型(1:发布 2:订阅 3:发布与订阅) |
remarks | String | 否 | “好看” | 描述 |
返回数据实体示例
{
"status":200,
"message":"success"
}
创建Topic:saveTopic
请求参数:
该请求参数为实体类 ProductTopicInfo的属性,开发者只需实例化一个ProductTopicInfo对象,并传入相应属性即可
名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
topicCode | String | 是 | “sahdajsedq” | 产品topic编码 |
topicName | String | 是 | “sahdajsedq” | 产品topic类名称 |
authorityType | Integer | 是 | 1 | 权限类型(1:发布 2:订阅 3:发布与订阅) |
remarks | String | 否 | “好看” | 描述 |
返回数据实体示例
{
"status": 200,
"message": "success",
"model": {
"topicCode": "TOPICCODE", //产品topic编码
"productCode": "PRODUCTCODE", //IOT产品编码
"topicType": 1, //topic类型(1:基础通信 2:物模型通信 3:自定义)
"functionType": 1, //功能类型(1:OTA升级 2:设备标签 3:时钟同步 4:设备影子 5:配置更新
//6:广播 7:属性上报 8:属性设置 9:事件上报 10:服务调用
//注意:如果topicType为3自定义,则没有此字段值)
"topicName": "TOPICNAME", //产品topic类名称
"authorityType": 1, //权限类型(1:发布 2:订阅 3:发布与订阅)
"remarks": "REMARKS", //描述
"createTime": "2021-05-25T11:11:58.000+00:00" //创建时间
}
}
发布消息的SDK示例
以下是发布消息示例
使用时请将如下示例中的userAccessKey和userSecret分别替换成您的accessKey 和secret(您需在安服优物联云管理后台个人中心页面查看您的账号的accessKey和secret)。
package com.afu.common.sdk.test;
import com.afu.common.sdk.config.AfuOpenApiConfig;
import com.afu.common.sdk.dataobject.TopicNewInfo;
import com.afu.common.sdk.mqtt.AfuOpenApiBase;
import com.afu.common.sdk.openapi.AfuOpenApi;
import net.sf.json.JSONObject;
public class TestOpenApi {
public static void main(String[] args) throws Exception {
//传入userAccessKey和userSecret
AfuOpenApiConfig afuOpenApiConfig = new AfuOpenApiConfig();
afuOpenApiConfig.setAccessKey("userAccessKey"); //userAccessKey
afuOpenApiConfig.setSecret("userSecret"); //userSecret
AfuOpenApiBase afuOpenApiBase = new AfuOpenApiBase(afuOpenApiConfig);
//实例化AfuOpenApi,其中方法能直接进行相应操作
AfuOpenApi afuOpenApi =new AfuOpenApi(afuOpenApiBase);
TopicNewInfo topicNewInfo =new TopicNewInfo();
topicNewInfo.setContent("sdkTest");
topicNewInfo.setProductKey("Pfp5sUpUqm8");
topicNewInfo.setQos(0);
topicNewInfo.setTopic("/sdkTest/Test");
DeviceInfo deviceInfo = new DeviceInfo();
deviceInfo.setDeviceName("deviceName");
deviceInfo.setDeviceSecret("deviceSecret");
String jsonObject = afuOpenApi.ReleaseNews(topicNewInfo,deviceInfo);
System.out.println("得到的返回数据:"+jsonObject);
}
}
在上述代码中的第20行中,开发者在实例化AfuOpenApi对象成功后,在该对象下有多种方法,以上是其中一种(发布消息),下面将对其中方法进行使用介绍:
返回数据介绍
名称 | 类型 | 示例值 | 描述 |
---|---|---|---|
message | String | success | 返回信息 |
model | Object | success | 返回结果实体 |
status | String | 200 | 状态码,请参见 错误码文档。 |
发布消息:ReleaseNews
请求参数1:
该请求参数为实体类 TopicNewInfo的属性,开发者只需实例化一个TopicNewInfo对象,并传入相应属性即可
名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
productKey | String | 是 | DGHHddC554 | 为产品Key值,在物联网后台产品管理中获取 |
topic | String | 是 | “topic1/topic2” | topic权限须为订阅或发布和订阅 |
qos | Integer | 是 | 0 | qos值0,1,未开通2 |
content | String | 是 | “test” | 消息内容 |
请求参数2:
该请求参数为实体类 DeviceInfo的属性,开发者只需实例化一个DeviceInfo对象,并传入相应属性即可
名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
deviceSecret | String | 是 | DGHHddC554 | 设备系统生成开放设备密钥 |
deviceName | String | 是 | 智能灯 | 设备名称 |
返回数据实体示例
{
"status":200,
"message":"success"
}