OpenApi
a module for Emvicy2 (2.x) PHP Framework: https://github.com/emvicy/Emvicy/tree/2.x
Installation
cd into the modules folder of your Emvicy copy; e.g.:
cd /var/www/html/modules/;git clone
git clone --branch 3.x https://github.com/emvicy/OpenApi.git OpenApi;Usage
validate against openapi file
use OpenApi\Model\Validate;
$oDTValidateRequestResponse = Validate::request(
    $oDTRequestCurrent,
    Config::get_MVC_PUBLIC_PATH() . '/openapi/api.yaml'
);
header('Content-Type: application/json');
echo json_encode(Convert::objectToArray($oDTValidateRequestResponse));validate against openapi URL
use OpenApi\Model\Validate;
// validate against openapi URL
$oDTValidateRequestResponse = Validate::request(
    $oDTRequestCurrent,
    'https://example.com/api/openapi.yaml'
);
header('Content-Type: application/json');
echo json_encode(Convert::objectToArray($oDTValidateRequestResponse));auto-creating Emvicy Routes from openapi file
All Routes lead to their given operationId, set in openapi
\OpenApi\Model\Route::autoCreateFromOpenApiFile(
    Config::get_MVC_PUBLIC_PATH() . '/openapi/api.yaml',
    '\Foo\Controller\Api'
);All Routes lead explicitely to Api::delegate()
\OpenApi\Model\Route::autoCreateFromOpenApiFile(
    Config::get_MVC_PUBLIC_PATH() . '/openapi/api.yaml',
    '\Foo\Controller\Api',
    'delegate'
);DTClassesOnOpenapi3yaml
\OpenApi\Model\Generate::DTClassesOnOpenapi3yaml(
    '/absolute/path/to/file/openapi.yaml',  # openapi yaml file | openapi yaml URL 
    'DTOpenapi',                            # Foldername; where to store DTClasses
    true,                                   # remove and create Folder for new; true|false
    false                                   # take values from "example" as default values
); Get Logs
Logs are fired to Events.
Available events are:
- Emvicy_module_OpenApi::sYamlSource
listen to event and write its content to a logfile
\MVC\Event::bind('Emvicy_module_OpenApi::sYamlSource', function($sContent){
    \MVC\Log::write($sContent, 'openapi.log');
}); Emvicy
        Emvicy
    
    