一、RESTful 核心概念
1. 请求类型与操作对应关系
- POST → 新增数据
- PUT → 修改数据
- GET → 查询数据
- DELETE → 删除数据
2. RESTful 设计原则
- 路径代表资源(使用名词,不用动词)
- 请求类型代表动作
- 浏览器默认发送 GET 请求
二、传统传参 vs RESTful 传参
传统方式(查询参数)
ini
https://google.com/search?q=keyword&page=1
- 使用
?
和&
拼接参数
RESTful 风格(路径参数)
bash
/api/users/123
- 参数值直接放在路径中
- 使用
/
分隔多个参数 - 不需要参数名
三、Spring MVC 实现示例
1. 无参 GET 请求
java
@RestController
@RequestMapping("/api")
public class ApiController {
@GetMapping("/test")
public String getNoParam() {
return "无参GET请求API接口方法";
}
}
2. RESTful 风格带参 GET 请求
java
@GetMapping("/user/{id}")
public String getWithPathParam(@PathVariable String id) {
return "RESTful请求传值方法,ID: " + id;
}
访问路径:/api/user/123
3. 传统方式带参 GET 请求
java
@GetMapping("/user")
public String getWithQueryParam(@RequestParam String id) {
return "GET普通请求传值方法,ID: " + id;
}
访问路径:/api/user?id=123
4. POST 请求(接收请求体)
java
@PostMapping("/save")
public String postMethod(@RequestBody Map<String, Object> map) {
return "POST请求接收成功: " + map;
}
5. PUT 请求
java
@PutMapping("/update/{id}")
public String putMethod(@PathVariable String id, @RequestBody Map<String, Object> map) {
return "PUT请求接收成功,ID: " + id + ", 数据: " + map;
}
6. DELETE 请求
java
@DeleteMapping("/delete/{id}")
public String deleteMethod(@PathVariable String id) {
return "DELETE请求接收成功,ID: " + id;
}
四、关键注解说明
@RestController
: 组合注解,包含@Controller
和@ResponseBody
@RequestMapping
: 类级别的路径映射@GetMapping
/@PostMapping
/@PutMapping
/@DeleteMapping
: 方法级别的请求映射@PathVariable
: 从路径中获取参数值@RequestParam
: 从查询参数中获取值@RequestBody
: 从请求体中获取数据
五、测试工具
- API Fox
- Postman
- 其他接口调试工具
六、Spring MVC 匹配机制
Spring MVC 会根据:
- 请求类型(GET/POST/PUT/DELETE)
- 请求路径
- 参数传递方式
自动匹配对应的控制器方法。
实际开发建议
- 保持 RESTful 风格的一致性
- 合理设计资源路径(使用名词)
- 根据操作类型选择合适的 HTTP 方法
- 在实际项目中,这些方式都会用到,根据场景灵活选择