Feign GET方式传递多个参数

Feign GET方式传递参数

单个参数

错误示例

@FeignClient(name = "demoFeignClient")
public interface DemoFeignClient {
    @RequestMapping(value = "/test", method = RequestMethod.GET)
    public String test(String name);
}

上面的示例如果参数为空,不会有问题,当存在参数时,会报错。

因为OpenFeign在构造请求时需要@RequestMapping/@RequestParam/@PathVariable/@RequestHeader等来构造http请求。
而GET请求如果参数没有注解,会转POST方式。

正确写法

@FeignClient(name = "demoFeignClient")
public interface DemoFeignClient {
    @GetMapping(value = "/test)
    public String test(@RequestParam("name") String name);
}

多个参数

错误示例

@FeignClient(name = "demoFeignClient")
public interface DemoFeignClient {
    @GetMapping("/test")
    public User test(User user);
}

正确写法

方法一

@FeignClient(name = "demoFeignClient")
public interface DemoFeignClient {
    @GetMapping("/test")
    public User test(@SpringQueryMap User user);
}

方法二

把参数平铺出来,每个参数加上@RequestParam注解。

@FeignClient(name = "demoFeignClient")
public interface DemoFeignClient {
  @GetMapping(value = "/test")
  public User test(@RequestParam("id") Long id, @RequestParam("name") String name);
}

方法三

使用Map的方式

@FeignClient(name = "demoFeignClient")
public interface DemoFeignClient {
  @GetMapping(value = "/test")
  public User test(@RequestParam Map<String, Object> map);
}

本文由博客群发一文多发等运营工具平台 OpenWrite 发布

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前提# 在日常使用SpringMVC进行开发的时候,有可能遇到前端各种类型的请求参数,这里做一次相对全面的总结。S...
    cuixiaoyan阅读 3,297评论 0 0
  • 查看原文 一、GET请求多参数URL 1、方法一(推荐) @FeignClient(“microservice-p...
    darendu阅读 3,427评论 0 0
  • 久违的晴天,家长会。 家长大会开好到教室时,离放学已经没多少时间了。班主任说已经安排了三个家长分享经验。 放学铃声...
    飘雪儿5阅读 12,192评论 16 22
  • 今天感恩节哎,感谢一直在我身边的亲朋好友。感恩相遇!感恩不离不弃。 中午开了第一次的党会,身份的转变要...
    余生动听阅读 13,585评论 0 11
  • 可爱进取,孤独成精。努力飞翔,天堂翱翔。战争美好,孤独进取。胆大飞翔,成就辉煌。努力进取,遥望,和谐家园。可爱游走...
    赵原野阅读 7,718评论 1 1