This commit is contained in:
2024-10-17 16:39:23 +02:00
parent 32f0672934
commit a860c95658
54 changed files with 0 additions and 5940 deletions

View File

@ -1,54 +0,0 @@
#include "./controller/MyController.hpp"
#include "./AppComponent.hpp"
#include "oatpp/network/Server.hpp"
#include <iostream>
void run() {
/* Register Components in scope of run() method */
AppComponent components;
/* Get router component */
OATPP_COMPONENT(std::shared_ptr<oatpp::web::server::HttpRouter>, router);
/* Create MyController and add all of its endpoints to router */
router->addController(std::make_shared<MyController>());
/* Get connection handler component */
OATPP_COMPONENT(std::shared_ptr<oatpp::network::ConnectionHandler>, connectionHandler);
/* Get connection provider component */
OATPP_COMPONENT(std::shared_ptr<oatpp::network::ServerConnectionProvider>, connectionProvider);
/* Create server which takes provided TCP connections and passes them to HTTP connection handler */
oatpp::network::Server server(connectionProvider, connectionHandler);
/* Print info about server port */
OATPP_LOGi("MyApp", "Server running on port {}", connectionProvider->getProperty("port").toString());
/* Run server */
server.run();
}
/**
* main
*/
int main(int argc, const char * argv[]) {
oatpp::Environment::init();
run();
/* Print how much objects were created during app running, and what have left-probably leaked */
/* Disable object counting for release builds using '-D OATPP_DISABLE_ENV_OBJECT_COUNTERS' flag for better performance */
std::cout << "\nEnvironment:\n";
std::cout << "objectsCount = " << oatpp::Environment::getObjectsCount() << "\n";
std::cout << "objectsCreated = " << oatpp::Environment::getObjectsCreated() << "\n\n";
oatpp::Environment::destroy();
return 0;
}

View File

@ -1,58 +0,0 @@
#ifndef AppComponent_hpp
#define AppComponent_hpp
#include "oatpp/web/server/HttpConnectionHandler.hpp"
#include "oatpp/web/mime/ContentMappers.hpp"
#include "oatpp/network/tcp/server/ConnectionProvider.hpp"
#include "oatpp/json/ObjectMapper.hpp"
#include "oatpp/macro/component.hpp"
/**
* Class which creates and holds Application components and registers components in oatpp::base::Environment
* Order of components initialization is from top to bottom
*/
class AppComponent {
public:
/**
* Create ConnectionProvider component which listens on the port
*/
OATPP_CREATE_COMPONENT(std::shared_ptr<oatpp::network::ServerConnectionProvider>, serverConnectionProvider)([] {
return oatpp::network::tcp::server::ConnectionProvider::createShared({"0.0.0.0", 8000, oatpp::network::Address::IP_4});
}());
/**
* Create Router component
*/
OATPP_CREATE_COMPONENT(std::shared_ptr<oatpp::web::server::HttpRouter>, httpRouter)([] {
return oatpp::web::server::HttpRouter::createShared();
}());
/**
* Create ConnectionHandler component which uses Router component to route requests
*/
OATPP_CREATE_COMPONENT(std::shared_ptr<oatpp::network::ConnectionHandler>, serverConnectionHandler)([] {
OATPP_COMPONENT(std::shared_ptr<oatpp::web::server::HttpRouter>, router); // get Router component
return oatpp::web::server::HttpConnectionHandler::createShared(router);
}());
/**
* Create ObjectMapper component to serialize/deserialize DTOs in Contoller's API
*/
OATPP_CREATE_COMPONENT(std::shared_ptr<oatpp::web::mime::ContentMappers>, apiContentMappers)([] {
auto json = std::make_shared<oatpp::json::ObjectMapper>();
json->serializerConfig().json.useBeautifier = true;
auto mappers = std::make_shared<oatpp::web::mime::ContentMappers>();
mappers->putMapper(json);
return mappers;
}());
};
#endif /* AppComponent_hpp */

View File

@ -1,3 +0,0 @@
#include "MyController.hpp"
// TODO - SOME CODE HERE

View File

@ -1,63 +0,0 @@
#ifndef MyController_hpp
#define MyController_hpp
#include <oatpp/web/protocol/http/Http.hpp>
#include "dto/DTOs.hpp"
#include "oatpp/macro/codegen.hpp"
#include "oatpp/macro/component.hpp"
#include "oatpp/network/tcp/client/ConnectionProvider.hpp"
#include "oatpp/web/client/HttpRequestExecutor.hpp"
#include "oatpp/web/protocol/http/outgoing/Request.hpp"
#include "oatpp/web/server/api/ApiController.hpp"
#include OATPP_CODEGEN_BEGIN(ApiController) //<-- Begin Codegen
/**
* Sample Api Controller.
*/
class MyController : public oatpp::web::server::api::ApiController {
public:
/**
* Constructor with object mapper.
* @param apiContentMappers - mappers used to serialize/deserialize DTOs.
*/
MyController(OATPP_COMPONENT(
std::shared_ptr<oatpp::web::mime::ContentMappers>, apiContentMappers))
: oatpp::web::server::api::ApiController(apiContentMappers) {}
public:
ENDPOINT("GET", "/", root) {
auto dto = Embalses::createShared();
auto connectionProvider =
oatpp::network::tcp::client::ConnectionProvider::createShared(
{"https://"
"g904262e6628ef4-rt9s33uedog5sypd.adb.eu-madrid-1."
"oraclecloudapps.com/ords/admin/api",
443});
auto requestExecutor =
oatpp::web::client::HttpRequestExecutor::createShared(
connectionProvider);
auto headers =
oatpp::web::protocol::http::Protocol::Headers::createShared();
auto request = requestExecutor->executeOnce(
"GET",
"https://"
"g904262e6628ef4-rt9s33uedog5sypd.adb.eu-madrid-1.oraclecloudapps."
"com/ords/admin/api/embalses",
headers, nullptr);
if (request->getStatusCode() == 200) {
auto responseStream = request->readBodyToString();
oatpp::data::stream::BufferOutputStream buffer;
// responseStream->readToStream(&buffer);
OATPP_LOGd("MyController", "Response: %s", responseStream);
return createResponse(Status::CODE_200, buffer.toString());
}
}
// TODO Insert Your endpoints here !!!
};
#include OATPP_CODEGEN_END(ApiController) //<-- End Codegen
#endif /* MyController_hpp */

View File

@ -1,25 +0,0 @@
#ifndef DTOs_hpp
#define DTOs_hpp
#include "oatpp/Types.hpp"
#include "oatpp/macro/codegen.hpp"
#include OATPP_CODEGEN_BEGIN(DTO)
/**
* Data Transfer Object. Object containing fields only.
* Used in API for serialization/deserialization and validation
*/
class Embalses : public oatpp::DTO {
DTO_INIT(Embalses, DTO)
DTO_FIELD(Int32, ID);
DTO_FIELD(String, AMBITO_NOMBRE);
DTO_FIELD(String, EMBALSE_NOMBRE);
DTO_FIELD(Int32, AGUA_TOTAL);
DTO_FIELD(Int32, ELECTRICO_FLAG);
};
#include OATPP_CODEGEN_END(DTO)
#endif /* DTOs_hpp */