SpringBoot - [09] Restful风格接口方法&参数
GetMapping
、PostMapping
、DeleteMapping
、PutMapping
是SpringBoot中常用的HTTP请求映射注解,它们分别对应HTTP协议中的GET、POST、DELETE和PUT方法。
一、方法
001 || GetMapping
区别:用于处理HTTP GET请求,请求参数会绑定到方法参数上,通常用于获取数据。
使用场景:如查询用户信息、获取商品列表等。
@GetMapping("/users/{id}")
public User getUser(@PathVariable Long id){
// 根据id查询用户信息
}
002 || PostMapping
区别:用于处理HTTP POST请求,请求参数会绑定到方法参数上,通常用于创建新对象或执行特定操作。
使用场景:如注册新用户、创建新订单等。
@PostMapping("/users")
public User createUser(@RequestBody User user){
// 创建新用户
}
003 || DeleteMapping
区别:用于处理HTTP DELETE请求,通常用于删除对象。
使用场景:如删除用户、删除订单等。
@DeleteMapping("/users/{id}")
public void deleteUser(@PathVariable Long id){
// 创建新用户
}
004 || PutMapping
区别:用于处理HTTP PUT请求,通常用于更新对象。
使用场景:如更新用户信息、更新订单状态等。
@PutMapping("/users/{id}")
public User updateUser(@PathVariable Long id,@RequestBody User user){
// 根据id更新用户信息
}
二、参数
001 || 路径变量(@PathVariable)
使用场景:当需要从URL中获取特定部分的值来确定操作对象时使用。例如,根据用户id查询用户信息时,用户id时从URL路径中获取的。
@GetMapping("/users/{id}")
public User getUser(@PathVariable Long id){
// 根据id查询用户信息,这里的id就是从URL 如/users/123中的123获取并转换为Long类型
}
002 || 请求体参数(@RequestBody)
使用场景:当发送的数据是复杂的对象结构,并且是通过HTTP请求的主题(body)发送时使用。比如创建或更新一个包含多个属性的用户对象。
@PostMapping("/users")
public User createUser(@RequestBody User user){
// 这里的user对象是从请求体中获取并转换为User类型的,例如发送JSON格式的用户数据
}
003 || 查询参数(@RequestParam)
使用场景:当需要从URL的查询字符串中获取简单的参数值时使用。例如,在查询用户列表时,可能需要根据年龄范围或者用户名模糊查询等条件。
@GetMapping("/users")
public List<User> getUsers(@RequestParam(required = false) String name,
@RequestParam(defaultValue = "0") int ageStart,
@RequestParam(defaultValue = "100") int ageEnd){
// 根据name, ageStart和ageEnd查询用户列表, name是可选的,ageStart默认0,ageEnd默认100
}
004 || 请求头参数(@RequestHeader)
使用场景:当需要根据客户端发送的请求头中的信息来执行操作时使用。例如,根据客户端设置的特定版本号来返回不同版本的资源。
@GetMapping("/data")
public Data getData(@RequestHeader("Version") String version){
// 根据请求头中的Version值来获取对应的数据版本
}
005 || Cookie参数(@CookieValue)
使用场景:当需要根据客户端发送的Cookie中的值来执行操作时使用。比如验证用户登录状态,从特定的登录Cookie中获取用户标识。
@GetMapping("/profile")
public UserProfile getProfile(@CookieValue("sessionId") String sessionId){
// 根据sessionId(来自Cookie)获取用户资料
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
2024-01-13 Ansible - [07] 定义变量的几种方式