hms5232/laravel-swagger

在 Laravel 中使用 SwaggerUI 渲染 OpenAPI JSON 或 YAML。

v0.1.6 2024-08-15 12:04 UTC

This package is auto-updated.

Last update: 2024-09-18 08:01:25 UTC


README

supported PHP version

在 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 标志执行命令。

请参阅配置文件以获取详细信息。

手动注册

包支持自动发现。如果你想控制何时注册,可以按照以下步骤操作

  1. 编辑 composer.json 使自动发现忽略 laravel-swagger

    "extra": {
        "laravel": {
            "dont-discover": [
                "hms5232/laravel-swagger"
            ]
        }
    },
  2. 重新生成优化后的自动加载文件

    composer dump-autoload
  3. 编辑 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 时编写的,未来可能会过时。

许可

MIT