问题标签 [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 回答
61 浏览

jax-rs - 具有外部接口的 Quarkus Jax-rs 客户端

我开始使用 Quarkus 及其 REST 客户端。根据文档,应该创建一个带有 Jax-RS 注释的接口,并使用 @RegisterRestClient 进一步注释。

我的问题是,在服务器提供的工件中,我已经拥有用于需要连接的服务的 JaxRS 接口,我可以将其导入。有没有办法使用已经创建的外部 Jax-RS 接口来创建服务?复制粘贴代码以获得完美的界面似乎是错误的,因为它已经为我提供了如此好的服务。

0 投票
1 回答
85 浏览

java - 使用 MySqlPool quarkus 响应式客户端和 AWS IAM 访问 aurora Mysql db

是否可以使用带有 AWS IAM 的 MySqlPool quarkus 反应式客户端访问 Aurora db?或者是否有任何特定的客户端,例如 quarkus 中的 Amazon DynamoDbClient(用于 Dynamo db 访问),用于 Aurora Mysql 数据库访问?

0 投票
2 回答
1512 浏览

quarkus - 在微配置文件休息客户端中设置基本身份验证

我有一个服务,它为其服务公开了许多 Jax-RS 接口。我现在想使用这些接口来连接服务。我正在使用 Quarkus,这意味着我正在使用 microprofile rest 客户端。因为我已经有了 JaxRS 接口,所以使用 @RegisterRestClient 方法并不可行。相反,我使用的是 RestClientBuilder。

我遇到的问题是身份验证。我需要访问的服务被锁定在基本身份验证之后。我为微配置文件 REST 客户端找到的所有指南都是对此的变体,其中解决方案是添加 headerparam。然而这是不可能的,因为我已经预先制作了界面,并且复制粘贴整个内容以添加标题参数确实是我宁愿避免的事情。

还应该提到的是,我已经尝试使用@Provider 过滤器来设置标题,但我似乎无法弄清楚如何使用该方法仅针对单个 REST 客户端,我有几个。

那么:如何使用微配置文件休息客户端设置基本身份验证而不弄乱 Jax-Rs 接口本身?

0 投票
1 回答
283 浏览

resteasy - RESTEASY003145:找不到内容类型 application/xml 的 MessageBodyReader

我正在尝试创建一个首次 Quarkus 项目。在这个项目中,我需要从另一个包中导入一个 Jax-rs 服务接口,并在客户端中使用它来调用服务。因此,我使用的是 RestClientBuilder,而不是基于 @RegisterRestClient 的方法,因为我无法控制 JaxRS 接口。

以及依赖项(除其他外)

但是我最终得到了例外

javax.ws.rs.ProcessingException: RESTEASY003145: 找不到内容类型 application/xml 和类型类 eu.sos.cicso.configservice.api.model.agent.Agent 的 MessageBodyReader

那不完全是预期的结果,所以我尝试了以下

添加一个日志过滤器和 org.jboss.resteasy.plugins.providers.jaxb.JAXBXmlRootElementProvider。现在的错误是

org.jboss.resteasy.plugins.providers.jaxb.JAXBUnmarshalException:RESTEASY006510:找不到媒体类型的 JAXBContextFinder:application/xml

通过日志过滤器,我可以看到输出是预期的有效 XML。我还出于纯粹的 deperation 在 CXF 代理客户端中使用了 ConfigurationService 接口,并且没有问题。我还尝试(在另一种绝望的情况下)使用 CXF JaxB 提供程序,但 Quarkus 似乎并不喜欢所有额外的依赖项,并且应用程序甚至没有启动。

那么我做错了什么?似乎我在某处错误配置了某些东西,但我完全不知道是什么。

0 投票
1 回答
2618 浏览

httprequest - 在 quarkus resteasy 中记录 HTTP 请求和响应

我在调用服务器上的 REST 端点时遇到问题,使用 Quarkus 中的 REST 客户端,使用 org.eclipse.microprofile.rest.client.RestClientBuilder 构建。我非常想通过将 HTTP 请求和响应写入日志来调试服务,这样我可能会看到实际发送到服务器的内容。然而,寻找针对该特定问题的指南却让我望而却步。我设法构建了一个日志过滤器,但它只注销了 URL 和实体 toString 值,这与发送的 HTTP 请求和响应完全不同。通过向我指出记录实际 HTTP 请求和响应的解决方案来帮助我。

0 投票
0 回答
411 浏览

java - 如何确定 Microprofile RestClient 中 x-www-form-urlencoded 的参数顺序?

用例

我有以下休息客户

Input是一个 POJO 类,包括以下属性

问题

对 API 的请求工作正常,在我的情况下,属性的顺序确实很重要(背后的原因是某些东西,我目前无法回答,抱歉)。

所以发送title=Test&description=Testdescription不同于description=Testdescription&title=Test.

我尝试过的其他解决方案

  1. 使用Form而不是 POJO:没有数据发送到服务器
  1. With Entit<Form>:没有数据发送到服务器

假设

我发现,那org.jboss.resteasy.client.jaxrs.internal.proxy.processors.FormProcessor是在HashMap内部使用。我认为这正是问题所在,因为没有保证订单。我的假设正确吗?

问题

我该如何解决这个问题并始终使用 Microprofile Rest Client 为 API 提供相同的顺序。

解决方法

它与org.jboss.resteasy.client.jaxrs.ResteasyClient调用类似

0 投票
0 回答
41 浏览

api - 如何将数据库调用和 REST 调用合并到一个聚合中?

我目前正在开发一个 API,它需要用我从另一个 API 收到的数据“扩展”它自己的数据(我的数据库)。我在域层中有一个库存类/聚合,并在基础设施层中实现了一个存储库接口。

现在我已经通过依赖注入注入了我自己的数据库的实体管理器以及外部 API 的 RestClient。

在存储库方法实现中,我首先调用其余客户端并接收其请求库存的表示。然后我使用对象映射器将它映射到我的库存类。之后,我尝试通过相同的库存 ID 从我的 boxInventory 获取附加信息,然后将其附加到之前收到的库存中。

结果是一个相当大的方法,只有在添加其他内容时才会变得更大。我现在的问题是是否有处理这种情况的好习惯?我找到了 API 组合模式,但我不确定是否可以像混合不同 API 一样处理将数据库与 API 混合。

0 投票
2 回答
128 浏览

java - REST 客户端子资源在调用时返回 AbstractMethodError

编辑:问题是quarkus-rest-client-reactive,看我的回答。

根据我对 Quarkus 中可用的 MicroProfile REST 客户端的理解,我应该能够在我的 REST 客户端界面中定义子资源,这将允许我像这样将资源嵌套在彼此之下。

但是,当我在我的代码中注入和调用客户端接口时,它会AbstractMethodErrorclient.foo("bar").toRepresentation()调用中抛出一个。

我对此的所有研究似乎都表明这是可能的,但 Quarkus 没有显示客户端子资源的具体示例。

0 投票
1 回答
713 浏览

interceptor - 在 Quarkus 中,有没有办法在 REST 客户端调用上应用响应拦截器?

我有一个需要使用的产品 REST API,它返回如下内容:
HTTP 200 OK
{ "return_code": "failure_x" }

我无法改变这一点,但我需要保持我的项目理智。

我可以使用Quarkus REST 客户端响应拦截器吗?
在我看来,拦截器是为我的控制器而不是为我的客户准备的。

我想拦截响应并将其修改为正确的 HTTP 代码,然后对其进行处理。

0 投票
0 回答
77 浏览

quarkus - 实现 Quarkus REST 客户端

我为第 3 方服务创建了一些接口:

这工作正常。

但是,我还想创建 API 的“精简版”版本。我在想MyLiteFoo implements FooService,但我注意到所有注释都需要在实现类中重新声明,因为没有@Inherited

补充:不能,implements FooService因为 Quarkus 会抱怨。

还是有更简单的方法?