线下增加设备接口开发(SDK)

本文通过java代码实现设备的注册功能(使用的是SDK进行开发)包含了请求的封装,签名加密,响应解释,性能优化等
API文档在下载的SDK压缩包中

准备工作

  • 需要导入平台提供的两个jar包
  1. 在选择服务和相应的开发语言后点击“SDK下载”按钮来下载SDK工具包。将下载的Java的SDK工具包进行解压

在这里插入图片描述
2. 将jar包导入maven仓库

在这里插入图片描述

新建一个springboot项目

1.1 新建springboot项目,导入需要的依赖
<!--平台的两个jar包-->
<dependency>
    <groupId>com.ctg.ag</groupId>
    <artifactId>ctg-ag-sdk-core</artifactId>
    <version>2.5.0-SNAPSHOT</version>
</dependency>
<dependency>
    <groupId>com.ctg.ag</groupId>
    <artifactId>ag-sdk-biz-59497.tar.gz</artifactId>
    <version>20210510.151332-SNAPSHOT</version>
</dependency>

<!--解析JSon格式数据-->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.70</version>
</dependency>

<!--lombok -->
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.12</version>
</dependency>
1.2 配置配置文件

在应用页面查看创建应用的app_key和app_secret
在这里插入图片描述

  • 将app_key和app_secret放入配置文件中,以后若发送改动不需要修改代码,对配置文件进行修改即可
ctWing.APP_KEY= xxxxxxxxx
ctWing.APP_SECRET= xxxxxxxxx
1.3 根据API文档创建对应的dto类

API名称:CreateDevice

  • 请求路径:/device

  • 请求方法:POST

请求参数

名称位置类型必填描述
MasterKeyHEADStringtrueMasterKey在该设备所属产品的概况中可以查看

请求BODY

  • 数据类型:json

内容描述:

{
  "deviceName": "string",  
  "deviceSn": "string",   
  "imei": "string",       
  "operator": "string",   
  
  "other": {"autoObserver":0,    
            "imsi":"12545154878451",  
            "pskValue":"ADvNWlkcNq9AfKnk"}, 
  "productId": 0       
}

创建other类

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Device {
    /*
    "other": {"autoObserver":0,
            "imsi":"12545154878451",
            "pskValue":"ADvNWlkcNq9AfKnk"},
     */
    private Integer autoObserver; //0.自动订阅 1.取消自动订阅,必填
    private String imsi; //选填
    private String pskValue; //选填
}

创建设备的dto

@Data
@AllArgsConstructor
@NoArgsConstructor
public class CreateDeviceDto {
    /*
        创建设备的dto
     */

    private String deviceName; //设备名称,必填
    private String deviceSn; //设备编号,MQTT,T_Link,TCP,HTTP,JT/T808,南向云协议必填
    private String imei; //imei号,LWM2M,NB网关协议必填
    private String operator; //操作者,必填
    private Device device; //LWM2M协议必填参数
    private Integer productId; //产品ID,必填

}
1.4 创建设备的工具类

步骤

  1. 根据appkey和appsecret创建一个客户端连接对象
  2. new一个创建设备请求对象
  3. 将请求参数放入到对应的请求方法中
  4. 将请求体转换为一个字节数组
  5. 将字节数组传递给请求
  6. 客户端调用创建设备方法并获得响应消息
  7. 关闭客户端连接
@Component
public class CtWingUtil {
    //绑定配置文件中的参数,以后进行修改不用修改代码

    private static String APP_KEY;
    private static String APP_SECRET;

    @Value("${ctWing.APP_KEY}")
    public  void setAppKey(String appkey) {
        APP_KEY = appkey;
    }

    @Value("${ctWing.APP_SECRET}")
    public  void setAppSecret(String appSecret) {
        APP_SECRET = appSecret;
    }

    //增加设备 后面的参数是API文档中的请求参数
    public String createDevice(CreateDeviceDto dto,String masterKey){
    
        //创建一个客户端连接
        AepDeviceManagementClient client = AepDeviceManagementClient
        .newClient()
        .appKey(APP_KEY)
        .appSecret(APP_SECRET).build();

        CreateDeviceRequest request = new CreateDeviceRequest();
        request.setParamMasterKey(masterKey);

        //将对象转换为一个byte数组作为body传递
        byte[] body = JSON.toJSONBytes(dto);
        request.setBody(body);

        CreateDeviceResponse response=null; //为了方便在try外使用该参数

        //客户端调用方法
        try {
            response = client.CreateDevice(request);
        } catch (Exception e) {
            e.printStackTrace();
        }

        String string = new String(response.getBody());
        client.shutdown();  //关闭连接返回响应结果
        return string;


    }
}
1.5 创建controller层

步骤

  1. 创建other对象
  2. 根据other对象构造创建设备dto对象
  3. 调用工具类,传递创建设备对象和masterKey参数
@RestController
public class MyController {

    @Autowired
    private CtWingUtil ctWingUtil;

    @RequestMapping("/test")
    public String createDevice(){

        //other参数定义
        Device device = new Device(0, "", "");
        //公共参数定义
        CreateDeviceDto deviceDto = 
        new CreateDeviceDto("测试4", "862177041088074", "862177041088074", "zhangsan", device, 15047914);

        String response = ctWingUtil.createDevice(deviceDto, "279142920da340c38449b5ad79ba2817");
        System.out.println(response);

        return response;
    }

}
1.6 浏览器输入对应的请求进行测试

在这里插入图片描述

1.7 查看平台是否添加设备成功

在这里插入图片描述

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值