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.http.HttpServerResponse;
import io.vertx.core.json.JsonObject;
import io.vertx.core.net.SocketAddress;
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;
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);
Promise> promise = Promise.promise();
JsonObject request = new JsonObject()
.put("query", "{Book { uuid, book_name, author }}");
router.post("/graphql")
.handler(ctx -> {
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()));
}
});
});
promise.future().onComplete(t -> {
if (t.succeeded()) {
var result = t.result();
var response = ctx.response()
.setStatusCode(result.statusCode())
.setChunked(true);
copyHeaders(result, response);
response.write(result.bodyAsBuffer())
.end();
}
});
}
}