五个关键点系统掌握spring boot rest接口:一、资源设计用名词复数与查询参数;二、http方法语义严格对应操作;三、注解职责分明,如@restcontroller与@pathvariable;四、响应结构与状态码协同一致;五、避免200内嵌业务错误码。

直接抓住五个关键点,就能系统、高效地复习 Spring Boot 中的 REST 接口核心内容。
一、资源设计:URL 只用名词,不用动词
REST 的本质是面向资源,不是面向功能。复习时重点检查 URL 是否体现“什么”,而不是“做什么”:
- /users ✅ 表示用户集合;/getUsers ❌ 动词暴露实现细节
- /users/123/posts ✅ 层级表达从属关系(用户 123 的文章)
- /products?status=on_sale&page=2 ✅ 过滤和分页用查询参数,不塞进路径
- 统一用复数形式:/orders 而非 /order,/addresses 而非 /address
二、HTTP 方法语义必须严格对应操作意图
每个方法代表一种不可替代的资源行为,不能凭习惯混用:
- GET:只读、幂等、可缓存;用于 /users 或 /users/1001
- POST:创建新资源;成功返回 201 Created,并在 Location 响应头中带新 URI
- PUT:客户端提交完整资源快照,用于全量替换;幂等
- PATCH:仅传变更字段,更安全;适合前端局部修改场景
- DELETE:删除后返回 204 No Content(无响应体),不返回 JSON
三、注解分工要清晰,知道“谁管什么”
不是堆砌注解,而是理解每个注解的职责边界:
- @RestController:类级别,表示这是纯数据接口控制器(自动含 @ResponseBody)
- @GetMapping 等派生注解:比 @RequestMapping 更精准,明确绑定方法和 HTTP 动词
- @PathVariable:取路径中 {id} 这类占位符,适用于主键定位
- @RequestParam:取 ?name=Tom&age=25 这类查询参数,支持 required=false 和 defaultValue
- @RequestBody:接收 JSON 请求体,要求目标类有无参构造器 + getter/setter
四、响应结构与状态码必须协同一致
前端靠这两者判断结果,二者错位会导致逻辑混乱:
- 统一返回格式,例如:{ "code": 200, "message": "OK", "data": {...} }
- HTTP 状态码不能全用 200:查成功用 200,创建用 201,删成功用 204,参数错用 400,未登录用 401,无权限用 403,资源不存在用 404,服务异常用 500
- 避免在 200 响应里塞 code=400 的业务错误——这会让网关、前端拦截失效











