我正在尝试使用 same feign 客户端来调用/POST different 端点(端点 1、端点 2 等),如下所示(有效负载结构相同。可以假设端点数量将继续保持 3 [比如说]部署的应用程序);
目前只能以 https://www.baeldung.com/spring-cloud-feign-oauth-token 为参考成功实现调用“endpoint1”,但在扩展它以支持基于不同动态的不同调用方面面临着挑战“输入”,使用单个假客户端。任何帮助/建议表示赞赏?
使用 Spring Boot 2.7.X 和 JDK 11。
我认为你可以通过传递包含授权(Basic、Digest 或 OAuth2)的 headerMap 来做到这一点,如下所示:
@FeignClient(name = "dummy", url = "empty")
public interface Client {
@PostMapping
void call(URI baseUri, @RequestHeader Map<String, String> headerMap, @RequestBody RequestBody requestBody);
}
在您的服务中,您可以创建自定义 headerMap:
Map<String, String> headers = new HashMap<>();
headers.put("Authorization", <BASIC or other authorization>);
client.call(new URI("http://localhost:8080/endpoint"), headers, requestBody);