# RestFul风格
一种软件架构风格、设计风格,而不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。
在过往的请求当中,我们往往会看到的URL是这个样子的。
http://www.xxx.com/user/getuserlist?type=1&page=10
1
而restful风格的URL如下:
http://www.xxx.com/user/getuserlist/1/10
1
http://www.xxx.com/user/123/getuserlist/1/10
1
可以看出,restful风格的URL看上去更加的优美,且安全性高,不显示具体参数名称。
并且实现多层级管理。
# RestController各种方法介绍
# 示例1-URL路径
首先需要在RequestMapping做映射,之后再方法中可以通过注解使用映射的变量
@GetMapping("/{id}")
public String demo(@PathVariable("id") Integer id){}
1
2
2
可以写多个
@getMapping("/{id}/demo/{cId}")
public String demo(@PathVariable("id") Integer id,@PathVariable("cId") Integer id){}
1
2
2
还可以使用正则表达式限制类型(不符合要求会返回4xx的错误信息,表示请求参数有问题)
这里表示id必须是数字
@getMapping("/{id:\\d+}")
public String demo(@PathVariable("id") Integer id){}
1
2
2
# 示例2-JSON参数传递
给参数前加上RequestBody注解,Spring会自动把post的Request Body部分的JSON转换成方法声明的类。
如果转换失败会返回4xx错误,表示请求参数有问题。
public Object updateOne(@RequestBody QmReq qmReq){}
1
# 示例3-表单参数传递
首先需要声明传入的是application/x-www-form-urlencoded的格式,可在RequestMapping增加consumes参数:
@PostMapping(value="/tvseries",
consumes=MediaType.APPLICATION_FORM_URLENCODED_VALUE)
1
2
2
在方法上增加参数,参数使用@RequestParam注解即可。
public Object insert(@RequestParam(value="name",required=false)String name)
1
凡是可以通过httpServletRequest.getParameter(String)方法渠道的值,包含表单提交的,QueryString附带的,都可以使用@RequestParam注解得到
默认是request=true。
# 示例4-获取请求头
可以使用@RequestHeader注解获取请求头信息。
public String demo4(@RequestHeader String userId){}
1
# 示例5-获取cookie值
使用@CookieValue注解,新API里不建议使用cookie