## Yo ### 运行环境需求 [运行环境需求](语音服务环境需求.md) ### IDEA 开发环境需求 由于项目依赖`org.projectlombok:lombok:1.18.2`,而`Lombok`在`1.18.4`版本做了[重设计](https://projectlombok.org/features/experimental/FieldNameConstants),不兼容之前版本,因此`IDEA`的`Lombok`插件必须是版本`lombok-plugin-0.23`,这里比较坑,如果升级到版本`1.18.4`以后,插件还是得升级,而且很多API都要改。 插件下载地址:[https://pan.caimi-inc.com/d/b038610394/](https://pan.caimi-inc.com/d/b038610394/) 下载对应版本插件,比如`IDEA 2018.2.x`下载`lombok-plugin-0.23-2018.2.zip`,卸载`IDEA`已安装`Lombok`插件,选择磁盘安装,如下图: ![安装Lombok插件](doc/images/install-lombok-plugin.png) ### 启动SpringBoot项目 建议先执行mvn编译命令,比如编译模块`CMS` ```bash mvn clean compile -am -pl cms -T 2C ``` ### Tigon #### Controller 如果加注了`@ResponseBody`或者`@RestController`,不做变动,依循`Spring MVC`方式`JSON`序列化返回数据,否则返回`Wacai`接口规范数据格式,如下例: #### @ResponseBody ```java @ResponseBody @RequestMapping("/resp-body") public String respBody() { return "Response Body"; } ``` 响应输出 ``` Response Body ``` #### Wacai JSON API ```java @RequestMapping("/resp-body") public String respBody() { return "Response Body"; } ``` 响应输出 ``` { "code": 0, "success": true, "data": "Response Body" } ``` 简单来说就是,不加`@ResponseBody`注解,默认会以`Wacai`API规范响应数据结果。 参见以下样例: I. ```java @RequestMapping("/count") public int count() { return 1024; } ``` 响应输出 ``` { "code": 0, "success": true, "data": 1024 } ``` II. ```java @RequestMapping("/user-info") public Map userInfo() { final Map user = new HashMap<>(4); user.put("name", "Uncle Donghuang"); user.put("gender", "MALE"); user.put("mobile", "17161787481"); user.put("active", true); return user; } ``` 响应输出 ``` { "code": 0, "success": true, "data": { "name": "Uncle Donghuang", "gender": "MALE", "mobile": "17161787481", "active": true, } } ``` III. ```java @RequestMapping("/error-caused") public Map errorCaused() { throw new RuntimeException("Oops, some error caused"); } ``` 响应输出 ``` { "code": 5000, "success": false, "message": "Oops, some error caused" } ```