Feign传输对象无法接收参数
今天碰到问题,当我们使用对象作为参数传输时,无法获得其参数值。
1
2
|
@RequestMapping (value = "/oauth/client/save" ) Integer saveClient( @RequestBody ClientInfo clientInfo); |
发现接口内定义的@RequestBody注解是无法继承到实现中的,所以在impl中同样需要添加上@RequestBody注解。
Feign参数传递问题记录
对象传递
1
|
@RequestBody (required = false ) |
不支持多对象传递,至少我目前发现是这样的,如有错误或者改进的方法请提出
API层
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
@FeignClient (value = "transaction-feign" ) public interface TransactionApiService { /** * 交易流水查询 可分页 * * @param param * @param pageNum * @param pageSize * @return */ @RequestMapping (value = "/dealflow/list" , method = RequestMethod.POST) JsonResultDO dealFlowList( @RequestBody (required = false ) DealFlowDo param , @RequestParam (value = "pageNum" , defaultValue = "1" ) Integer pageNum , @RequestParam (value = "pageSize" , defaultValue = "20" ) Integer pageSize); } |
接口层
1
2
3
4
5
6
7
8
9
10
11
12
13
|
/** * 交易流水查询 可分页 * @return JsonResultDO */ @RequestMapping (value = "/dealflow/list" , method = RequestMethod.POST) public Page<DealFlowDo> dealFlowList( @RequestBody (required = false ) DealFlowDo param , @RequestParam (value = "pageNum" , defaultValue = "1" ) Integer pageNum , @RequestParam (value = "pageSize" , defaultValue = "20" ) Integer pageSize , @RequestParam (value = "userId" ) Long userId){ JsonResultDO resultDO = new JsonResultDO(); Page<DealFlowDo> page = (Page<DealFlowDo> )dealFlowService.queryDealFlowList(userId, param, pageNum, pageSize); return page; } |
单个或多个参数传递
1
|
@RequestParam / @PathVariable /*** |
1
2
3
4
5
6
7
8
|
/** * 根据商户号获取商户信息 * * @param merNo * @return */ @RequestMapping (value = "/merchant/{merNo}" , method = RequestMethod.GET) String getMerchantByMerNo( @PathVariable ( "merNo" ) String merNo); |
以上为个人经验,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/qq_30062181/article/details/87980963