public static void main(String[] args) { Vertx vertx = Vertx.vertx(); Router router = Router.router(vertx); router.get("/").handler(rc -> rc.response().end("Hello")); router.get("/:name").handler(rc -> rc.response().end("Hello " + rc.pathParam("name"))); vertx.createHttpServer() .requestHandler(router) .listen(8080); } }
ctx.response().putHeader(HttpHeaders.CONTENT_TYPE, "text/html").end(res.result()); } else { ctx.fail(res.cause()); ctx.fail(lookup.cause()); return; ctx.response().putHeader(HttpHeaders.CONTENT_TYPE, "application/json"); ctx.response().end(json.encode()); }); }); .put("username", ctx.request().getFormAttribute("username")) .put("email", ctx.request().getFormAttribute("email")) .put("fullname", ctx.request().getFormAttribute("fullname")) .put("location", ctx.request().getFormAttribute("location")) .put("age", ctx.request().getFormAttribute("age")) .put("gender", ctx.request().getFormAttribute("gender")); ctx.fail(lookup.cause()); return; ctx.response().setStatusCode(201); ctx.response().end(); }); }); mongo.removeOne("users", new JsonObject().put("_id", ctx.request().getParam("id")), lookup -> {
@Override public void start() throws Exception { Router router = Router.router(vertx); router.route().blockingHandler(routingContext -> { // Blocking handlers are allowed to block the calling thread // So let's simulate a blocking action or long running operation try { Thread.sleep(5000); } catch (Exception ignore) { } // Now call the next handler routingContext.next(); }, false); router.route().handler(routingContext -> { routingContext.response().putHeader("content-type", "text/html").end("Hello World!"); }); vertx.createHttpServer().requestHandler(router).listen(8080); } }
private void hello(RoutingContext context) { logger.info("Hello request from {}", context.request().remoteAddress()); context.response() .putHeader("Content-Type", "text/plain") .end("Hello from Vert.x!"); }
@Override public void handle(RoutingContext context) { TracingHandler tracingHandler = context.get(TracingHandler.class.getName()); if (tracingHandler != null) { // then we already have a span if (!context.failed()) { // re-routed, so re-attach the end handler context.addHeadersEndHandler(tracingHandler); } context.next(); return; } Span span = serverHandler.handleReceive(extractor, context.request()); TracingHandler handler = new TracingHandler(context, span); context.put(TracingHandler.class.getName(), handler); context.addHeadersEndHandler(handler); try (Tracer.SpanInScope ws = tracer.withSpanInScope(span)) { context.next(); } }
@Test public void testParamEscape2() throws Exception { router.route("/demo/:abc").handler(rc -> { assertEquals("Hello/World!", rc.request().params().get("abc")); rc.response().end(rc.request().params().get("abc")); }); testRequest(HttpMethod.GET, "/demo/Hello%2FWorld!", 200, "OK", "Hello/World!"); }
@Test public void testFailCalled1() throws Exception { Router subRouter = Router.router(vertx); router.mountSubRouter("/subpath", subRouter); subRouter.route("/foo/*").handler(rc -> rc.fail(557)); router.route("/subpath/*").failureHandler(rc -> { assertEquals(557, rc.statusCode()); assertNull(rc.failure()); rc.response().setStatusCode(rc.statusCode()).setStatusMessage("Chipmunks").end(); }); testRequest(HttpMethod.GET, "/subpath/foo/bar", 557, "Chipmunks"); }
@Override public void start() throws Exception { Router router = Router.router(vertx); allowedMethods.add(HttpMethod.PUT); router.route().handler(CorsHandler.create("*").allowedHeaders(allowedHeaders).allowedMethods(allowedMethods)); router.get("/access-control-with-get").handler(ctx -> { HttpServerResponse httpServerResponse = ctx.response(); httpServerResponse.setChunked(true); MultiMap headers = ctx.request().headers(); for (String key : headers.names()) { httpServerResponse.write(key + ": "); httpServerResponse.write(headers.get(key)); httpServerResponse.write("<br>"); }); router.post("/access-control-with-post-preflight").handler(ctx -> { HttpServerResponse httpServerResponse = ctx.response(); httpServerResponse.setChunked(true); MultiMap headers = ctx.request().headers(); for (String key : headers.names()) { httpServerResponse.write(key + ": "); httpServerResponse.write(headers.get(key));
for (String authority : ctx.request().params().getAll("authority")) { authorities.add(authority); ctx.response().putHeader("Content-Type", "text/plain"); ctx.response().end(jwt.generateToken(new JsonObject(), new JWTOptions().setExpiresInSeconds(60).setPermissions (authorities))); }); ctx.response().putHeader("Content-Type", "text/plain"); ctx.response().end("this secret is not defcon!"); }); ctx.user().isAuthorised("defcon1", allowed -> { if (allowed.failed()) { ctx.fail(allowed.cause()); return; ctx.response().setStatusCode(403).end(); return; ctx.response().putHeader("Content-Type", "text/plain"); ctx.response().end("this secret is defcon1!"); }); }); ctx.user().isAuthorised("defcon2", allowed -> { if (allowed.failed()) { ctx.fail(allowed.cause()); return;
@Test public void testRegex1() throws Exception { router.routeWithRegex("\\/([^\\/]+)\\/([^\\/]+)").handler(rc -> { MultiMap params = rc.request().params(); rc.response().setStatusMessage(params.get("param0") + params.get("param1")).end(); }); testPattern("/dog/cat", "dogcat"); }
@Test public void testMultipleSetFailureHandler() throws Exception { router.get("/path").handler(routingContext -> routingContext.fail(500)).failureHandler(routingContext -> { routingContext.put("response", "handler1"); routingContext.next(); }).failureHandler(routingContext -> { routingContext.put("response", routingContext.get("response") + "handler2"); routingContext.next(); }).failureHandler(routingContext -> { HttpServerResponse response = routingContext.response(); response.setChunked(true); response.setStatusMessage("ERROR"); response.setStatusCode(500); response.end(routingContext.get("response") + "handler3"); }); testRequest(HttpMethod.GET, "/path", 500, "ERROR", "handler1handler2handler3"); }
@Override public void start() throws Exception { Router router = Router.router(vertx); router.route().handler(BodyHandler.create()); router.route("/").handler(routingContext -> { routingContext.response().putHeader("content-type", "text/html").end( "<form action=\"/form\" method=\"post\">\n" + " <div>\n" + router.post("/form").handler(ctx -> { ctx.response().putHeader(HttpHeaders.CONTENT_TYPE, "text/plain"); ctx.response().end("Hello " + ctx.request().getParam("name") + "!"); });
for (String authority : ctx.request().params().getAll("authority")) { authorities.add(authority); ctx.response().putHeader("Content-Type", "text/plain"); ctx.response().end(jwt.generateToken(new JsonObject(), new JWTOptions().setExpiresInSeconds(60).setPermissions (authorities))); }); router.get("/api/protected").handler(ctx -> { ctx.response().putHeader("Content-Type", "text/plain"); ctx.response().end("this secret is not defcon!"); }); router.get("/api/protected/defcon1").handler(ctx -> { ctx.response().putHeader("Content-Type", "text/plain"); ctx.response().end("this secret is defcon1!"); }); router.get("/api/protected/defcon2").handler(ctx -> { ctx.response().putHeader("Content-Type", "text/plain"); ctx.response().end("this secret is defcon2!"); }); router.get("/api/protected/defcon3").handler(ctx -> { ctx.response().putHeader("Content-Type", "text/plain"); ctx.response().end("this secret is defcon3!"); });
@Override public void start() { Router router = Router.router(vertx); router.get("/").handler(rc -> { String param = rc.request().getParam("name"); if (param == null) { param = "world"; } vertx.eventBus().<String>send("request", param, reply -> { if (reply.failed()) { rc.response().setStatusCode(400).end(reply.cause().getMessage()); } else { String content = reply.result().body(); rc.response().end(content); } }); }); vertx.createHttpServer() .requestHandler(router) .listen(8080); } }
@Override public void start() throws Exception { Router router = Router.router(vertx); router.route().handler(BodyHandler.create().setUploadsDirectory("uploads")); router.route("/").handler(routingContext -> { routingContext.response().putHeader("content-type", "text/html").end( "<form action=\"/form\" method=\"post\" enctype=\"multipart/form-data\">\n" + " <div>\n" + router.post("/form").handler(ctx -> { ctx.response().putHeader("Content-Type", "text/plain"); ctx.response().setChunked(true); for (FileUpload f : ctx.fileUploads()) { System.out.println("f"); ctx.response().write("Filename: " + f.fileName()); ctx.response().write("\n"); ctx.response().write("Size: " + f.size()); ctx.response().end(); });
@Override public void start() throws Exception { Router router = Router.router(vertx); router.route().handler(CookieHandler.create()); router.route().handler(BodyHandler.create()); router.route().handler(SessionHandler.create(LocalSessionStore.create(vertx))); router.route("/logout").handler(context -> { context.clearUser(); context.response().putHeader("location", "/").setStatusCode(302).end(); });
final Router router = Router.router(vertx); router.route().handler(UserSessionHandler.create(authProvider)); ctx.response() .putHeader("Content-Type", "text/html") .end(res.result()); } else { ctx.fail(res.cause()); router.get("/protected").handler(ctx -> { AccessToken user = (AccessToken) ctx.user(); ctx.session().destroy(); ctx.fail(res.cause()); } else { ctx.session().destroy(); ctx.fail(res2.cause()); } else { userInfo.put("private_emails", res2.result().jsonArray()); ctx.response() .putHeader("Content-Type", "text/html") .end(res3.result()); } else { ctx.fail(res3.cause());
vertx.eventBus().consumer("vtoons.placeOrder", this::placeOrder); Router router = Router.router(vertx); router.post("/login").handler(ctx -> { JsonObject credentials = ctx.getBodyAsJson(); if (credentials == null) { ctx.fail(400); return; ctx.fail(403); return; ctx.setUser(login.result()); ctx.response().putHeader(HttpHeaders.CONTENT_TYPE, "application/json").end("{}"); }); }); router.route("/eventbus/*").handler(ctx -> { if (ctx.user() == null) { ctx.fail(403); } else { ctx.next();