luttamustache / op-laravel-swagger
基于 ronasit/laravel-swagger 支持旧版 PHP 版本(<=7.2)的分支。
2.0.1
2021-04-15 10:13 UTC
Requires
- php: >=7.1.0
- laravel/framework: 8.*
- minime/annotations: dev-master
- nikic/php-parser: 4.10.4
This package is auto-updated.
Last update: 2024-09-15 18:16:46 UTC
README
此插件是从 RonasIT/laravel-swagger 分支出来的,用于支持 PHP 旧版本(<=7.2)。
安装
Composer
composer require luttamustache/op-laravel-swagger
Laravel
- 将 LuttaMustache\Support\AutoDoc\AutoDocServiceProvider::class 添加到 config/app.php 中的 providers 配置。
- 将 \RonasIT\Support\DataCollectors\LocalDataCollectorServiceProvider::class 添加到 config/app.php 中的 providers 配置。
php artisan vendor:publish
插件
- 在 Http/Kernel.php 中添加中间件 \LuttaMustache\Support\AutoDoc\Http\Middleware\AutoDocMiddleware::class。
- 将 \LuttaMustache\Support\AutoDoc\Tests\AutoDocTestCase 设置为 tests/TestCase.php 中 TestCase 的父类。
- 在 config/auto-doc.php 中,您可以指定插件的启用,项目的信息,一些默认描述和文档渲染的路由。
- 在 .env 文件中,您应该添加以下行
LOCAL_DATA_COLLECTOR_PROD_PATH=/example-folder/documentation.json LOCAL_DATA_COLLECTOR_TEMP_PATH=/tmp/documentation.json
用法
为了插件正确运行,您必须在类 YourRequest 的 rules() 方法中处理所有验证规则,该类必须通过 DependencyInjection 连接到控制器。在自定义请求的注释中,您可以指定请求的摘要和描述。插件将从您的请求中提取验证规则并将其用作输入参数的描述。
运行 phpunit 后,插件将自动生成 Swagger 2.0 文档。
每次运行 phpunit 都会完全重写文档文件。这意味着,如果您想保持文档完整,您需要为每个测试运行 phpunit。
示例
<?php namespace App\Http\Requests; use Illuminate\Foundation\Http\FormRequest; /** * @summary Updating of user * * @description * This request mostly needed to specity flags <strong>free_comparison</strong> and * <strong>all_cities_available</strong> of user * * @_204 Successful MF! */ class UpdateUserDataRequest extends FormRequest { /** * Determine if the user is authorized to make this request. * * @return bool */ public function authorize() { return true; } /** * Get the validation rules that apply to the request. * * @return array */ public function rules() { return [ 'all_cities_available' => 'boolean', 'free_comparison' => 'boolean' ]; } }
- @summary - 请求的简短描述
- @description - 实现说明
- @_204 - 响应代码的自定义描述。您可以指定任何您想要的代码。
如果您没有创建 Request 类,摘要、实现说明和参数将为空。插件将仅收集响应的代码和示例。
如果您没有为请求创建注释,摘要将自动从请求名称生成。例如,请求 UpdateUserDataRequest 将有摘要 更新用户数据请求。
如果您没有为代码描述创建注释,它将按照以下优先级自动生成
- 请求注释
- 从 auto-doc.defaults.code-descriptions.{$code} 的默认描述
- 从 Symfony\Component\HttpFoundation\Response::$statusTexts 的描述
关于配置的说明
- auto-doc.route - 这是生成的文档所在的路由
- auto-doc.basePath - 这是 API 根所在的路由
您还可以通过创建自定义数据收集器类来指定收集文档的方式。