MySQL 9.4.0
Source Code Documentation
openapi_object_creator.cc File Reference
#include "mrs/rest/openapi_object_creator.h"
#include <charconv>
#include <chrono>
#include <iomanip>
#include <sstream>
#include "helper/string/contains.h"
#include "mrs/database/converters/column_datatype_converter.h"
#include "mrs/rest/handler.h"
#include "mysql/harness/string_utils.h"

Classes

class  mrs::rest::OpenApiCreator
 Helper class that facilitates generating OpenAPI swagger for the given DBobject entry. More...
 

Namespaces

namespace  mrs
 
namespace  mrs::rest
 
namespace  mrs::rest::anonymous_namespace{openapi_object_creator.cc}
 

Functions

std::string mrs::rest::anonymous_namespace{openapi_object_creator.cc}::get_timestamp ()
 
bool mrs::rest::async_enabled (const std::optional< std::string > &options)
 Check if asynchronous tasks are enabled in options. More...
 
rapidjson::Value mrs::rest::get_header_info (std::shared_ptr< DbService > service, rapidjson::Document::AllocatorType &allocator)
 Create OpenAPI title, version and description. More...
 
rapidjson::Value mrs::rest::get_security_scheme (rapidjson::Document::AllocatorType &allocator)
 Create security scheme for OpenAPI. More...
 
static std::optional< int > mrs::rest::get_type_size (std::string_view datatype)
 
rapidjson::Value mrs::rest::get_route_openapi_component (DbObjectPtr entry, rapidjson::Document::AllocatorType &allocator)
 Create OpenAPI components section containing security schemes and schemas (type information with constraints) for each db object passed as a parameter. More...
 
void mrs::rest::get_procedure_metadata_component (rapidjson::Value &schema_properties, rapidjson::Document::AllocatorType &allocator)
 Create "_metadata" schema component item from a procedure call. More...
 
static rapidjson::Value mrs::rest::get_http_500_schema (rapidjson::Document::AllocatorType &allocator)
 
rapidjson::Value mrs::rest::get_route_openapi_schema_path (const std::optional< uint32_t > privileges, DbObjectPtr entry, const std::string &url, const bool is_async, rapidjson::Document::AllocatorType &allocator)
 Create OpenAPI 'paths' section. More...
 
bool mrs::rest::is_supported (const std::shared_ptr< mrs::database::entry::DbObject > &db_obj, const std::shared_ptr< mrs::database::entry::DbSchema > &db_schema)
 Check if the given DB Object entry can be used for getting an OpenAPI description. More...
 
rapidjson::Value mrs::rest::add_task_id_endpoint (const std::optional< uint32_t > privileges, DbObjectPtr entry, rapidjson::Document::AllocatorType &allocator)
 Add specification related to endpoint responsible for async operations (located at /service/schema/object/{taskId}). More...