This website uses Cookies to provide you with the best possible service. Please see our Privacy Policy for more information. Click the check box below to accept cookies. Then confirm with a click on "Save".  
Status: 2025-02-15

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');
});