一、核心原则
- 遵循'RESTful 风格',URI 仅表示资源,HTTP 方法表示操作;
- GET 仅用于查询,禁止通过 GET 传递敏感数据;POST 用于新增 / 修改 / 删除,或传递大量 / 敏感数据;
- 所有接口参数、响应数据统一使用 UTF-8 编码,避免乱码。
二、GET 请求规范
1. 用途限制
- 仅用于查询 / 获取资源,禁止用于新增、修改、删除操作;
- 后端注解:统一使用
@GetMapping,禁止用@RequestMapping(method = RequestMethod.GET)(冗余)。
2. 参数传递规则(Java 编码落地)
(1)路径参数(唯一标识)
- 后端用
@PathVariable接收,参数名与 URI 中的占位符一致;
- ✅ 正确代码示例:
@RestController
@RequestMapping("/api/v1/users")
public class UserController {
@GetMapping("/{userId}")
public ResultDTO<UserInfoRespDTO> getUserById(@PathVariable("userId") Long userId) {
UserInfoRespDTO user = userService.getUserById(userId);
return ResultDTO.success(user);
}
}
- ❌ 错误:用
@RequestParam接收唯一标识(如@RequestParam("userId") Long userId)。
(2)查询参数(筛选 / 分页 / 排序)
- 后端用
@RequestParam接收,可设置默认值、是否必传;
- 参数命名:小驼峰,与前端一致,禁止用下划线;
- ✅ 正确代码示例:
@GetMapping("/orders")
public ResultDTO<PageInfo<OrderListRespDTO>> getOrderList(
@RequestParam(value = "status", required = false) String status,
@RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
Integer pageSize
) {
PageInfo<OrderListRespDTO> page = orderService.getOrderList(status, pageNum, pageSize);
ResultDTO.success(page);
}