Archives
Trending
Support
Login
clear text
XML
Django
JavaScript
MATLAB
C
C++
C#
Python
SQL
Shell
Bash
Markdown
YAML
JSON
HTML
CSS
PHP
Java
Ruby
Go
Rust
Swift
Kotlin
Arduino
TypeScript
Perl
Autohotkey
Lua
SQF
R
Scala
Haskell
Groovy
Dart
Clojure
VB.NET
Objective-C
PowerShell
Bash
CoffeeScript
Verilog
package spring.verticles; import io.vertx.core.AbstractVerticle; import io.vertx.core.Future; import io.vertx.core.Promise; import io.vertx.core.buffer.Buffer; 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; import io.vertx.ext.web.handler.BodyHandler; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; @Component public class ProxyVerticle extends AbstractVerticle { @Value(value = "${http.port}") private int httpPort; @Value(value = "${tdg.port}") private int tdgPort; @Value(value = "${server.host}") private String serverHost; private Router router; @Override public void start() throws Exception { super.start(); this.router = Router.router(vertx); createHttpServer(); bodyHandlerEnabler(); buildPostRoute(); } private void bodyHandlerEnabler() { router.route().handler(BodyHandler.create()); } private void createHttpServer() { vertx.createHttpServer() .requestHandler(router) .listen(httpPort); } private void buildPostRoute() { router.post("/post") .handler(rc -> { this.graphql(rc.getBodyAsJson()) .onSuccess(httpResp -> { if (httpResp.statusCode() == 200) { rc.end(httpResp.bodyAsBuffer()); } }); }); } private Future
> graphql(JsonObject request) { Promise
> promise = Promise.promise(); WebClient.create(vertx) .post(tdgPort, serverHost, "/graphql") .putHeader("Content-Type", "application/json") .sendJson(request, t -> { if (t.succeeded()) { promise.complete(t.result()); } }); return promise.future(); } }
Mark as private (unlisted)
for 30 minutes
for 6 hours
for 1 day
for 1 week
for 1 month
for 1 year
everlasting (like CCCP)