一,简介
表现形式状态转换(其实就是访问网络资源的格式)
优点:
1、隐藏资源的访问行为,无法通过地址的值对资源是进行何种操作
2、书写简化
二,常用行为
| url | 作用 |
| http://localhost/users | 查询全部GET(查询) |
| http://localhost/users/1 | 查询指定用户信息GET(查询) |
| http://localhost/users | 添加用户信息POST(新增/保存) |
| http://localhost/users | 修改用户信息PUT(修改/更新) |
| http://localhost/users/1 | 删除用户信息DELETE(删除) |
可以看到有些操作发送的url是一样的,所以是通过发送请求的方式来区别不同的操作
三,基本使用
1、在方法的@RequestMapping直接中配置请求以何种方式发送,如
@RequestMapping(value="/users",method=RequestMathod.post)
2、使用这种风格会与之前传参发生冲突,为了能正确传参,需要在形参前面加上@PathVariable注解
3、上面的操作就表示参数来自访问路径,因此我们需要在路径那做相应的(@RequestMapping注解的value配置的就是访问路径)
如@RequestMapping(value="/users/{id}",method=RequestMethod.POST)
注意名字要与参数相同
四,应用
1、当发送请求超过一个时,以json格式为主(@RequestMapping需要换成@RequestBody)
2、如果发送json数据,形参使用的注解应该有@PathVariable变成@RequestParam
五,简化
1、问题:
@RequestMapping(value="/users/{id}",method=RequestMethod.POST)
这样写太麻烦了
2、解决:
可以用@PostMapping("/users/{id}"),以此类推还有@GetMapping、@DeleteMapping、@PutMapping
3、补充:
①如果该控制器的所有方法配置的访问路径相同,可以像之前一样在类注解的@RequestMapping配置一下,这样下面的路径就可以简化了
②如果控制器的所有方法请求发送的方式全是post可以把@ResponseBody放在类上成为类注解
③如果这样的话@ResponseBody与@Controller注解可以合并成@RestController
本文介绍了RESTful API的设计原则,包括表现层状态转移的概念、URL与HTTP方法的对应关系,以及如何通过@RequestMapping注解进行方法映射。文章还讨论了参数传递、请求方式的简化,并给出了使用@PostMapping等简化注解的例子。最后,提到了类级别的@RequestMapping和@RestController的使用,以提高代码的简洁性。
470

被折叠的 条评论
为什么被折叠?



