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-swaggerOpen 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 yourAppServiceProvideror add\L5Swagger\L5SwaggerServiceProvider::classline in yourconfig/app.phpfile - Run
l5-swagger:publish-configto publish new config and make your changes if needed - Remove
public/vendor/l5-swaggerdirectory - Remove
resources/views/vendor/l5-swaggerdirectory - Run
l5-swagger:publish-assetsto publish new swagger-ui assets - Run
l5-swagger:publish-viewsto publish new views
- Remove
config/l5-swagger.phpfile (make a copy if needed) - Remove
public/vendor/l5-swaggerdirectory - Remove
resources/views/vendor/l5-swaggerdirectory - Run
l5-swagger:publishto publish new swagger-ui view and configuration - Edit your
config/l5-swagger.phpfile
- Run
l5-swagger:publishto publish everything - Run
l5-swagger:publish-configto publish configs (config/l5-swagger.php) - Run
l5-swagger:publish-assetsto publish swagger-ui to your public folder (public/vendor/l5-swagger) - Run
l5-swagger:publish-viewsto publish views (resources/views/vendor/l5-swagger) - only for versions <= 4.0 - Run
l5-swagger:generateto generate docs or setgenerate_alwaysparam totruein 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 🍻!