Areas
We've already seen that you can configure which routes are documented using nelmio_api_doc.areas
:
1 2 3 4 5
nelmio_api_doc:
areas:
path_patterns: [ ^/api ]
host_patterns: [ ^api\. ]
name_patterns: [ ^api_v1 ]
But in fact, this config option is way more powerful and allows you to split your documentation in several parts.
Configuration
You can define areas which will each generates a different documentation:
1 2 3 4 5 6 7 8 9 10 11 12
nelmio_api_doc:
areas:
default:
path_patterns: [ ^/api ]
host_patterns: [ ^api\. ]
internal:
path_patterns: [ ^/internal ]
commercial:
path_patterns: [ ^/commercial ]
store:
# Includes routes with names containing 'store'
name_patterns: [ store ]
Your main documentation is under the default
area. It's the one shown when accessing /api/doc
.
Then update your routing to be able to access your different documentations:
1 2 3 4 5 6 7 8 9 10 11
# app/config/routing.yml
app.swagger_ui:
path: /api/doc/{area}
methods: GET
defaults: { _controller: nelmio_api_doc.controller.swagger_ui, area: default }
# To expose them as JSON
#app.swagger.areas:
# path: /api/doc/{area}.json
# methods: GET
# defaults: { _controller: nelmio_api_doc.controller.swagger }
That's all! You can now access /api/doc/internal
, /api/doc/commercial
and /api/doc/store
.
This work, including the code samples, is licensed under a
Creative Commons BY-SA 3.0 license.