imetal / lumen-swagger
提供中间件,通过运行RESTful API的测试来生成swagger文档文件。
Requires
- php: >=7.1.0
- laravel/framework: >=5.3.0
- phpunit/phpunit: >=7.0|<=10.0
This package is not auto-updated.
Last update: 2024-10-02 17:45:00 UTC
README
介绍
此插件旨在在通过PHPUnit测试时生成您的REST API的文档。
安装
-
使用以下命令安装包:
composer require imetal/lumen-swagger
注意
对于Laravel 5.5或更高版本,包将自动发现。对于旧版本,请将
AutoDocServiceProvider
添加到config/app.php
中的提供者数组,如下所示'providers' => [ // ... RonasIT\Support\AutoDoc\AutoDocServiceProvider::class, ],
-
运行
php artisan vendor:publish
-
将
\RonasIT\Support\AutoDoc\Http\Middleware\AutoDocMiddleware::class
中间件添加到Http/Kernel.php
中的全局HTTP中间件堆栈。 -
将
\RonasIT\Support\AutoDoc\Tests\AutoDocTestCaseTrait
特质添加到tests/TestCase.php
-
使用以下任一方式配置文档保存
- 将
SwaggerExtension
添加到您的phpunit.xml
中的<extensions>
块。请注意,此方法将在更新PHPUnit到10版本后删除 (sebastianbergmann/phpunit#4676)<extensions> <extension class="RonasIT\Support\AutoDoc\Tests\PhpUnitExtensions\SwaggerExtension"/> </extensions> <testsuites> <testsuite name="Feature"> <directory suffix="Test.php">./tests/Feature</directory> </testsuite> </testsuites>
- 在您的CI/CD配置中的
tests
阶段之后调用php artisan swagger:push-documentation
控制台命令
用法
基本用法
-
为API端点创建测试
public function testUpdate() { $response = $this->json('put', '/users/1', [ 'name': 'Updated User', 'is_active': true, 'age': 22 ]); $response->assertStatus(Response::HTTP_NO_CONTENT); }
-
创建请求类
<?php namespace App\Http\Requests; use Illuminate\Foundation\Http\FormRequest; /** * @summary Update user * * @description * This request should be used for updating the user data * * @_204 Successful * * @is_active will indicate whether the user is active or not */ class UpdateUserDataRequest extends FormRequest { /** * Determine if the user is authorized to make this request. * * @return bool */ public function authorize() { return true; } /** * Validation Rules * * @return array */ public function rules() { return [ 'name' => 'string', 'is_active' => 'boolean', 'age' => 'integer|nullable' ]; } }
注意
为了使插件正确工作,您必须在请求类的
rules()
方法中删除所有验证规则。此外,您的请求类必须通过依赖注入与控制器连接。插件将从请求类中获取验证规则并生成输入参数的字段描述。 -
运行测试
-
转到
auto-doc.route
配置中定义的路由 -
盈利!
注释
您可以在请求类中使用以下注释来自定义API端点的文档
- @summary - 请求的简短描述
- @description - 实现说明
- @_204 - 响应代码的自定义描述。您可以指定任何您想要的代码。
- @some_field - 来自规则方法的字段的描述
注意
如果您不使用请求类,摘要、描述和参数将为空。
配置
auto-doc.route
- 生成文档的路由auto-doc.basePath
- 您API的根路径
自定义驱动程序
您可以通过创建自己的自定义驱动程序来指定收集文档的方式。
您可以在此处找到驱动程序的示例。
贡献
感谢您考虑为Lumen Swagger插件做出贡献!贡献指南可以在贡献指南中找到。
许可
Lumen Swagger插件是开源软件,许可协议为MIT许可证。