Render OpenAPI JSON or YAML with SwaggerUI and/or Swagger Editor in Laravel.
composer require hms5232/laravel-swagger
or you want to install only at development environment:
composer require hms5232/laravel-swagger --dev
All configurable items are in config/swagger.php
after you run publish command:
php artisan vendor:publish --provider "Hms5232\LaravelSwagger\LaravelSwaggerServiceProvider"
If you want to override the exists config file, execute command with --force
flag.
See the config file for detail information.
Package support auto-discovery. If you want to control when to register, you can do the following steps:
-
Edit
composer.json
make auto discovery ignore laravel-swagger:"extra": { "laravel": { "dont-discover": [ "hms5232/laravel-swagger" ] } },
-
Re-generate optimized autoload files:
composer dump-autoload
-
Edit
app/Providers/AppServiceProvider.php
define when to register: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 } } }
I just want to write a YAML file directly, and use Swagger UI serve/resolve docs.
But exists projects are either using annotations or only supporting JSON (seems like bug, but does not fix.).
So I develop this package, only have a view modified from Swagger UI (unpkg), two routes to link documents.
This section was written at version 0.1.0 and may be outdated in the future.