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

在运行时使用QUUKUS定义客户端目标URL

充高扬
2023-03-14

我需要从我的Quarkus应用程序发送HTTP请求。下面这个指南,我有这个RestClient:

@Path("/v1")
@RegisterRestClient
public interface CountriesService {

    @GET
    @Path("/name/{name}")
    Set<Country> getByName(@PathParam String name);
}

Path注释中,我可以配置路径。但根据本段,要调用的域/url是在配置文件中定义的。

# Your configuration properties
org.acme.rest.client.CountriesService/mp-rest/url=https://restcountries.eu/rest # 
org.acme.rest.client.CountriesService/mp-rest/scope=javax.inject.Singleton #

在我的例子中,我需要在运行时以编程方式定义此URL,因为我将其作为回调URL接收。

有办法吗?

共有1个答案

邓翼
2023-03-14

QUKUS Rest Client和QUKUS Rest Client Reactive实现了MicroProfile Rest规范,因此允许以编程方式使用RestClientBuilder创建客户端存根,例如:

public class SomeService {
   public Response doWorkAgainstApi(URI apiUri, ApiModel apiModel) {
       RemoteApi remoteApi = RestClientBuilder.newBuilder()
            .baseUri(apiUri)
            .build(RemoteApi.class);
       return remoteApi.execute(apiModel);
   }
}

看见https://download.eclipse.org/microprofile/microprofile-rest-client-2.0/microprofile-rest-client-spec-2.0.html#_sample_builder_usage

您无法通过使用创建的客户端来实现这一点

 类似资料:
  • 我需要使用 restlet 客户端放置以下 rest 请求: 我可以在一个单独的调用中获取XToken,但是在当前的调用中,我无法在我的ClientResource对象中设置“Authorization”头。 有人可以建议我需要为我拥有的以下代码行添加哪些代码: 在restlet中创建和添加“Authorization”标头会导致restlet客户端库中出现错误。 提前谢谢 阿希什·夏尔马

  • 问题内容: 使用Spring-WS时,如何在客户端动态设置自定义HTTP标头(不是SOAP标头)? 问题答案: 配置:

  • 我构建了一个实现Selenium驱动程序的ASP.NET web应用程序。我的问题是所有的测试都在本地机器上运行良好,但是在部署并作为客户端登录到我的网站并开始测试之后,驱动程序既不在服务器机器上也不在客户端机器上启动或做出任何反应 日志文件的一些 #软件:Microsoft Internet Information Services 8.5#版本:1.0#日期:2017-08-15 02:24:

  • 问题内容: 对于IE,我需要使用jsonp-polling,对于Firefox,则需要使用xhr-polling,因此我尝试在客户端定义传输类型,如下所示: 我在Firefox上进行了测试,并在socket.io-client lib上添加了日志记录。在 https://github.com/LearnBoost/socket.io- client/blob/master/dist/socket.

  • 在EJB中运行客户端代码时出错: 线程“Main thread”java中出现异常。lang.NoClassDefFoundError:weblogic上的weblogic/kernel/KernelStatus。jndi。环境(Environment.java:78)在weblogic。jndi。WLInitialContextFactory。javax上的getInitialContext(W

  • 问题内容: 我正在与socket.io聊天应用程序,我想用我的自定义客户端ID,而不是默认的(,)。连接时是否有任何发送自定义标识符的方式,或仅使用某种方式来跟踪每个ID的自定义名称?谢谢! 问题答案: 您可以在服务器上创建一个数组,并在其上存储自定义对象。例如,您可以存储Socket.io创建的ID和每个客户端发送到服务器的自定义ID: 在此示例中,您需要从每个客户端调用 storeClient