#include "./server_components.hpp" #include "./server.hpp" #include "oatpp/network/Server.hpp" #include "./dto/DTOs.hpp" /** * Custom Request Handler */ class Handler : public oatpp::web::server::HttpRequestHandler { private: /* Inject object mapper component */ OATPP_COMPONENT(std::shared_ptr, m_objectMapper); public: /** * Handle incoming request and return outgoing response. */ std::shared_ptr handle(const std::shared_ptr& request) override { auto message = MessageDto::createShared(); message->statusCode = 1024; message->message = "Hello DTO!"; return ResponseFactory::createResponse(Status::CODE_200, message, m_objectMapper); } }; void Server::run() { /* Register Components in scope of run() method */ AppComponent components; /* Get router component */ OATPP_COMPONENT(std::shared_ptr, router); /* Route GET - "/hello" requests to Handler */ router->route("GET", "/hello", std::make_shared()); /* Get connection handler component */ OATPP_COMPONENT(std::shared_ptr, connectionHandler); /* Get connection provider component */ OATPP_COMPONENT(std::shared_ptr, connectionProvider); /* Create server which takes provided TCP connections and passes them to HTTP connection handler */ oatpp::network::Server server(connectionProvider, connectionHandler); /* Priny info about server port */ OATPP_LOGI("MyApp", "Server running on port %s", connectionProvider->getProperty("port").getData()); /* Run server */ server.run(); }