PHP code example of dandoetech / openapi-generator

1. Go to this page and download the library: Download dandoetech/openapi-generator 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/ */

    

dandoetech / openapi-generator example snippets


use DanDoeTech\ResourceRegistry\Registry\{ArrayRegistryDriver, Registry};
use DanDoeTech\ResourceRegistry\Definition\{FieldDefinition, FieldType, ActionDefinition};
use DanDoeTech\OpenApiGenerator\OpenApiGenerator;
use DanDoeTech\OpenApiGenerator\Support\ResourceResolver;

// Build a registry (or use class-based resources via laravel-resource-registry)
$registry = new Registry(new ArrayRegistryDriver([
    'product' => [
        'label' => 'Product',
        'fields' => [
            new FieldDefinition('id', FieldType::Integer, nullable: false),
            new FieldDefinition('name', FieldType::String, nullable: false),
            new FieldDefinition('price', FieldType::Float, nullable: false),
        ],
        'actions' => [new ActionDefinition('create')],
    ],
]));

// Generate the spec
$generator = new OpenApiGenerator(
    resolver: new ResourceResolver(),
    title: 'My API',
    version: '1.0.0',
);
$doc = $generator->generate($registry);

echo $doc->toJson();

$generator = new OpenApiGenerator(
    resolver: new ResourceResolver($optionalFallbackProvider),
    title: 'My API',
    version: '2.0.0',
    servers: [['url' => 'https://api.example.com']],
);

use DanDoeTech\OpenApiGenerator\ModelMeta\ArrayModelMetaProvider;

$fallback = new ArrayModelMetaProvider([
    'product' => [
        new FieldDefinition('id', FieldType::Integer, nullable: false),
        new FieldDefinition('name', FieldType::String, nullable: false),
    ],
]);
$resolver = new ResourceResolver($fallback);