最近在弄监控主机项目,对javaweb又再努力学习。实际的项目场景中,前后分离几乎是所以项目的标配,全栈的时代的逐渐远去,后端负责业务逻辑处理,前端负责数据展示成了一种固定的开发模式。像thymeleaf这种东西没法实现前后端分离模板难学也只有写java的才用吧,还是用js模板引擎接受json好。
1. Json报文
SpringBoot 默认会使用 Json 作为响应报文格式。首先,我们创建一个 UserController 用于处理前端的 Web 请求。
定义一个简单的控制器,与通常返回 Url 的 Controller 不一样的是,login() 使用了 @ResponseBody 注解,它表示此接口响应为纯数据,不带任何界面展示,可以获得标准Json。
@Controller
@RequestMapping("/user")
public class UserController {
@RequestMapping("/login")
@ResponseBody
public RespEntity login(@RequestBody ReqUser reqUser) { //使用reqUser模型来接受,而不用User
User user = new User();
if(reqUser != null) {
user.setName(reqUser.getName());
user.setPassword(reqUser.getPassword());
}
return new RespEntity(RespCode.SUCCESS, user); //返回的响应实体具体看下节
}
}
对于上面的代码来说,还可以做进一步的优化,由于所有的 Restful 接口都只是返回数据,所以我们可以直接在类级别上添加 @ResponseBody 注解。而大多数情况下,@Controller 与 @ResponseBody 又会一起使用,所以我们使用 @RestController 注解来替换掉它们,从而更加简洁地实现功能。
2. 接口规范
对于每一家公司来说,都会定义自己的数据规范,一个统一且标准的数据规范对于系统维护来说是非常重要的,也在很在程度上提升了开发效率。
2.1 响应报文规范
接口响应至少需