hms5232 / laravel-swagger
在 Laravel 中使用 SwaggerUI 渲染 OpenAPI JSON 或 YAML。
v0.1.6
2024-08-15 12:04 UTC
Requires
- php: ^8.0
- illuminate/support: ^8.0 || ^9.0 || ^10.0 || ^11.0
Requires (Dev)
- orchestra/testbench: ^6.10 || ^7.11 || ^8.0 || ^9.0
- squizlabs/php_codesniffer: ^3.0
README
在 Laravel 中使用 SwaggerUI 和/或 Swagger Editor 渲染 OpenAPI JSON 或 YAML。
用法
安装
composer require hms5232/laravel-swagger
或者你只想在开发环境中安装
composer require hms5232/laravel-swagger --dev
配置
在运行发布命令后,所有可配置项都在 config/swagger.php
中
php artisan vendor:publish --provider "Hms5232\LaravelSwagger\LaravelSwaggerServiceProvider"
如果你想覆盖现有的配置文件,请使用 --force
标志执行命令。
请参阅配置文件以获取详细信息。
手动注册
包支持自动发现。如果你想控制何时注册,可以按照以下步骤操作
-
编辑
composer.json
使自动发现忽略 laravel-swagger"extra": { "laravel": { "dont-discover": [ "hms5232/laravel-swagger" ] } },
-
重新生成优化后的自动加载文件
composer dump-autoload
-
编辑
app/Providers/AppServiceProvider.php
定义何时注册use Hms5232\LaravelSwagger\LaravelSwaggerServiceProvider; // add this class AppServiceProvider extends ServiceProvider { public function register() { // set condition // for example, only register when env is "local" if ($this->app->environment('local')) { $this->app->register(LaravelSwaggerServiceProvider::class); // register laravel-swagger } } }
为什么还需要另一个包
我只是想直接编写一个 yaml 文件,并使用 Swagger UI 提供文档服务。
但现有的项目要么使用注解,要么只支持 JSON(似乎像是一个错误,但并未修复)。
因此,我开发了此包,只修改了从 Swagger UI (unpkg) 来查看文档的两个路由。
本节是在版本 0.1.0 时编写的,未来可能会过时。