properties ws.endpoint.url=https://example.com/api import javax.inject.*; import play.libs.ws.*; import com.fasterxml.jackson.databind.JsonNode; import java.util.concurrent.CompletionStage; @Singleton public class RestApiClient { private final WSClient ws; @Inject public RestApiClient(WSClient ws) { this.ws = ws; } public CompletionStage<JsonNode> get(String endpoint) { return ws.url(endpoint) .get() .thenApply(WSResponse::asJson); } public CompletionStage<JsonNode> post(String endpoint, JsonNode data) { return ws.url(endpoint) .post(data) .thenApply(WSResponse::asJson); } public CompletionStage<JsonNode> put(String endpoint, JsonNode data) { return ws.url(endpoint) .put(data) .thenApply(WSResponse::asJson); } public CompletionStage<JsonNode> delete(String endpoint) { return ws.url(endpoint) .delete() .thenApply(WSResponse::asJson); } } import play.Application; import play.inject.guice.GuiceApplicationBuilder; import play.libs.ws.WSClient; import play.libs.ws.ahc.AhcWSClient; public class Application { public static void main(String[] args) { Application application = new GuiceApplicationBuilder() .build(); WSClient ws = application.injector().instanceOf(AhcWSClient.class); RestApiClient restApiClient = new RestApiClient(ws); restApiClient.get("/api/resource") .thenAccept(response -> { System.out.println(response); }); } }


上一篇:
下一篇:
切换中文