本文介紹了從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請求的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,