# 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

可以写多个

@getMapping("/{id}/demo/{cId}")
public String demo(@PathVariable("id") Integer id,@PathVariable("cId") Integer id){}
1
2

还可以使用正则表达式限制类型(不符合要求会返回4xx的错误信息,表示请求参数有问题)

这里表示id必须是数字

@getMapping("/{id:\\d+}")
public String demo(@PathVariable("id") Integer id){}
1
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

在方法上增加参数,参数使用@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

最近更新: 2019/10/17 上午4:20:42