Design first architecture Trailpack. This trailpack allow you to map routes/validations from your swagger definition file to your controllers. Like this you are sure what's on your definition is really what is implemented.
What are Footprints?
Footprints automatically generate easy-to-use RESTful endpoints for your models.
$ npm install --save trailpack-design-first
// config/main.jsmoduleexports =packs:// ... other trailpacks
// config/swagger.jsmoduleexports =swaggerDefinition: './swagger/definition.yaml' // or an array of swagger definitionswaggerUi: './swagger/ui'swaggerDefinitionHttpPath: '/swagger'swaggerUiHttpPath: '/swagger-ui'
swaggerDefinition: path to your yaml or json definition file, also can be an array of swagger definition
swaggerUi: path to your swagger ui files (download them from swagger-ui and put the dist content).
swaggerDefinitionHttpPath: path where to access the swagger definition from the web (eg http://localhost:3000/swagger)
swaggerUiHttpPath: path where to access the swagger ui interface from the web (eg http://localhost:3000/swagger/ui)
Just create your swagger definition like you do normally, the only difference is that for each
operationId you should put the name and method
of the controller that will implement this functionality (
UserController.getProfile for example).
Another solution if you don't want to have the controller name inside the
operationId is to add
x-swagger-router-controller at route or operation level with the name of your controller
If you want to apply some policies to your operation you can use
The trailpack will create the route and validation of headers/query/params and body for you.
x-swagger-router-policies on your security definitions to let the trailpack map the security policies for you
We love contributions! Please check out our Contributor's Guide for more information on how our projects are organized and how to get started.