mhapach / swaggermodelgenerator
Swagger Model generator for Laravel
0.0.32
2024-09-16 15:27 UTC
Requires
- php: >=7.2
- ext-json: *
- guzzlehttp/guzzle: >=6.3
- laravel/framework: >=7
- symfony/yaml: >=5.0
README
This library generates models and service with methods based on Swagger scheme. Current release supports OpenAPI 2.0 (Aka OAS) and OpenApi 3.0
Installation
Step 1. Add Eloquent Model Generator to your project via Composer
$ composer require mhapach/swaggermodelgenerator
Step 2. Register SwaggerModelGeneratorServiceProvider in config/app.php
'providers' => [
//...
\mhapach\SwaggerModelGenerator\SwaggerModelGeneratorServiceProvider::class,
]
Usage
Models and service generation
$serviceScheme = "http://your-service.com/scheme";
$modelsNamespace = 'App\Services\Models';
$serviceNamespace = 'App\Services';
$modelsPath = "/your-project/app/Services/Models";
$servicePath = "/your-project/app/Services";
/** @var Swagger $converterInstance */
$converterInstance = (new SwaggerModelGenerator($serviceScheme, true))->getConverterInstance($modelsNamespace, $serviceNamespace);
$converterInstance->genModels($modelsPath);
$converterInstance->genService($servicePath);
Generated service and models usage. Example 1
$serviceAddress = "http://your-service.com/some-name";
$service = new Service($serviceAddress);
$bc = $service->benefitCategoriesUsingGET([
'path' => ['id' => 1122],
'query' => ['some-param' => 1],
]);
Generated service and models usage. Example 2
$serviceAddress = "http://your-service.com/some-name";
$token = 'daksdlka shdlkjahslkdj h==';
$headers = [
'Accept' => '*/*',
'Content-Type' => 'application/x-www-form-urlencoded',
'Cache-Control' => 'no-cache',
"Authorization" => "Bearer {$token}"
];
$service = new Service($serviceAddress, $headers);
$bc = $service->benefitCategoriesUsingGET([
'query' => ['some-param' => 1],
'body' => '{"param1":100, "param2":200}'
]);
Debug log enabling. Example 3
$serviceAddress = "http://your-service.com/some-name";
$config = config('logging.channels.'.config('logging.default'));
$config['path'] = storage_path("logs/rest.log"); // optional
$logger = \Log::build($config);
$service = new Service($serviceAddress, ['Content-Type' => 'application/json'], $logger);
//Enabling log
$service->enableLog();
// call service method
$bc = $service->benefitCategoriesUsingGET([
'query' => ['some-param' => 1],
'body' => '{"param1":100, "param2":200}'
]);
Change log
Please see the changelog for more information on what has changed recently.
Testing
$ composer test
Contributing
Please see contributing.md for details and a todolist.
Security
If you discover any security related issues, please email author email instead of using the issue tracker.
Credits
License
license. Please see the license file for more information.