问题标签 [quarkus-rest-client]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
121 浏览

swagger-ui - 当 Quarkus api 部署到 Kubernetes 时,Swagger UI 未显示

我已经通过启用具有属性的招摇将在 Quarkus 上开发的 api 部署到 Kubernetes,

quarkus.swagger-ui.always-include=true quarkus.swagger-ui.path=/swagger-ui.html

在本地 swagger 出现,但是当部署到 Kubernetes 时,swagger UI 不显示任何 api,它显示以下错误。在此处输入图像描述

有什么建议么?关于如何解决这个问题?

0 投票
1 回答
584 浏览

resteasy - 使用 RESTEasy 的 REST 客户端的可选响应正文

我正在为 Quarkus 编写 POC。我正在使用此快速入门指南来构建 REST 客户端。我将集成的 REST 服务是第三方。这是我当前实现的一个简单示例:

这工作正常。我遇到的问题是第三方 API 将根据成功/失败返回响应正文。在失败的情况下,它会在响应正文 ( ApiResponse) 中提供有关失败原因的详细信息。当它成功时,它什么也不返回。这会导致 Quarkus 抛出以下异常:
javax.ws.rs.ProcessingException: RESTEASY003145: Unable to find a MessageBodyReader of content-type application/octet-stream and type com.test.app.ApiResponse

我试图包装ApiResponse一个Optional类型,但没有解决问题。我在 Quarkus / RESTEasy 文档中完全看不到任何可以表明解决方法的内容。

我想知道我是否应该javax.ws.rs.core.Response改用。

0 投票
1 回答
229 浏览

quarkus - 使用 RestClient 时出现 ContextNotActiveException

我目前正在使用 quarkus 开发基于微服务的应用程序。我需要修改 SecurityIdentity(用户通过 oidc 进行身份验证)以注入从另一个微服务检索到的权限列表。我目前将其用于以下目的:

其中 CoreServiceClient 是用于检索用户权限的 RestEasy RestClient,但是当我运行代码时,我得到一个 javax.ws.rs.ProcessingException:javax.enterprise.context.ContextNotActiveException

关于如何完成这项任务的任何想法?

谢谢尤克斯

0 投票
0 回答
127 浏览

jwt - quarkus 是否支持 gzip jwt 令牌

我正在使用 Smallrye JwtClaimsBuilder 在我的应用程序中构建令牌。

是否可以使用 gzip 压缩令牌的主体?我在文档中找不到有关此的内容。

当然我可以使用不同的方式来生成令牌,但它可以通过 quarkus 框架进行验证吗?

0 投票
1 回答
196 浏览

httpresponse - 无法在 Microprofile Rest Client 中映射/获取 422 错误代码上的响应实体

我有一个 API,当我通过邮递员调用它时,它会在以下情况下给出以下响应:

案例1:状态码:200

案例2:状态码:422

我想通过使用 quarkus/java 项目的 microprofile restclient 来实现上述两种情况的相同结果。所以创建了以下类

Java DTO 类:

休息客户端类:

包 com.tatadigital.rest.service;

最后,我通过应用程序对其进行了测试,对于 case-1,按预期接收状态码为 200 的响应正文。但是对于 case-2,因为状态码是 422,所以会抛出异常并得到处理,但是在异常对象中我们有响应对象,并且在其中我们有响应实体。此响应实体为空,甚至 studentResponse 也为空。我想在 422 状态代码案例中获取错误消息(json 响应)和 microprofile 休息客户端案例。有什么方法/建议可以实现这一目标?

0 投票
0 回答
391 浏览

quarkus - Quarkus/Microprofile REST 客户端不重试失败的调用

更新:在https://github.com/quarkusio/quarkus/issues/17145下创建的问题

使用 Quarkus 1.13.3.Final 我试图在使用 Microprofile REST 客户端的 Quarkus 风格并根据文档找出故障处理:

返回 Uni 时,每个订阅都会调用远程服务。这意味着您可以通过在 Uni 上重新订阅来重新发送请求,或者使用重试 [...]

但是,当我通过返回 a 使请求在另一端失败时,Uni.createFrom().failure(new RuntimeException());客户端只会挂起,直到发生具有预设延迟的设定数量的尝试,但没有迹象表明这些尝试会到达其他服务。远程端点的代码只运行一次。

