RxJava 2 API

The Web API Contract provides an rxified version of APIs

Here is a complete example:

OpenAPI3RouterFactory
  .rxCreate(vertx, "src/main/resources/petstore.yaml")
  .flatMap(routerFactory -> {
    // Spec loaded with success. router factory contains OpenAPI3RouterFactory
    // Set router factory options.
    RouterFactoryOptions options = new RouterFactoryOptions().setOperationModelKey("openapi_model");
    // Mount the options
    routerFactory.setOptions(options);
    // Add an handler with operationId
    routerFactory.addHandlerByOperationId("listPets", routingContext -> {
      // Handle listPets operation
      routingContext.response().setStatusMessage("Called listPets").end();
    });

    // Add a security handler
    routerFactory.addSecurityHandler("api_key", JWTAuthHandler.create(jwtAuth));

    // Now you have to generate the router
    Router router = routerFactory.getRouter();

    // Now you can use your Router instance
    HttpServer server = vertx.createHttpServer(new HttpServerOptions().setPort(8080).setHost("localhost"));
    return server.requestHandler(router).rxListen();
  })
  .subscribe(httpServer -> {
    // Server up and running
  }, throwable -> {
    // Error during router factory instantiation or http server start
  });