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.HttpMethod; import io.vertx.core.http.HttpServer; import io.vertx.core.json.JsonObject; import io.vertx.ext.web.Route; import io.vertx.ext.web.Router; import io.vertx.ext.web.client.HttpResponse; import io.vertx.ext.web.client.WebClient; import java.util.concurrent.atomic.AtomicReference; public class NotMigrator { 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"; final private static String PATH = "/api/migrate/graphql"; public static void main(String[] args) throws Exception { Vertx vertx = Vertx.vertx(); HttpServer server = vertx.createHttpServer(); Router router = Router.router(vertx); WebClient client = WebClient.create(vertx); JsonObject req = new JsonObject() .put("query", "{Book { uuid, book_name, author }}"); NotMigrator migrator = new NotMigrator(); router .get(PATH) .respond(ctx -> Future.succeededFuture(migrator.graphql(req, client))); server.requestHandler(router).listen(8080); } public Future> graphql(JsonObject request, WebClient client) { Promise> promise = Promise.promise(); client .post("/graphql") .sendJson(request, t -> { if (t.succeeded()) { promise.complete(t.result()); } else { promise.fail(new Exception("Error while sending request to tarantool", t.cause())); } }); return promise.future(); } }