当前位置: 首页 > 知识库问答 >
问题:

Quarkus中的反应性rest客户端头注入

阎鹏
2023-03-14

自定义头支持一节中,引入了ClientHeadersFactory接口,允许在请求中注入头,但必须返回同步响应。我们不能使用uni > ,这正是我的情况所需要的,因为我需要在头中添加一个令牌,而这个令牌是由返回uni 的另一个restendpoint的请求检索的。

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

共有1个答案

糜帅
2023-03-14

在Quarkus 2.2.x(和旧版本)的ClientHeadersFactory中不可能使用uni > 。我们可能会在不久的将来增加这样一个特性。

目前,您可以直接@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);

}
 类似资料:
  • 我正在调用一个endpoint,在该endpoint,我需要的信息将在响应头中返回(https://keycloak.discourse.group/t/rest-api-create-user-no-user-identifier-in-response/1964/4)。如果我使用Quarkus REST客户端(https://Quarkus.io/guides/rest-client)如何检索

  • 我注意到Rest客户端上有两个指南:MicroProfile和Vertx。既然微文件支持异步,那么使用基于Vertx的Rest客户端有什么好处?

  • 我有一个安全的微服务正在调用另一个安全的微服务。这两个服务在KeyCloak中都有服务帐户。我如何配置第一个服务在调用第二个服务时自动从keycloak获得访问令牌?这是一个简单的服务到服务通信。Quarkus Rest客户机是否有API来执行此操作?如果没有,我如何使用Vert.x rest客户端来实现这一点?

  • 描述我正在使用MP Rest Client从我的服务实现中调用另一个Rest服务的错误,并希望通过使用覆盖一些头属性,但当我使用使用另一个CDI bean时,会引发。使用Micro Profile Rest Client 1.4,如果您的实现由CDI管理,则可以使用“@Inject”。这允许您注入机密,例如,或任何其他CDIBean来计算头值。 预期行为注入的ConfigProperty可用且不为

  • 我尝试为我的后期服务添加一个示例,这是一个使用quarkus构建的简单rest API。 java版本运行良好。 当我添加另一个 Kotlin 来测试 Quarkus 中的 Kotlin 和 Gradle 支持时,它失败了,REST 客户端接口无法注入为 CDI bean。 是Jaxrs资源,用于公开将原始两个API组合在一起的聚合API。 以上两种注入Bean的方法都失败了。 REST客户端接口

  • 我有一个客户机包,其中定义了我的REST客户机,包含以下接口和模型: 编辑: 我使用的是quarkus-rest-client-jackson和quarkus-rest-client依赖项,任何地方都没有jsonb依赖项。 我试图缩小这个问题的范围:我已经将客户机/请求类移到我的主包中,并且我已经删除了lombok注释,并将我的具有Jackson注释的字段公之于众。还是同样的问题...谁能指出我做