基于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 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 page = (Page )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);

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

你可能感兴趣的:(基于Feign传输对象无法接收参数的问题)