Send a simple POST request from Quarkus/Java(从Quarkus/Java发送简单的POST请求)
问题描述
我要向另一个应用程序发送一个简单的POST请求以在那里触发一些操作。
我有一个Quarkus项目,并希望从我的CreateEntryHandler内部发送请求--这可以以一种简单的方式实现吗?或者我需要在我的项目中添加一些类似于ApacheHttpClient的东西吗?它和夸克结合在一起有意义吗?
推荐答案
我假设另一个应用程序有一个API Endpoint?
让我们说明您尝试在其他应用程序中调用的API终结点是:
POST/v1/HelloWorld
在Quarkus应用程序中,您必须执行以下操作:
- 将RestClient*注册为服务
- 在配置属性中指定服务信息
- 注入并使用此服务
-在您当前的应用程序中-
请密切注意包名。它必须在您的应用程序.properties文件中完全匹配。
HelloWorldService.java
package com.helloworld.services
@Path("/v1")
@RegisterRestClient
public interface HelloWorldService{
@POST
@Path("/helloworld")
Response callHeloWorld(HelloWorldPojo payloadToSend);
}
//请注意,我们没有在MP-rest/url中包含/v1,为什么?因为它包含在@RestClient路径中。
更新您的应用程序.属性以包括以下内容:
com.helloworld.services.HelloWorldService/mp-rest/url=https://yourOtherApplication.com/API
-您将作为有效负载发送的HelloWorldPojo
HelloWorldProjo.java
@JsonPropertyOrder({"id", "name"})
public class HelloWorldProjo{
private long id;
private String name;
//Setters
//Getters
}
在您实际要使用它的另一个服务中:
ServiceWhichCallsYourOtherAPI.java
@RequestScoped
public class ServiceWhichCallsYourOtherAPI{
@Inject
@RestClient
HelloWorldService helloWorldService;
public void methodA(){
HelloWorldPojo payloadToSend = new HelloWorldPojo();
payloadToSend.setId(123);
payloadToSend.setName("whee");
helloWorldService.callHelloWorld(payloadToSend);
}
}
POST请求随后将转到https://yourOtherApplication.com/API/v1/helloworld
json将如下所示:
{
"id":123,
"name":"whee"
}
非常棒的阅读:https://quarkus.io/guides/rest-client
这篇关于从Quarkus/Java发送简单的POST请求的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!