Areas
Warning: You are browsing the documentation for version 3.x which is not maintained anymore. If some of your projects are still using this version, consider upgrading.
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
.