一直被老婆问RESTful 是什么,我回答一直是一种代码风格,Representational State Transfer,今天看了一位大神的回答表示自愧不如毕竟他老婆应该是new出来的,https://zhuanlan.zhihu.com/p/30396391。
看完之后,我就想了想简单理解就是用HttpClent的各种请求来代替url中的add、update、delete等等,然后还要注意的就是幂等性,幂等并非RESTful 所要求的,是我们写代码的生活需要考虑的,可参见https://www.zhihu.com/question/27604206/answer/73460571,简单来说就是要注意重复提交的问题,如何避免重复提交带来的影响,容易产生重复提交的就是add操作对应的也就是POST操作,当然GET也可以进行add操作基于安全性考虑推荐用POST提交的数据放入post的body中。
基于以上就可以得出用GET代替get,用PATCH代替update,用POST代替add,用DELETE代替delete,那么代码就变成了
@RestController @RequestMapping("/data/hi") public class HelloController { @RequestMapping(value = "/",method = RequestMethod.GET) public String get() { return ""; } @RequestMapping(value = "/",method = RequestMethod.POST) public String add() { return ""; } @RequestMapping(value = "/",method = RequestMethod.DELETE) public String delete() { return ""; } @RequestMapping(value = "/",method = RequestMethod.PATCH) public String update() { return ""; }
看起来是不是更简单了。