问题标签 [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 投票
1 回答
1060 浏览

quarkus - quarkus-rest-client 不能与 @ApplicationScoped bean 一起用于本机图像:堆中不允许 sun.security.provider.NativePRNG 的实例

Github 上提供了重现此问题的示例项目

我正在使用 quarkus-rest-client 从我的 Quarkus 应用程序调用 REST 服务。

ExampleResource提供一个使用http://localhost:8080/echo调用的端点:https://postman-echo.com/getRestClient

虽然它工作正常,但当我尝试生成本机图像时它失败了:

如果我按照Quarkus 指南中有关此错误的说明,在 pom 中添加其他构建参数,它仍然会失败:

RestClient被定义为@ApplicationScoped组件时会出现问题。如果我更改它以使其实例化,则本机图像生成没有任何问题:

问题是如何将其定义RestClient@ApplicationScoped组件并能够生成本机图像?

0 投票
2 回答
2358 浏览

java - 如何使用 OAuth 对 MicroProfile REST 客户端调用进行身份验证?

在我的服务器应用程序中,我想使用 MicroProfile REST 客户端使用一些第三方 API。为此,我需要发送一个Authorization带有不记名令牌的 Header。

我不想在进行任何调用之前总是获取令牌,因此我需要一种机制来仅在还没有令牌或令牌过期时才检索新令牌。然后可以在每次调用中存储和使用令牌,直到它过期。下一次调用会导致 HTTP 401 Unauthorized 的 API 将导致获得一个新的令牌。

不幸的是,到目前为止,我无法找到有关如何使用 MicroProfile REST 客户端使用 OAuth 安全 API 的任何资源。我希望任何人都可以给我任何提示。我正在使用 Kotlin 和 Quarkus,但 Java 相关文档也可以。任何事情都有帮助。

这是我相当简单的客户:

0 投票
1 回答
801 浏览

java - 创建 kubernetes 部署时 Quarkus RestClient 属性的 env 值无效

按照 Quarkus Rest Client 教程,我需要在 application.properties 文件中添加与此类似的内容:

country-api/mp-rest/url=https://restcountries.eu/rest

使用 Docker 它可以工作,我可以通过参数传递属性值:

docker run -it --privileged --rm --env country-api/mp-rest/url="https://restcountries.eu/rest" mydockerhost/my-project:SNAPSHOT

Kubernetes 的 YAML 文件如下所示:

但是执行命令时出现以下错误kubectl apply -f my-projetc.yaml

The Deployment "my-project-deployment" is invalid: * spec.template.spec.containers[0].env[1].name: Invalid value: "country-api/mp-rest/url": a valid environment variable name must consist of alphabetic characters, digits, '_', '-', or '.', and must not start with a digit (e.g. 'my.env-name', or 'MY_ENV.NAME', or 'MyEnvName1', regex used for validation is '[-._a-zA-Z][-._a-zA-Z0-9]*')

Quarkus 版本:1.3.1.Final

0 投票
1 回答
1906 浏览

quarkus - 依赖注入在 RestClientBuilderListener 中不起作用

我遵循了 Quarkus 网站上的其余客户端指南。它工作正常。但是,当使用 ServiceLoader 模式注册全局提供程序时,如规范中所述,CDI bean 注入不起作用,它们都是空的。我下载了示例并简单地添加了以下类:

我还添加了内容为 org.acme.rest.client.MyListener 的文件 META-INF/services/org.eclipse.microprofile.rest.client.spi.RestClientBuilderListener。调用了 MyListener onNewBuilder 方法,但注入的提供程序 MyExceptionMapper 为 null。如何在 Quarkus 客户端注册全球提供商?

0 投票
1 回答
787 浏览

keycloak - Quarkus + keycloak - HTTP/1.1 403 Forbidden

我正在尝试Quarkus与keycloak的安全集成

这是我的休息端点

我的应用程序属性

我在端口 8180 上的本地开发机器上运行了keycloak实例我已经完成了 keycloak 的所有必要条件并创建了领域、用户、角色

我可以从 keycloak 获取令牌,如下所示 -

但是当尝试访问休息点/jwt/user时出现问题

结果是

这是令牌详细信息(我使用 jwt.io 调试器查看令牌内部)

在此处输入图像描述

Anyhelp将不胜感激

0 投票
1 回答
1833 浏览

java - 如何测试 Quarkus REST 客户端接口?

我在 Quarkus 中使用 MicroProfile REST 客户端,想知道如何对自定义客户端接口进行单元测试?

示例服务:

是否可以编写涵盖此功能的单元测试?例如,我想测试请求正文是否被正确处理并包含正确的 JSON(特别是因为我有一个问题,即 JVM 和本机图像模式之间的行为不同)。

REST 服务器资源可以很容易地使用 REST-assured 进行测试,但我没有发现任何类似的 REST 客户端接口。

关于使用 REST 客户端的Quarkus 指南也对我没有任何帮助,因为它使用的是实际服务来进行调用。在我的情况下,服务器端在构建/测试过程中不可用。

有什么建议么?

0 投票
1 回答
1097 浏览

unit-testing - 在 Quarkus 中执行端点单元测试的最佳方法是什么?

我对在 Quarkus 中执行单元测试的最佳方法有一些疑问。

一种选择是使用模拟,但我有一种感觉,使用模拟我只是“让”测试覆盖插件“开心”,但实际上我没有用这种方法测试任何东西。

另一种选择是使用真实的数据库,如嵌入式 H2 数据库,但为此,我需要按顺序放置单元测试(插入、获取、更新、删除),有时我需要从另一个测试中插入的 ID 来执行例如删除操作。有一些复杂的实体会给插入或删除带来一些困难。因此,使用这种方法,我将失去单元测试的概念,因为我将失去测试的相互依赖性。

有人对这种情况有建议吗?额外信息:我正在使用liquidbase,panache entity,junity。

0 投票
1 回答
1095 浏览

resteasy - 调试 RestEasy RestClient

我正在使用 quarkus 中的框架为 mandrill API 构建一个休息客户端

这是我的 application.properties 的相关部分

还有我的示例资源

我看到的是,如果我正在调用的 API(在这种情况下为 Mandrill)返回错误响应(例如,如果我的密钥错误),那么我用来存储响应的变量不会得到响应。相反,我向围绕它的应用程序公开的 REST API 填充了来自 Mandrill 的响应。
这是预期的行为吗?如何在 Quarkus 中调试 REST 客户端实现的输出?

被调用的 REST API 是 https://mandrillapp.com/api/docs/users.JSON.html#method=ping2

0 投票
1 回答
282 浏览

jwt - 无法在 Quarkus 应用程序中创建 JwtClaimsBuilder 的实例

我目前正在开发 Quarkus 应用程序。我创建了一个身份验证服务,它将验证用户并将创建 JWT 令牌并在成功身份验证后将其发送给客户端。

但目前,我在创建 JWT 令牌时遇到了问题。对于令牌创建,我正在使用

请参阅以下用于创建令牌的代码。

一旦执行了上述方法,就会JwtClaimsBuilder claims = Jwt.claims(jsonResName); 抛出 NullPointerException,因为它无法解析 JWT 声明。

请参考以下日志

正在传递的文件。

0 投票
1 回答
84 浏览

quarkus - 如何在测试期间覆盖 Quarkus Resteasy url?

在使用 Quarkus Restclient / RESTEasy 进行集成测试时,我们希望在运行时覆盖 url 和端口。这样做的原因是,如果我们并行构建多个模块,我们需要使用随机端口,否则我们会遇到端口冲突,或者我们需要非常仔细地协调哪个模块使用哪个端口。

有没有办法做到这一点?