A Laravel Elixir extension that parses Swagger specs in JSON or YAML format, validates against the official Swagger 2.0 schema and dereferences all $ref pointers to external files.
npm install laravel-elixir-swagger
In the gulpfile.js
add this to the requirements at the top of the file:
var elixir = require('laravel-elixir');
...
require('laravel-elixir-swagger');
then run the extension on the Laravel Elixir mix
object like this:
elixir(function(mix) {
mix.swagger();
});
This will search for a Swagger specs file named swagger.yaml
in your applications resources/assets/swagger/
directory, then validate it against the official Swagger 2.0 schema and dereference all $ref pointers to external files, and finnaly output it to public/swagger.json
.
To define where the extension load the Swagger specs from and where to output the compiled JSON file you can use the following example.
elixir(function(mix) {
mix.swagger('swagger.yaml', 'swagger.json', {
inputDest: './resources/assets/swagger/v1'
outputDest: './public/api-docs'
});
});
For more information on how this works, take a look the parameters.
If you use gulp watch
command, the extension will only look for changes to YAML files in your applications resources/assets/swagger/
directory.
The possible parameters for the mix.swagger()
method:
swagger(input, output, options)
Parameter | Description | Default value |
---|---|---|
input |
The name of the Swagger spec file that should be compiled. | "swagger.yaml" |
output |
The name of the complied JSON file that will be outputed. | "swagger.json" |
options.inputDest |
The directory to look for your Swagger spec files. | "./resources/assets/swagger/" |
options.outputDest |
The directory to place the compiled output file. | "./public" |
Please feel free to contribute:
This Laravel Extension is creaded using Gerson Goulart's gulp plugin gulp-swagger.
Gulp-Swagger is 100% free and open-source, under the MIT license. Use it however you want.