gpt4 book ai didi

spring-cloud-feign - 假装客户端支持可选的请求参数

转载 作者:行者123 更新时间:2023-12-05 01:38:39 25 4
gpt4 key购买 nike

Feign客户端是否支持可选的请求参数?

例如,我有一个端点,但我没有找到一种方法来使用 feign 客户端实际使 param1 可选。

@GetMapping(path = "endpoint1")
ResponseEntity request(@RequestParam(name = "param1", required = false, defaultValue = "key") String param1){}

最佳答案

由于您使用的是 Spring Cloud Feign,我发现实现可选参数的最简单方法是使用 DTO,并可选择实现构建器模式(Lombok 可以帮助减少冗长)。

DTO 将使请求中的参数成为可选参数(当为 null 时),而不是方法签名。方法的可选参数应该是 - 几乎 - 不可能的,但一些 alternatives can be found here .

构建器模式将使初始化参数可选(或强制)details can be found here .该构建器还可用于设置默认值。 Lombok details can be found here .或者,构建器可以手动构建。 Starting at wikipedia . Some example pure Java code .

代码可能如下所示:

@GetMapping(path = "/endpoint1") //Not starting with / does not look ok...
ResponseEntity request(@SpringQueryMap MyDTO);

//MyDTO

import lombok.Builder;
import lombok.Getter;

@Getter
@Builder
public class MyDTO {

private String param1;
private String param2;
private String param3;
}

//when using

request(MyDTO.Builder().build()); //use all defaults
request(MyDTO.Builder().param1("foo").build()); //param1 set, all other defaults
request(MyDTO.Builder().param1("foo").param2("bar").build()); //param1 and param2 set

关于spring-cloud-feign - 假装客户端支持可选的请求参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59413035/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com