Spring Cloud Feign客户端中的空参数

时间:2019-09-27 09:06:34

标签: spring-cloud-feign

从版本spring-cloud-openfeign-core更新到版本2.1.1后,我2.1.2遇到了麻烦。

当我使用空参数执行调用时,它总是将其名称添加到查询字符串中,而以前并非如此。 在2.1.1中生成的url为http://test.url/endpoint,但在2.1.2中它生成的http://test.url/endpoint?id?id结尾。

// request
myFeignClient.myGetRequest(List.of())

// client
@FeignClient(name = "client", url = "http://test.url/")
public interface MyFeignClient {

    @RequestLine("GET /endpoint?id={id}")
    Object get(@Param(value = "id") List<String> id);
}

有什么方法可以消除空参数名称?

1 个答案:

答案 0 :(得分:0)

我不希望这能奏效。 Have a look at this

并且您应该在客户端伪装中尝试以下方法:

@GetMapping("/endpoint")
@ResponseBody
Object get(@RequestParam(value = "id", required = false) List<String> id);

服务器:

@GetMapping("/endpoint")
Object get(@RequestParam(value = "id", required = false) List<String> id) {
     //...
}