lumen-utils/swagger-lumen
OpenApi or Swagger integration to Lumen
849
| Install | |
|---|---|
composer require lumen-utils/swagger-lumen |
|
| Latest Version: | v10.0.1 |
| PHP: | ~8.1 |
| License: | MIT |
| Last Updated: | Nov 28, 2023 |
| Links: | GitHub · Packagist |
Maintainer: Lucifer20211202
SwaggerLume
Swagger 2.0-3.0 for Lumen
This package is a wrapper of Swagger-php and swagger-ui adapted to work with Lumen.
Installation
| Lumen | Swagger UI | OpenAPI Spec compatibility | L5-Swagger |
|---|---|---|---|
| 10.0 | 3 | 2.0, 3.0 | composer require "lumen-utils/swagger-lumen:10.*" |
- Open your
bootstrap/app.phpfile and:
uncomment this line (around line 26) in Create The Application section:
$app->withFacades();
add this line before Register Container Bindings section:
$app->configure('swagger-lume');
add this line in Register Service Providers section:
$app->register(\SwaggerLume\ServiceProvider::class);
- Run
php artisan swagger-lume:publish-configto publish configs (config/swagger-lume.php) - Make configuration changes if needed
- Run
php artisan swagger-lume:publishto publish everything
Using OpenApi 3.0 Specification
If you would like to use latest OpenApi specifications (originally known as the Swagger Specification) in your project you should:
- Explicitly require
swagger-phpversion 3.* in your projects composer by running:
composer require 'zircote/swagger-php:3.*'
- Set environment variable
SWAGGER_VERSIONto 3.0 in your.envfile:
SWAGGER_VERSION=3.0
or in your config/l5-swagger.php:
'swagger_version' => env('SWAGGER_VERSION', '3.0'),
- Use examples provided here: https://github.com/zircote/swagger-php/tree/3.x/Examples/petstore-3.0
Configuration
- Run
php artisan swagger-lume:publish-configto publish configs (config/swagger-lume.php) - Run
php artisan swagger-lume:publish-viewsto publish views (resources/views/vendor/swagger-lume) - Run
php artisan swagger-lume:publishto publish everything - Run
php artisan swagger-lume:generateto generate docs
Swagger-php
The actual Swagger spec is beyond the scope of this package. All SwaggerLume does is package up swagger-php and swagger-ui in a Laravel-friendly fashion, and tries to make it easy to serve. For info on how to use swagger-php look here. For good examples of swagger-php in action look here.