This library generates models and service with methods based on Swagger scheme. Current release supports OpenAPI 2.0 (Aka OAS) and OpenApi 3.0
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,
]
$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);
$serviceAddress = "http://your-service.com/some-name";
$service = new Service($serviceAddress);
$bc = $service->benefitCategoriesUsingGET([
'path' => ['id' => 1122],
'query' => ['some-param' => 1],
]);
$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}'
]);
$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}'
]);
Please see the changelog for more information on what has changed recently.
$ composer test
Please see contributing.md for details and a todolist.
If you discover any security related issues, please email author email instead of using the issue tracker.
license. Please see the license file for more information.