我对新的 Quarkus Reactive REST Client 和旧的客户端都进行了相同的尝试,每次都使用 Mutiny Uni 作为返回值,设置和不设置最大重试次数、等待时间等。由 Uni 的 .onFailure().retry() API 提供。

REST 客户端:

REST 客户端属性:

在调用方注入和使用 REST 客户端:

远程服务端:

调用者服务不产生任何日志,但从远程服务日志中可以清楚地看出,尽管将重试计数设置为 6,但端点要么只被调用一次,要么可能存在某种我无法做到的缓存在文档中找到任何内容。

0 投票
0 回答
447 浏览

quarkus - Quarkus 中的 Cookie 管理

如何在 Quarkus REST 客户端中配置 cookie 管理?

我正在为一个 API 构建一个客户端,该 API 在登录时设置一个会话 cookie,然后将该会话 cookie 用于身份验证 - 一个非常标准的有状态 API。

似乎默认行为 with@RegisterRestClient不会在请求之间保留 cookie。

挖掘一下,似乎有ResteasyClientBuilderImpl一个默认的字段。然后默认情况下也会禁用 cookie。cookieManagementEnabledfalseClientHttpEngineBuilder43

我还发现,如果您使用异步引擎 ( useAsyncHttpEngine),则不会使用此同步引擎构建器,并且还会启用 cookie 管理。

ResteasyClientBuilder我发现配置底层的唯一方法RestClientBuilder是使用RestClientBuilderListener. 然而,情节在这里变厚了。

有一种方法RestClientBuilder- property(String name, Object value)- 在Quarkus at least将委托给底层的情况下ResteasyClientBuilder

然而,几行下来

即它只允许调用非空方法。为了启用 cookie 管理,我需要调用enableCookieManagement- 它没有参数。

因此,我发现启用 cookie 管理的唯一方法是:

这显然远非理想,尤其是因为它在 GraalVM 原生图像设置中使用反射,因此可能还需要我在QuarkusRestClientBuilder.

那么,回到最初的问题,如何在 Quarkus REST 客户端中启用 cookie 管理?

0 投票
0 回答
166 浏览

java - 在 Quarkus 中更改构建时间配置

我正在运行一个基于 Quarkus Rest Easy 的 Java 应用程序,该应用程序从外部应用程序中提取数据以加载其缓存。但是我最近开始收到下面的异常并且似乎无法加载缓存。

我明白那个

resteasy.gzip.max.input 默认设置为 10M

(如https://docs.jboss.org/resteasy/docs/3.0.20.Final/userguide/html/gzip.html#d4e1407中所述)从错误中可以清楚地看出我解压缩数据的大小我收到的比这更高。

因此,我尝试将 quarkus ( https://quarkus.io/guides/all-config#quarkus-resteasy-common_quarkus.resteasy.gzip.max-input ) 中的默认属性更改为更高的值。

但是看起来这是一个构建时间属性,无法更改。

PS:

  1. 我尝试使用自定义值添加 application.properties,但仍然遇到相同的错误。

  2. 尝试将自定义值作为命令行参数传递,但仍然无法使其工作。

似乎我无法更改此属性的值。

有人可以指出我如何在运行时更改此值吗?

谢谢。

0 投票
3 回答
1623 浏览

yaml - 如何根据给定的 openapi 3.0.3 yaml 文件生成 Quarkus rest JX-RS 服务

目前我正在使用 quarkus 开发一个应用程序。我有一个描述所有内容的 openapi yaml 文件。我想知道是否有 quarkus 扩展或工具,我可以使用它们生成将产生和使用相同文件格式的其余端点。

0 投票
2 回答
99 浏览

reactive-programming - 如何处理 quarkus 中反应式我的 sql 客户端的故障

https://quarkus.io/guides/reactive-sql-clients页面中,我们有代码片段来使用事务执行查询更改:

所以这里 SqlClientHelper 将开始事务,如果任何失败,提交和回滚,但是有没有办法找出失败的根本原因并将其打印在日志中?在文档中没有提到我们如何做到这一点。