package com.example.starter; import io.vertx.ext.web.handler.BodyHandler; import io.vertx.ext.web.handler.CorsHandler; import io.vertx.core.http.HttpMethod; import io.vertx.core.AbstractVerticle; import io.vertx.core.Promise; import io.vertx.ext.web.Router; public class MainVerticle extends AbstractVerticle { private DatabaseService databaseService; @Override public void start(Promise startPromise) throws Exception { databaseService = new DatabaseService(vertx); QueryObjects queryObjects = new QueryObjects(databaseService); QueryWeatherData queryWeather = new QueryWeatherData(databaseService); SetObjects setObjects = new SetObjects(databaseService); SetWeatherData setWeatherData = new SetWeatherData(databaseService); // Create a Router Router router = Router.router(vertx); router.route().handler(BodyHandler.create()); router.route().handler(CorsHandler.create() .addOrigin("*") // Allow all origins .allowedMethod(HttpMethod.GET) // Allow GET requests .allowedMethod(HttpMethod.POST) // Allow POST requests .allowedHeader("Content-Type") // Allow Content-Type header .allowedHeader("Authorization")); router.get("/objets").handler(queryObjects::getObjects); router.get("/objet").handler(queryObjects::getParticularObject); router.post("/modifObjet").handler(setObjects::setInfoObjet); router.get("/wind").handler(queryWeather::getWindInfos); router.get("/meteo").handler(queryWeather::getMeteoInfos); router.post("/addObject").handler(setObjects::newObject); router.get("/getRange").handler(queryWeather::getRangeData); router.post("/modifRangeData").handler(setWeatherData::setRangeData); vertx.createHttpServer() .requestHandler(router) .listen(8888) .onSuccess(server -> { System.out.println("HTTP server started on port " + server.actualPort()); startPromise.complete(); }) .onFailure(throwable -> { throwable.printStackTrace(); startPromise.fail(throwable); }); } }