1. Go to this page and download the library: Download cebe/php-openapi library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
cebe / php-openapi example snippets
use cebe\openapi\Reader;
// realpath is needed for resolving references with relative Paths or URLs
$openapi = Reader::readFromJsonFile(realpath('openapi.json'));
use cebe\openapi\Reader;
// realpath is needed for resolving references with relative Paths or URLs
$openapi = Reader::readFromYamlFile(realpath('openapi.yaml'));
// you may also specify the URL to your API Description file
$openapi = Reader::readFromYamlFile('https://raw.githubusercontent.com/OAI/OpenAPI-Specification/3.0.2/examples/v3.0/petstore-expanded.yaml');
echo $openapi->openapi; // openAPI version, e.g. 3.0.0
echo $openapi->info->title; // API title
foreach($openapi->paths as $path => $definition) {
// iterate path definitions
}
use cebe\openapi\spec\OpenApi;
use cebe\openapi\spec\PathItem;
// create base API Description
$openapi = new OpenApi([
'openapi' => '3.0.2',
'info' => [
'title' => 'Test API',
'version' => '1.0.0',
],
'paths' => [],
]);
// manipulate description as needed
$openapi->paths['/test'] = new PathItem([
'description' => 'something'
]);
// ...
$json = \cebe\openapi\Writer::writeToJson($openapi);
use cebe\openapi\spec\OpenApi;
use cebe\openapi\spec\PathItem;
use cebe\openapi\spec\Info;
// create base API Description
$openapi = new OpenApi([
'openapi' => '3.0.2',
'info' => new Info([
'title' => 'Test API',
'version' => '1.0.0',
]),
'paths' => [
'/test' => new PathItem([
'description' => 'something'
]),
],
]);
$json = \cebe\openapi\Writer::writeToJson($openapi);
use cebe\openapi\Reader;
use cebe\openapi\spec\OpenAPI;
use cebe\openapi\ReferenceContext;
// there are two different modes for resolving references:
// ALL: resolve all references, which will result in a large description with a lot of repetition
// but no references (except if there are recursive references, these will stop at some level)
$mode = ReferenceContext::RESOLVE_MODE_ALL;
// INLINE: only references to external files are resolved, references to places in the current file
// are still Reference objects.
$mode = ReferenceContext::RESOLVE_MODE_INLINE;
// an absolute URL or file path is needed to allow resolving external references
$openapi = Reader::readFromJsonFile('https://www.example.com/api/openapi.json', OpenAPI::class, $mode);
$openapi = Reader::readFromYamlFile('https://www.example.com/api/openapi.yaml', OpenAPI::class, $mode);
$openapi->resolveReferences(
new \cebe\openapi\ReferenceContext($openapi, 'https://www.example.com/api/openapi.yaml')
);
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.