基于Feign传输对象无法接收参数的问题
作者:程冯冯
这篇文章主要介绍了基于Feign传输对象无法接收参数的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
Feign传输对象无法接收参数
今天碰到问题,当我们使用对象作为参数传输时,无法获得其参数值。
@RequestMapping(value = "/oauth/client/save") Integer saveClient(@RequestBody ClientInfo clientInfo);
发现接口内定义的@RequestBody注解是无法继承到实现中的,所以在impl中同样需要添加上@RequestBody注解。
Feign参数传递问题记录
对象传递
@RequestBody(required = false)
不支持多对象传递,至少我目前发现是这样的,如有错误或者改进的方法请提出
API层
@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); }
接口层
/** * 交易流水查询 可分页 * @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; }
单个或多个参数传递
@RequestParam/@PathVariable/***
/** * 根据商户号获取商户信息 * * @param merNo * @return */ @RequestMapping(value = "/merchant/{merNo}", method = RequestMethod.GET) String getMerchantByMerNo(@PathVariable("merNo") String merNo);
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。