基于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);
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
