restful接口如何接收list对象参数

新手上路,请多包涵

查询接口,按照restful的标准,只能为get请求,参数需要为list对象类型,试过好几种都报错,用get在postman中无法用json,postman中参数应该如何填写

@GetMapping("/user/list/")  
public UserListRespVo getUserList(List<Item> itemList){  
}
@Data  
public class Item {  
    private Integer id;   
    private Integer userId;      
}

1579371659649-image.png

阅读 18.5k
6 个回答

get方法请求的参数在请求时是附在api的url上的,就算你用对象也是会转成字符串的

实际应用中,其实有些查询还是会定为POST请求的,并不会严格按照Restful设计风格。推荐还是用PostMapping,然后使用@RequestBody接受请求参数

新手上路,请多包涵

使用get请求,前端如何传递,后端如何接收

如果你的 GET 查询条件是复杂的 JSON 对象,那么后端接收的时候就只能当作 String 来处理了,然后再反序列化成 JSONObject。

不是说用 GET 传复杂查询参数不行(GraphQL 在 GET 里传的 query 更复杂,但 GraphQL 也不是 MVC 模型,用不着 RequestMapping……),但确实是在 Controller/Action 层面上失去了强类型的 Mapping。

要么你就换成 POST。

复杂参数(数组,对象数组,嵌套对象)还是用json放body里传比较好,其实GET可以有body,但是框架不一定支持

url里传数组,没有规范,不同语言不同框架实现不一样

url参数里放json,springmvc不能自动解析,要用String接进来自己解析。类似道理前端也需要自己组装参数,大家都不方便,所以还是放post

新手上路,请多包涵

如果查询接口,按照restful的标准,只能为get请求,参数需要为list对象类型

推荐用@RequestBody修饰的对象传参数

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题