美文网首页
Feign GET方式传递多个参数

Feign GET方式传递多个参数

作者: 八月狮子丶 | 来源:发表于2020-12-30 12:21 被阅读0次

    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 发布

    相关文章

      网友评论

          本文标题:Feign GET方式传递多个参数

          本文链接:https://www.haomeiwen.com/subject/rhqhoktx.html