package live.connector.vertxui.samples.server.helloWorldFluent; import java.lang.invoke.MethodHandles; import java.util.logging.Logger; import io.vertx.core.AbstractVerticle; import io.vertx.core.Vertx; import io.vertx.ext.web.Router; import live.connector.vertxui.samples.client.Dto; import live.connector.vertxui.samples.client.helloWorldFluentHtml.Client; import live.connector.vertxui.samples.server.AllExamplesServer; import live.connector.vertxui.server.VertxUI; import live.connector.vertxui.server.transport.Pojofy; public class ExampleHelloWorldFluent extends AbstractVerticle { private final static Logger log = Logger.getLogger(MethodHandles.lookup().lookupClass().getName()); public static void main(String[] args) { Vertx.vertx().deployVerticle(MethodHandles.lookup().lookupClass().getName()); } @Override public void start() { // Wait and do some server stuff for AJAX Router router = Router.router(vertx); router.post(Client.url).handler(Pojofy.ajax(String.class, (dto, context) -> { // Without timer, write 'return "Hello,".....' because strings are // returned as is. vertx.setTimer(1000, l -> { context.response().putHeader("Content-Type", "text/plain; charset=" + VertxUI.charset); context.response().end("Hello, " + context.request().getHeader("User-Agent")); }); return null; // null means: we take care of the request() ourselves })); // extra: pojo example. Here the Pojofy.ajax() makes more sense! router.post(Client.urlPojo).handler(Pojofy.ajax(Dto.class, (dto, context) -> { log.info("Received a pojo from the client: color=" + dto.color); return new Dto("purple"); })); AllExamplesServer.start(Client.class, router); } }