yiisoft / yii-swagger
为 Yii 框架提供的 OpenAPI Swagger
2.1.1
2024-09-04 21:55 UTC
Requires
- php: ^8.0
- psr/http-message: ^1.0|^2.0
- psr/http-server-handler: ^1.0
- psr/http-server-middleware: ^1.0
- swagger-api/swagger-ui: ^4.1|^5.0
- yiisoft/aliases: ^1.1|^2.0|^3.0
- yiisoft/arrays: ^3.0
- yiisoft/assets: ^2.0|^3.0|^4.0
- yiisoft/cache: ^1.0|^2.0|^3.0
- yiisoft/data-response: ^1.0|^2.0
- yiisoft/html: ^3.0
- yiisoft/yii-view-renderer: ^7.1.0
- zircote/swagger-php: ^4.0
Requires (Dev)
- doctrine/annotations: ^2.0
- httpsoft/http-message: ^1.0
- maglnet/composer-require-checker: ^4.4
- phpunit/phpunit: ^9.5
- rector/rector: ^1.0
- roave/infection-static-analysis-plugin: ^1.16
- spatie/phpunit-watcher: ^1.23
- vimeo/psalm: ^4.30|^5.6
- yiisoft/csrf: ^2.0
- yiisoft/di: ^1.2
- yiisoft/psr-dummy-provider: ^1.0
- yiisoft/test-support: ^3.0
This package is auto-updated.
Last update: 2024-09-04 21:56:02 UTC
README
Yii Swagger
为 Yii 框架提供的 OpenAPI Swagger。
要求
- PHP 8.0 或更高版本。
安装
可以使用 Composer 安装此包
composer require yiisoft/yii-swagger
配置
1. 将路由配置添加到 config/routes.php
use Yiisoft\DataResponse\Middleware\FormatDataResponseAsHtml; use Yiisoft\DataResponse\Middleware\FormatDataResponseAsJson; use Yiisoft\Router\Group; use Yiisoft\Router\Route; use Yiisoft\Swagger\Middleware\SwaggerUi; use Yiisoft\Swagger\Action\SwaggerJson; // Swagger routes Group::create('/swagger', [ Route::get('') ->middleware(FormatDataResponseAsHtml::class) ->action(fn (SwaggerUi $swaggerUi) => $swaggerUi->withJsonUrl('/swagger/json-url')), Route::get('/json-url') ->middleware(FormatDataResponseAsJson::class) ->action(SwaggerJson::class), ]),
2. 在默认 API 控制器中添加注解
use OpenApi\Annotations as OA; /** * @OA\Info(title="My first API", version="1.0") */ class DefaultController { // ... }
和在操作之前
/** * @OA\Get( * path="/api/endpoint", * @OA\Response(response="200", description="Get default action") * ) */ public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface { // ... }
有关如何注释代码的详细信息,请参阅 Swagger-PHP 文档
3. 配置 SwaggerJson
动作
为了注册注解,您需要配置 SwaggerJson
您可以使用 config/params.php
中的参数来配置 SwaggerJson
//... 'yiisoft/yii-swagger' => [ 'annotation-paths' => [ '@src/Controller' // Directory where annotations are used ], 'cacheTTL' => 60 // Enables caching and sets TTL, "null" value means infinite cache TTL. ], //...
4. (可选) 添加别名和资产管理器的配置
use Yiisoft\Definitions\Reference; use Yiisoft\Assets\AssetManager; return [ //... 'yiisoft/aliases' => [ 'aliases' => [ //... '@views' => '@root/views', '@assets' => '@public/assets', '@assetsUrl' => '@baseUrl/assets', ], ], 'yiisoft/view' => [ 'basePath' => '@views', 'defaultParameters' => [ 'assetManager' => Reference::to(AssetManager::class), ] ], //... ];
5. (可选) 配置 SwaggerUi
动作
您可以使用 config/params.php
中的参数来配置 SwaggerUi
例如,您可以将 persistAuthorization
参数设置为 true
以启用授权的持久化。
//... 'yiisoft/yii-swagger' => [ 'ui-params' => [ 'persistAuthorization' => true, ], ], //...
您可以通过 点击链接 查找参数的完整列表。
6. (可选) 配置 SwaggerService
您可以在 config/params.php
中指定用于生成 OpenApi\Annotations\OpenApi
实例的选项,以配置 SwaggerService
//... 'yiisoft/yii-swagger' => [ // Default values are specified. 'open-api-options' => [ 'aliases' => OpenApi\Generator::DEFAULT_ALIASES, 'namespaces' => OpenApi\Generator::DEFAULT_NAMESPACES, 'analyser' => null, 'analysis' => null, 'processors' => null, 'logger' => null, 'validate' => true, 'version' => OpenApi\Annotations\OpenApi::DEFAULT_VERSION, ], ], //...
有关生成 OpenApi\Annotations\OpenApi
实例的更多信息,请参阅 zircote/swagger-php 包的文档。
文档
如果您需要帮助或有任何问题,Yii 论坛 是一个不错的选择。您还可以查看其他 Yii 社区资源。
许可证
Yii Swagger 是免费软件。它根据 BSD 许可证发布。有关更多信息,请参阅 LICENSE
由 Yii 软件 维护。