Quarkus 中的 React 休息客户端 headers 注入

Reactive rest client headers injection in Quarkus

我正在按照新 quarkus-resteasy-reactive-jackson 扩展的指南在生产中部署的现有 Quarkus 应用程序中使用它。

Custom headers support 部分中,它引入了 ClientHeadersFactory 接口以允许在请求中注入 headers,但您被迫 return 同步响应。不能使用 Uni<MultivaluedMap<String, String>>,这是我的情况所需要的,因为我需要在 header 中添加一个令牌,并且这个令牌是通过对另一个 return一个Uni<Token>.

我如何在新的实现中实现这一点?如果不可能,是否有解决方法?

无法在 Quarkus 2 的 ClientHeadersFactory 中使用 Uni<MultivaluedMap<...>>。2.x(和旧版本)。我们可能会在不久的将来添加这样的功能。

目前,您可以直接@HeaderParam。您的代码可能如下所示:

Uni<String> token  = tokenService.getToken();
token.onItem().transformToUni(tokenValue -> client.doTheCall(tokenValue));

客户端界面类似于:

@Path("/")
public interface MyClient {

    @GET
    Uni<Foo> doTheCall(@HeaderParam("token") String tokenValue);

}