单体架构的目录设计
发表于
本文字数:
103
阅读时长 ≈
1 分钟
1 | ├─api # 前后端交互 |
SpringMVC 接口设计
发表于
本文字数:
160
阅读时长 ≈
1 分钟
请求方式和参数注解可以自由组合。
@RequestParam
获取 query 参数。
1 | // name 参数需要和 GET 请求中 query 参数的 key 匹配 |
@PathVariable
获取 path 参数。
1 | // name 参数需要和 GET 请求中 path 匹配 |
@RequestBody
获取 body 参数。
1 | // 请求体携带的参数和 req 属性匹配 |
最佳实践
- 不要使用 @RequestBody 来接收 String 类型的参数;
1 | @PostMapping("/wrong") |
- 不要使用 Get 方式来接收 @RequestBody 请求;
代码
SpringMVC 参数校验
发表于
本文字数:
204
阅读时长 ≈
1 分钟
依赖
1 | <dependency> |
@RequestParam
Controller 类上添加 @Validate 注解。
1 | @GetMapping("/param_notnull") |
@RequestBody
Java Bean 中添加校验,配合方法中的 @Validated 注解。
1 | @PostMapping("/pojo_notnull") |
1 | @Data |
分组校验
group
1 | /** |
controller
1 | @PostMapping("/pojo_email") |
POJO
1 | @Data |
代码
REST API 响应设计
发表于
本文字数:
365
阅读时长 ≈
1 分钟
模型设计
使用统一的 REST 方式定义响应模型。
1 | // code 后端状态码 |
包装响应
1 | // 隐式将返回值包装成 R 对象 |
1 | @Configuration |
统一异常处理
1 | @RestControllerAdvice |