
目录
REST简介
对比:
传统风格资源描述形式
REST风格描述形式
RESTful入门案例:
1.设定http请求动作(动词)
2.设定请求参数(路径变量)
入门案例优化:
REST(Representational State Transfer),表现形式状态转换
http://localhost/user/getById?id=1 http://localhost/user/saveUser
http://localhost/user/1 http://localhost/user 优点:隐藏资源的访问行为,无法通过地址得知对资源是何种操作,书写简化
注意事项 上述行为是约定方式,约定不是规范,可以打破,所以称REST风格,而不是REST规范 描述模块的名称通常使用复数,也就是加s的格式描述,表示此类资源,而非单个资源,例如:users、books、account..
@RequestMapping(value = "/users",method = RequestMethod.POST),根据你的行为来选定对应的动作,PSOT,GET...........
@RequestMapping(value = "/users/{id}" ,method = RequestMethod.DELETE)
@ResponseBody public String delete(@PathVariable Integer id){System.out.println("user delete..." + id);return "{'module':'user delete'}";
在路径上面要有参数的占位,在形参上加上@PathVariable把名称和数据对应上。
名称:@PathVariable 类型:形参注解 位置:SpringMVC控制器方法形参定义前面 作用:绑定路径参数与处理器方法形参间的关系,要求路径参
在我们实际书写中,这样的格式显然有些复杂,因此后续做了一些优化。我们用
@RestController代替@Controller+@RequestBody,
用@PostMapping代替@RequestMapping(method = RequestMethod.POST)
总结:
这种设计使得 API 变得自描述且统一。标准映射规则如下:
HTTP 方法 | 资源路径 (URL) | 功能描述 | 常用HTTP状态码 |
|---|---|---|---|
GET | /users | 查询所有用户 | 200 (OK) |
GET | /users/{id} | 查询单个用户 | 200 (OK) / 404 (Not Found) |
POST | /users | 新增用户 | 201 (Created) |
PUT | /users/{id} | 全量更新用户 | 200 (OK) / 204 (No Content) |
DELETE | /users/{id} | 删除用户 | 204 (No Content) / 200 (OK) |
Spring MVC 通过一组专门设计的注解,完美支撑了上述映射规则。
1. @RestController:一键开启 REST 模式
这是构建 RESTful API 的基石。它继承了 @Controller 和 @ResponseBody,强制控制器中所有方法返回的对象直接序列化为 JSON/XML 写入 HTTP 响应体,而不是解析为视图页面 。
2. 请求映射注解:精准匹配 HTTP 方法
不要再使用通用的 @RequestMapping。强烈建议使用其简化版本,使代码意图一目了然 :
@GetMapping
@PostMapping
@PutMapping
@DeleteMapping
3. 参数绑定注解:从请求中提取数据 RESTful 风格要求参数通过特定位置传递,Spring MVC 提供了精准的提取工具 :
@PathVariable:RESTful 的核心注解。用于绑定 URL 路径中的模板变量(如 /{id}),这是与传统 ?param=value 风格最大的区别。
@RequestBody:绑定 HTTP 请求体中的 JSON/XML 数据到 Java 对象(常用于 POST/PUT)。
@RequestParam:绑定查询参数(较少用于 RESTful 资源定位,多用于筛选、分页等场景)。