该内容对您有帮助吗?
是否更新时间:2021-08-27 07:06:19下载pdf
本文将介绍如何在本地运行涂鸦智能 SaaS 开发框架后端项目。您可以基于涂鸦智能 SaaS 开发框架进行二次开发和自定义功能拓展。
通过 IDEA 的 Get from Version Control > URL 克隆项目。
https://github.com/tuya/iot-server.git
项目代码结构如下:
云项目是涂鸦云开发平台管理开发资源的单位,每个云项目的资源和权限相互隔离。开发 IoT 应用前,您需要创建一个云项目。
登录 涂鸦 IoT 平台。
在左侧导航栏中,单击云开发>云开发。
在我的云项目的页面,点击页面右侧 创建云项目。
在创建项目对话框中,配置项目参数后点击 创建。
在 批量授权 API 产品 中,除了默认选择的 API 服务外,还需添加 行业通用权限管理 API,添加完成后单击 开通授权。
说明: 如果您需要配置短信邮件推送功能,请同时添加短信服务和邮件服务。您也可以在后续的使用中根据需要开通其他的 API服务,开通方法参见 开通 API 服务。
创建初始资产和初始账号,初始资产将自动授权至该初始账号。
在已创建项目的 概览 页面,获取用于 API 调用的 授权密钥,即 Access ID 和 Access Secret。
在 iot-server/iot-server-web/src/main/resources/application.properties
文件中,并配置以下参数。
(可选)配置短信邮件推送模板。
如果需要支持密码找回功能,您需要配置找回密码的短信或(和)邮件推送模板,并提前开通 短信服务 或(和)邮件服务 API,开通方法参见 开通 API 服务。
您需要调用添加邮件模板和添加短信模板 API 获取模板 ID,然后配置在 application.properties
文件。
#短信中文模板
captcha.notice.resetPassword.sms.templateId.cn=
#短信英文模板
captcha.notice.resetPassword.sms.templateId.en=
#邮件中文模板
captcha.notice.resetPassword.mail.templateId.cn=
#邮件英文模板
captcha.notice.resetPassword.mail.templateId.en=
执行如下命令,构建并运行项目。
通过 Maven 构建项目。
cd ./iot-server/
mvn -U clean package -Dmaven.test.skip=true
执行可运行 JAR 包。
java -jar ./iot-server-web/target/iot-server-web-{version}.jar
说明:
iot-server-web
JAR 包的版本请根据实际情况调整。例如,使用的是 1.1.3 版本,则执行命令为java -jar ./iot-server-web/target/iot-server-web-1.1.3.jar
。
等待终端输出如下信息,即服务运行成功,可结合前端项目体验整体系统流程。
本节以远程控制灯为例,为您介绍如何在 SaaS 开发框架的基础上,开发下发设备指令的服务。
在 iot-web-ability
模块根据接口文档定义 ability
接口。
说明: 设备控制的 API 接口详情参见下发指令。
public interface DeviceAbility {
@Override
@POST("/v1.0/iot-03/devices/{device_id}/commands")
Boolean commandDevice(@Path("device_id") String deviceId, @Body DeviceCommandRequest request);
}
在 iot-server-service
模块中实现业务层逻辑,可以使用 @Autowired
方式注入 ability
接口。
@Service
public class DeviceServiceImpl implements DeviceService {
@Autowired
private DeviceAbility deviceAbility;
@Override
public Boolean commandDevice(String deviceId, DeviceCommandRequest request) {
return deviceAbility.commandDevice(deviceId, request);
}
}
在 iot-server-web
模块定义对外提供前端可调用的 API 接口。
@RequestMapping("/device")
@RestController
public class DeviceController {
@Autowired
private DeviceService deviceService;
@RequestMapping(value = "/command/{device_id}", method = RequestMethod.POST)
@RequiresPermissions("2003")
public Response<Boolean> commandDevice(@PathVariable("device_id") String deviceId, @RequestBody List<DeviceCommandCriteria> criteriaList) {
List<DeviceCommandRequest.Command> convert = SimpleConvertUtil.convert(criteriaList, DeviceCommandRequest.Command.class);
DeviceCommandRequest request = new DeviceCommandRequest();
request.setCommands(convert);
return Response.buildSuccess(deviceService.commandDevice(deviceId, request));
}
}
操作结果: 通过上面基于 iot-server 的二次开发,可以实现对灯的远程操作(开/关),当然您也可以通过此接口操作其他的任意设备。
以上就是使用 SaaS 开发框架后端二次开发的示例流程。SaaS 开发框架能够快速协助您搭建物联网 SaaS 应用,实现业务落地。欢迎在 iot-server和我们交流和反馈更多关于 SaaS 开发框架的内容。
该内容对您有帮助吗?
是否该内容对您有帮助吗?
是否