Swagger 2.0 for Laravel >=5.1
This package is a wrapper of Swagger-php and swagger-ui adapted to work with Laravel 5.
For Swagger 2.0
Laravel | Swagger UI | OpenAPI Spec compatibility | L5-Swagger |
---|---|---|---|
5.1.x | 2.2 | 1.1, 1.2, 2.0 | php composer require "darkaonline/l5-swagger:~3.0" |
5.2.x | 2.2 | 1.1, 1.2, 2.0 | php composer require "darkaonline/l5-swagger:~3.0" |
5.3.x | 2.2 | 1.1, 1.2, 2.0 | php composer require "darkaonline/l5-swagger:~3.0" |
5.4.x | 2.2 | 1.1, 1.2, 2.0 | php composer require "darkaonline/l5-swagger:~4.0" |
5.4.x | 3 | 2.0 | php composer require "darkaonline/l5-swagger:5.4.*" |
5.5.x | 3 | 2.0 | php composer require "darkaonline/l5-swagger:5.5.*" |
For Swagger 1.0
composer require darkaonline/l5-swagger
Open your AppServiceProvider
(located in app/Providers
) and add this line in register
function
$this->app->register(\L5Swagger\L5SwaggerServiceProvider::class);
or open your config/app.php
and add this line in providers
section
L5Swagger\L5SwaggerServiceProvider::class,
For Laravel 5.5, no need to manually add L5SwaggerServiceProvider
into config. It uses package auto discovery feature.
- Swagger UI 3.
- Configuration changes.
- Assets dependency dropped. Now includes from composer package.
- See migration
- Laravel 5.4 support
- Middleware support for routes (#43) (@tantam)
- Allow to change swagger base path in generation process
- Allow to define constants in config which can be used later in annotations
- Tests fix form L5.3 and PHP >= 5.6
- Update swagger UI to 2.1.5
- Closure routes moved to controller and got names (thanks to @bbs-smuller #19)
- Added option to rename generated API .json file name
- More accurate naming and structured config
- Swagger UI - v2.1.4
- Tests
- Replace
$this->app->register('\Darkaonline\L5Swagger\L5SwaggerServiceProvider');
with$this->app->register(\L5Swagger\L5SwaggerServiceProvider::class);
in yourAppServiceProvider
or add\L5Swagger\L5SwaggerServiceProvider::class
line in yourconfig/app.php
file - Run
l5-swagger:publish-config
to publish new config and make your changes if needed - Remove
public/vendor/l5-swagger
directory - Remove
resources/views/vendor/l5-swagger
directory - Run
l5-swagger:publish-assets
to publish new swagger-ui assets - Run
l5-swagger:publish-views
to publish new views
- Remove
config/l5-swagger.php
file (make a copy if needed) - Remove
public/vendor/l5-swagger
directory - Remove
resources/views/vendor/l5-swagger
directory - Run
l5-swagger:publish
to publish new swagger-ui view and configuration - Edit your
config/l5-swagger.php
file
- Run
l5-swagger:publish
to publish everything - Run
l5-swagger:publish-config
to publish configs (config/l5-swagger.php
) - Run
l5-swagger:publish-assets
to publish swagger-ui to your public folder (public/vendor/l5-swagger
) - Run
l5-swagger:publish-views
to publish views (resources/views/vendor/l5-swagger
) - only for versions <= 4.0 - Run
l5-swagger:generate
to generate docs or setgenerate_always
param totrue
in your config or .env file
The actual Swagger spec is beyond the scope of this package. All L5-Swagger 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.
Hey dude! Help me out for a couple of 🍻!