import io.vertx.core.Future; import io.vertx.core.Promise; import io.vertx.core.Vertx; import io.vertx.core.buffer.Buffer; import io.vertx.core.http.HttpServer; import io.vertx.core.json.JsonObject; import io.vertx.ext.web.Router; import io.vertx.ext.web.client.HttpResponse; import io.vertx.ext.web.client.WebClient; public class Sandbox { final private static int PORT_TDG = 8181; final private static int PORT_MY = 8080; final private static String HOST = "localhost"; final private static String TOKEN = "9f226286-e0d8-4125-ad43-b123b4e464da"; final private static String TYPE = "application/json;charset=utf-8"; public static void main(String[] args) { Vertx vertx = Vertx.vertx(); WebClient client = WebClient.create(vertx); Router router = Router.router(vertx); Sandbox sandbox = new Sandbox(); HttpServer server = vertx.createHttpServer(); JsonObject request = new JsonObject().put("query", "{Book { uuid, book_name, author }}"); router //.get("/get") .post("/post") .respond( ctx -> sandbox.graphql(request, client) .onSuccess(httpResp -> { if (httpResp.statusCode() == 200) { ctx.end(httpResp.bodyAsBuffer()); } }) ); server.requestHandler(router).listen(8080); } public Future> graphql(JsonObject request, WebClient client) { Promise> promise = Promise.promise(); client .post(PORT_TDG, HOST, "/graphql") .putHeader("Content-Type", "application/json") .sendJson(request, t -> { if (t.succeeded()) { promise.complete(t.result()); } }); return promise.future(); } }