从Quarkus/Java发送一个简单的POST请求
我想向另一个应用程序发送一个简单的POST请求,在那里触发一些操作从Quarkus/Java发送一个简单的POST请求,java,post,request,quarkus,Java,Post,Request,Quarkus,我想向另一个应用程序发送一个简单的POST请求,在那里触发一些操作 我有一个quarkus项目,希望从我的CreateEntryHandler内部发送请求-这可以用简单的方式实现吗?或者我需要在我的项目中添加ApacheHttpClient之类的东西吗?与quarkus结合使用有意义吗?我假设另一个应用程序有一个API端点 让我们声明您试图在其他应用程序中调用的API端点为: POST/v1/helloworld 从Quarkus应用程序中,您必须执行以下操作: com.helloworld.s
我有一个quarkus项目,希望从我的CreateEntryHandler内部发送请求-这可以用简单的方式实现吗?或者我需要在我的项目中添加ApacheHttpClient之类的东西吗?与quarkus结合使用有意义吗?我假设另一个应用程序有一个API端点 让我们声明您试图在其他应用程序中调用的API端点为: POST/v1/helloworld 从Quarkus应用程序中,您必须执行以下操作:
com.helloworld.services.HelloWorldService/mp-rest/url=https://yourOtherApplication.com/API
- 将RestClient*注册为服务
- 在配置属性中指定服务信息
- 注入并使用此服务
package com.helloworld.services
@Path("/v1")
@RegisterRestClient
public interface HelloWorldService{
@POST
@Path("/helloworld")
Response callHeloWorld(HelloWorldPojo payloadToSend);
}
@JsonPropertyOrder({"id", "name"})
public class HelloWorldProjo{
private long id;
private String name;
//Setters
//Getters
}
@RequestScoped
public class ServiceWhichCallsYourOtherAPI{
@Inject
@RestClient
HelloWorldService helloWorldService;
public void methodA(){
HelloWorldPojo payloadToSend = new HelloWorldPojo();
payloadToSend.setId(123);
payloadToSend.setName("whee");
helloWorldService.callHelloWorld(payloadToSend);
}
}
//注意,我们没有在mp rest/url中包含/v1,为什么?因为它包含在@RestClient路径中
更新您的应用程序。属性以包括以下内容:
com.helloworld.services.HelloWorldService/mp-rest/url=https://yourOtherApplication.com/API
---您将作为有效负载发送的HelloWorldPojo
HelloWorldProjo.java
package com.helloworld.services
@Path("/v1")
@RegisterRestClient
public interface HelloWorldService{
@POST
@Path("/helloworld")
Response callHeloWorld(HelloWorldPojo payloadToSend);
}
@JsonPropertyOrder({"id", "name"})
public class HelloWorldProjo{
private long id;
private String name;
//Setters
//Getters
}
@RequestScoped
public class ServiceWhichCallsYourOtherAPI{
@Inject
@RestClient
HelloWorldService helloWorldService;
public void methodA(){
HelloWorldPojo payloadToSend = new HelloWorldPojo();
payloadToSend.setId(123);
payloadToSend.setName("whee");
helloWorldService.callHelloWorld(payloadToSend);
}
}
在另一个服务中,您实际希望使用此服务:
serviceswhichcallsyourotherapi.java
package com.helloworld.services
@Path("/v1")
@RegisterRestClient
public interface HelloWorldService{
@POST
@Path("/helloworld")
Response callHeloWorld(HelloWorldPojo payloadToSend);
}
@JsonPropertyOrder({"id", "name"})
public class HelloWorldProjo{
private long id;
private String name;
//Setters
//Getters
}
@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请求将转到
json将如下所示:
{
"id":123,
"name":"whee"
}
非常好的阅读:另一个应用程序,我假设有一个API端点 让我们声明您试图在其他应用程序中调用的API端点为: POST/v1/helloworld 从Quarkus应用程序中,您必须执行以下操作:
com.helloworld.services.HelloWorldService/mp-rest/url=https://yourOtherApplication.com/API
- 将RestClient*注册为服务
- 在配置属性中指定服务信息
- 注入并使用此服务
package com.helloworld.services
@Path("/v1")
@RegisterRestClient
public interface HelloWorldService{
@POST
@Path("/helloworld")
Response callHeloWorld(HelloWorldPojo payloadToSend);
}
@JsonPropertyOrder({"id", "name"})
public class HelloWorldProjo{
private long id;
private String name;
//Setters
//Getters
}
@RequestScoped
public class ServiceWhichCallsYourOtherAPI{
@Inject
@RestClient
HelloWorldService helloWorldService;
public void methodA(){
HelloWorldPojo payloadToSend = new HelloWorldPojo();
payloadToSend.setId(123);
payloadToSend.setName("whee");
helloWorldService.callHelloWorld(payloadToSend);
}
}
//注意,我们没有在mp rest/url中包含/v1,为什么?因为它包含在@RestClient路径中
更新您的应用程序。属性以包括以下内容:
com.helloworld.services.HelloWorldService/mp-rest/url=https://yourOtherApplication.com/API
---您将作为有效负载发送的HelloWorldPojo
HelloWorldProjo.java
package com.helloworld.services
@Path("/v1")
@RegisterRestClient
public interface HelloWorldService{
@POST
@Path("/helloworld")
Response callHeloWorld(HelloWorldPojo payloadToSend);
}
@JsonPropertyOrder({"id", "name"})
public class HelloWorldProjo{
private long id;
private String name;
//Setters
//Getters
}
@RequestScoped
public class ServiceWhichCallsYourOtherAPI{
@Inject
@RestClient
HelloWorldService helloWorldService;
public void methodA(){
HelloWorldPojo payloadToSend = new HelloWorldPojo();
payloadToSend.setId(123);
payloadToSend.setName("whee");
helloWorldService.callHelloWorld(payloadToSend);
}
}
在另一个服务中,您实际希望使用此服务:
serviceswhichcallsyourotherapi.java
package com.helloworld.services
@Path("/v1")
@RegisterRestClient
public interface HelloWorldService{
@POST
@Path("/helloworld")
Response callHeloWorld(HelloWorldPojo payloadToSend);
}
@JsonPropertyOrder({"id", "name"})
public class HelloWorldProjo{
private long id;
private String name;
//Setters
//Getters
}
@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请求将转到
json将如下所示:
{
"id":123,
"name":"whee"
}
非常棒,请阅读:嘿,伙计,首先谢谢你!!这个真的帮了我大忙。老实说,我在quarkus中很不正常-@RegisterRestClient似乎未被识别,我需要什么软件包?我将org.eclipse.microfile.rest.client添加到pom.xml中,但似乎没有任何帮助。有什么想法吗?再次感谢:)io.quarkus quarkus rest客户端io.quarkus quarkus rest客户端已修复!如果你不介意的话:我如何向这个POST请求添加一些简单的JSON?[抱歉在此聊天]我更新了方法以接收有效负载对象。简单的一个。希望这对你有帮助。很抱歉回复太晚-很好的更新。工作得很有魅力!非常感谢我的朋友:)嘿,伙计,首先谢谢你!!这个真的帮了我大忙。老实说,我在quarkus中很不正常-@RegisterRestClient似乎未被识别,我需要什么软件包?我将org.eclipse.microfile.rest.client添加到pom.xml中,但似乎没有任何帮助。有什么想法吗?再次感谢:)io.quarkus quarkus rest客户端io.quarkus quarkus rest客户端已修复!如果你不介意的话:我如何向这个POST请求添加一些简单的JSON?[抱歉在此聊天]我更新了方法以接收有效负载对象。简单的一个。希望这对你有帮助。很抱歉回复太晚-很好的更新。工作得很有魅力!非常感谢我的朋友:)