darkaonline / swagger-lume
OpenApi or Swagger integration to Lumen
Fund package maintenance!
DarkaOnLine
Installs: 1 894 134
Dependents: 4
Suggesters: 1
Security: 0
Stars: 334
Watchers: 10
Forks: 86
Open Issues: 7
Requires
- php: >=7.2 || ^8.0
- doctrine/annotations: ^1.0 || ^2.0
- laravel/lumen-framework: ~6.0 || ~7.0 || ^8.0 || ^9.0 || ^10.0 || ^11.0
- swagger-api/swagger-ui: ^3.0 || ^4.0
- symfony/yaml: ^4.0 || ^5.0 || ^6.2
- zircote/swagger-php: ~2.0 || 3.* || 4.*
Requires (Dev)
- mockery/mockery: 1.*
- php-coveralls/php-coveralls: ^2.0
- phpunit/phpunit: ^10.0 || ^9.5
- dev-master
- 11.0
- 10.1
- 10.0
- 9.0
- 8.0
- 7.0
- 6.0
- 5.6.2
- 5.6.1
- 5.6.0
- 5.5.3
- 5.5.2
- 5.5.1
- 5.5.0
- 3.x-dev
- 3.0.1
- 3.0
- 2.x-dev
- 2.0.1
- 2.0
- 1.0.4
- 1.0.3
- 1.0.2
- 1.0.1
- 1.0
- dev-pr/140
- dev-add-yaml-support
- dev-support-lumen-10
- dev-add-guhub-checks
- dev-add-docker-container
- dev-support-open-api-3.0
- dev-fix-asset-request-schema
- dev-swagger-ui-3
This package is auto-updated.
Last update: 2024-10-15 07:21:26 UTC
README
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
- Open your
bootstrap/app.php
file 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-config
to publish configs (config/swagger-lume.php
) - Make configuration changes if needed
- Run
php artisan swagger-lume:publish
to 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-php
version 3.* in your projects composer by running:
composer require 'zircote/swagger-php:3.*'
- Set environment variable
SWAGGER_VERSION
to 3.0 in your.env
file:
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-config
to publish configs (config/swagger-lume.php
) - Run
php artisan swagger-lume:publish-views
to publish views (resources/views/vendor/swagger-lume
) - Run
php artisan swagger-lume:publish
to publish everything - Run
php artisan swagger-lume:generate
to generate docs
Changes in 3.0
- Swagger UI 3.
- Configuration changes.
- Assets dependency dropped. Now includes from composer package.
- See migration from 2.0 to 3.0
Changes in 2.0
- Lumen 5.4 support
- Swagger UI 2.2.8
Migrate from 2.0 to 3.0 or 5.5
- Remove
config/swagger-lume.php
file (make a copy if needed) - Remove
public/vendor/swagger-lume
directory - Remove
resources/views/vendor/swagger-lume
directory - Run
swagger-lume:publish
to publish new swagger-ui view and configuration - Edit your
config/swagger-lume.php
file
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.
Important: Make sure that you add the include statement on all pages with annotations!
use OpenApi\Annotations as OA;
Support on Beerpay
Hey dude! Help me out for a couple of 🍻!