先写一个三分钟可调通的/hello接口确认链路畅通,再掌握@PathVariable、@RequestParam、@RequestBody三大参数注解的正确用法,接着统一返回Result结构并用@RestControllerAdvice兜底异常,最后通过Postman和@WebMvcTest覆盖典型场景验证。

直接上手写接口,比先啃原理更有效。但光会写不行,得知道每个注解在干什么、参数怎么传、返回怎么规范、出错了谁来兜底——这些才是日常开发里真正卡人的地方。
从一个能跑的接口开始
别一上来就搞用户管理、订单系统。先确保你能三分钟内写出、启动、调通一个返回 JSON 的接口:
- 用 Spring Initializr 创建项目,只勾选 Spring Web
- 新建一个类,加上 @RestController 注解
- 写一个方法,用 @GetMapping("/hello"),返回字符串或 Map
- 运行主类,访问 http://localhost:8080/hello
这一步的重点不是“功能”,而是确认整个链路通了:请求进来 → Controller 接收 → 方法执行 → JSON 响应出去。中间任何一环断掉(比如 404),就停在这儿查,别往下走。
搞懂三个核心参数注解
REST 接口本质就是处理不同来源的数据。Spring Boot 用三个注解区分它们的语义和用法:
- @PathVariable:取 URL 路径里的变量,比如 /users/123 中的 123,对应 @GetMapping("/users/{id}")
- @RequestParam:取查询参数(? 后面的 key=value),比如 /users?name=jack&page=2,适合筛选、分页等场景
- @RequestBody:取请求体里的 JSON 数据,通常用于 POST/PUT,前端发的是完整对象,后端用一个 Java 对象接收(需有对应字段)
这三个不能混用。常见错误是把 JSON 放 query 里用 @RequestParam 接,或者把 ID 写成 ?id=123 却用 @PathVariable 取——接口能启动,但永远拿不到值。
让返回结构统一、异常有兜底
刚入门时直接 return 字符串或 List 很爽,但团队协作或对接前端时,必须约定格式。比如都返回:
{ "code": 200, "message": "success", "data": { ... } }
- 定义一个通用响应类 Result
,封装 code、message、data - 所有 Controller 方法返回 Result
这种类型,而不是裸的 User - 加一个 @RestControllerAdvice 全局异常处理器,把 RuntimeException、参数校验失败等,统一转成 Result 格式返回
这样前端不用每个接口都写不同的解析逻辑,你也不用在每个方法里手动包装 Result。
边写边测,别等上线才验证
接口不是写完扔那儿就完了。每次改完,至少做两件事:
- 用 Postman 或 curl 手动发几个典型请求,覆盖正常、空参、非法 ID 等情况
- 给关键接口写一个 @WebMvcTest 单元测试,用 MockMvc 模拟 HTTP 请求,断言状态码和返回内容
比如测试 /users/{id},可以写一个 testShouldReturnUserWhenIdExists(),再写一个 testShouldReturn404WhenIdNotFound()。测试不难,但能帮你提前发现路径没配对、参数名写错、JSON 字段不匹配等问题。











