SpringBoot中Rest风格接口传递多个参数
这次在项目开发中要求写Rest风格接口,在调试时发现有个按条件分页查询的接口涉及到多参数传递。因为参数较多,不想使用GET请求避免参数太过繁琐,经过试验,发现可以使用POST请求在后台通过JavaBean来接受所有参数。现在做下记录:
参数实体类:
@Datapublic class OrderPageDTO {
/**
*用户分象ID
*/
private Long userId;
/**
* 页号
*/
private int page = 1;
/**
* 每页显示记录数
*/
private int limit = 20;
}
controller层方法(接收):
/**
* @Description: 分页查询积分订单交换列表
* @param orderPageDTO
* @return OrderMessageVO
* @author lfh
*/
@PostMapping("/getOrderList")
@PreAuthorize("hasAuthority('order-service-order-selectByPage')")
public OrderMessageVO<List<OrderVO>> selectOrderListByPage(OrderPageDTO orderPageDTO){ OrderMessageVO<List<OrderVO>> orderMessageVO = orderApi.selectOrderListByPage(orderPageDTO);
return orderMessageVO;
}
API层接口:
@PostMapping("/getOrderList")
public OrderMessageVO<List<OrderVO>> selectOrderListByPage(@RequestBody OrderP ageDTO orderPageDTO);
API实现方法:
@Override
public OrderMessageVO<List<OrderVO>> selectOrderListByPage(@RequestBody OrderPageDTO orderPageDTO){
...
}
测试结果:
注意:
1、controller层方法接收参数时不用加任何(@RequestBody..)注解,前台传递的参数只要和OrderPageDTO 里面的属性名称相同,会自动将所传参数转换封装为OrderPageDTO。
2、API接口方法和接口实现方法的参数前必须加上@RequestBody注解,否则获取的参数会为空