mhapach / swaggermodelgenerator
Laravel 的 Swagger 模型生成器
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
此库根据 Swagger 规范生成模型和服务方法。当前版本支持 OpenAPI 2.0(又称 OAS)和 OpenApi 3.0
安装
步骤 1. 通过 Composer 将 Eloquent 模型生成器添加到您的项目中
$ composer require mhapach/swaggermodelgenerator
步骤 2. 在 config/app.php 中注册 SwaggerModelGeneratorServiceProvider
'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);
生成的服务和模型使用示例。示例 1
$serviceAddress = "http://your-service.com/some-name";
$service = new Service($serviceAddress);
$bc = $service->benefitCategoriesUsingGET([
'path' => ['id' => 1122],
'query' => ['some-param' => 1],
]);
生成的服务和模型使用示例。示例 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}'
]);
启用调试日志。示例 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}'
]);
变更日志
请参阅 变更日志 了解最近的变化。
测试
$ composer test
贡献
请参阅 contributing.md 了解详情和待办事项清单。
安全性
如果您发现任何安全相关的问题,请通过作者电子邮件联系,而不是使用问题跟踪器。
鸣谢
许可协议
许可协议。请参阅 许可文件 了解更多信息。