在工作中,我们经常会遇到API接口的入参是
@RequestParam 解析
@RequestBody 解析
@RequestBody 解析
List
、
Map
、
Array
,而这些类型的入参,在用
Postman
调试接口的时候很容易忘记请求方式。故以此篇文章来固化这些请求方式,方便下次查阅使用,提高效率。由于
List
和
Array
类似,仅以
List
来详细说明请求方式。
spring 注解
@RequestParam
接收的参数是来自HTTP
请求体或请求
url
的
QueryString
中。一般用来处理
application/x-www-form-urlencoded
类型的数据,该类型是默认类型。
@RequestBody
接收的参数是来自requestBody
中,即请求体。一般用于处理:
application/json、application/xml
等类型的数据。
List 参数
以POST
请求来说明
List
作为参数,
postman
如何请求接口,
GET
请求类似。
@RequestParam 解析 ids
代码如下
@RequestMapping(value = "/getByIds" ,method = RequestMethod.POST)public RetDTO getByIds(@RequestParam("ids") List<Long> ids){ return RetDTO.getReturnJson(userService.getByIds(ids));}
请求方式一
:
QueryString字符串
spring
会以逗号分割字符串形成数组。
请求方式二
:
QueryString数组
请求方式三
:
表单字符串
请求方式四
:
表单数组
@RequestBody 解析ids
代码如下
@RequestMapping(value = "/getByIds" ,method = RequestMethod.POST)public RetDTO getByIds(@RequestBody List<Long> ids){ return RetDTO.getReturnJson(userService.getByIds(ids));}
请求方式
@RequestBody 解析users
代码如下
@RequestMapping(value = "/getByIds" ,method = RequestMethod.POST)public RetDTO getByIds(@RequestBody List<User> userList){ return RetDTO.getReturnJson(userService.getByIds(userList));}
请求方式
Map 参数
以GET
请求来说明
Map
作为参数,
postman
如何请求接口,
POST
请求类似。
@RequestParam 解析 map
代码如下
@RequestMapping(value="/getById", method=RequestMethod.GET)public RetDTO<User> getById(@RequestParam Map<String, Long> map) { return RetDTO.getReturnJson(userService.getUserById(map.get("id")));}
请求方式
@RequestBody 解析 map
代码如下
@RequestMapping(value="/getById", method=RequestMethod.GET)public RetDTO<User> getById(@RequestBody Map<String, String> map) { return RetDTO.getReturnJson(userService.getUserById(map));}
请求方式