服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Java教程 - 基于Feign传输对象无法接收参数的问题

基于Feign传输对象无法接收参数的问题

2022-09-29 15:40程冯冯 Java教程

这篇文章主要介绍了基于Feign传输对象无法接收参数的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

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

延伸 · 阅读

精彩推荐