1.3.1. 第三方开发接入步骤
步骤
1、访问SmartDBS,注册完第三方开发者账号,并使用此账号进行登录;
2、创建应用,可获得AppKey和AppSecret,用于Demo启动配置;
3、关于下载和启动Demo,请查看启动Demo。
1.3.2. SmartDBS访问地址:
https://console.dbs.zkclouds.com/
1.3.3. 第三方开发者注册
注册流程:进入登录页>点击开发者注册>完善注册信息>验证邮箱验证码>注册成功。
如下图
1.3.4. 创建应用
1.3.5. 启动Demo
步骤
1、demo工程下载地址:https://github.com/smartdbs/SmartDBS-Demo
2、打开工程中【smart-dbs-demo-startup】模块,resources目录中,application.properties文件
3、appKey,appSecret配置,相应的值可以从创建应用处获得
4、数据库连接信息配置,需配置数据库地址,库名,和连接账户信息
5、endpoint为SmartDBS提供的API调用地址,可不用修改
6、Application启动类,启动项目
7、系统启动,无需手动创建表结构,系统自动创建。
DBS_demo项目application.properties文件配置,例如:
#******************数据库配置******************
spring.datasource.url= jdbc:mysql://127.0.0.1:3306/demo?useUnicode=true&characterEncoding=utf-8&useFastDateParsing=false&autoReconnect=true
spring.datasource.username= root
spring.datasource.password= root
#******************应用信息配置******************
dbs.api.appKey=eda5b104cf754608970329e2d74e8629
dbs.api.appSecret=5a15cc759c804bc19b6f8319b8628820
#******************文件上传路径配置******************
# 指定文件存储路径,径路需为绝对路径,Linux为根路径(windows:如D:/data/,linux:如usr/data/)
# windows系统
#dbs.upload.path=E:/data/
# linux系统
dbs.upload.path=/opt/workspace/logs/
1.3.6. 快速开发
1、demo中,各方法的业务代码逻辑总体可分为两部分,一部分是Demo端的数据操作,另一部分为调用SDK操作SmartDBS端的数据
2、以新增设备为例,业务代码中分为两个部分
3、新增成功后,demo端的数据操作会同步到SmartDBS端,执行异常时,事务需回滚
public void addDevice() {
// 语言参数,前后端分离项目,返回前端的异常信息进行国际化处理
String language = "zh_CN";
// 构建设备DTO,设置设备相关基础信息
DeviceDTO deviceDTO = new DeviceDTO();
deviceDTO.setSn("123456789");
deviceDTO.setAlias("二楼北门");
// 设备类型(0:考勤设备-ATT 1:门禁设备-ACC)
deviceDTO.setType(SysConstants.ACC);
//检查参数是否合法
ResultUtil.handldBlankError(deviceDTO.getSn(), "E11", language);
ResultUtil.handldBlankError(deviceDTO.getAlias(), "E13", language);
ResultUtil.handldNullError(deviceDTO.getType(), "E14", language);
//判断设备是否已经存在,抛出异常信息
Device device = deviceService.getOne(new LambdaQueryWrapper<Device>().eq(Device::getSn, deviceDTO.getSn()));
ResultUtil.handleExistsError(device, "E15", language);
// 查询企业信息
Company company = companyService.getByAppKey(dbsConfig.getAppKey());
Device entity = new Device();
//拷贝对象属性至 新的设备对象
ModelUtils.copyPropertiesIgnoreNull(deviceDTO, entity);
entity.setCompanyId(company.getId());
entity.setStatus(SysConstants.OFFLINE);
entity.setEnable(SysConstants.ENABLE);
entity.setActive(SysConstants.ACTIVATED);
//保存demo端设备信息
deviceService.save(entity);
// ***************************************************
//调用 新增设备SDK
// 构建API调用必须的用户,此用户即企业的集成用户
User apiUser = new User(company.getUserName(), company.getPassword());
// 初始化SDK的模块
// 构造新增设备的请求实体
CreateDeviceRequest createDeviceRequest = new CreateDeviceRequest();
createDeviceRequest.setSn(entity.getSn());
createDeviceRequest.setAlais(entity.getAlias());
createDeviceRequest.setApiUser(apiUser);
// 调用SDK,并返回结果
Message res = DBSApi.dbsClient.addDevice(createDeviceRequest);
// 抛出异常信息
ResultUtil.handleDbsResultError(res);
}