从Quarkus/Java发送简单的POST请求 [英] Send a simple POST request from Quarkus/Java

查看:0
本文介绍了从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请求的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