mirror of
https://github.com/retailcrm/NelmioApiDocBundle.git
synced 2025-02-02 23:59:26 +03:00
133 lines
3.4 KiB
ReStructuredText
133 lines
3.4 KiB
ReStructuredText
Configuration In-Depth
|
|
======================
|
|
|
|
API Name
|
|
--------
|
|
|
|
You can specify your own API name:
|
|
|
|
.. code-block:: yaml
|
|
|
|
# app/config/config.yml
|
|
nelmio_api_doc:
|
|
name: My API
|
|
|
|
Authentication Methods
|
|
----------------------
|
|
|
|
You can choose between different authentication methods:
|
|
|
|
.. code-block:: yaml
|
|
|
|
# app/config/config.yml
|
|
nelmio_api_doc:
|
|
sandbox:
|
|
authentication:
|
|
delivery: header
|
|
name: X-Custom
|
|
|
|
# app/config/config.yml
|
|
nelmio_api_doc:
|
|
sandbox:
|
|
authentication:
|
|
delivery: query
|
|
name: param
|
|
|
|
# app/config/config.yml
|
|
nelmio_api_doc:
|
|
sandbox:
|
|
authentication:
|
|
delivery: http
|
|
type: basic # or bearer
|
|
|
|
When choosing an ``http`` delivery, ``name`` defaults to ``Authorization``, and
|
|
the header value will automatically be prefixed by the corresponding type (ie.
|
|
``Basic`` or ``Bearer``).
|
|
|
|
Section Exclusion
|
|
-----------------
|
|
|
|
You can specify which sections to exclude from the documentation generation:
|
|
|
|
.. code-block:: yaml
|
|
|
|
# app/config/config.yml
|
|
nelmio_api_doc:
|
|
exclude_sections: ["privateapi", "testapi"]
|
|
|
|
Note that ``exclude_sections`` will literally exclude a section from your api
|
|
documentation. It's possible however to create multiple views by specifying the
|
|
``views`` parameter within the ``@ApiDoc`` annotations. This allows you to move
|
|
private or test methods to a complete different view of your documentation
|
|
instead.
|
|
|
|
Parsers
|
|
-------
|
|
|
|
By default, all registered parsers are used, but sometimes you may want to
|
|
define which parsers you want to use. The ``parsers`` attribute is used to
|
|
configure a list of parsers that will be used::
|
|
|
|
output={
|
|
"class" = "Acme\Bundle\Entity\User",
|
|
"parsers" = {
|
|
"Nelmio\ApiDocBundle\Parser\JmsMetadataParser",
|
|
"Nelmio\ApiDocBundle\Parser\ValidationParser"
|
|
}
|
|
}
|
|
|
|
In this case the parsers ``JmsMetadataParser`` and ``ValidationParser`` are used
|
|
to generate returned data. This feature also works for both the ``input`` and
|
|
``output`` properties.
|
|
|
|
Moreover, the bundle provides a way to register multiple ``input`` parsers. The
|
|
first parser that can handle the specified input is used, so you can configure
|
|
their priorities via container tags. Here's an example parser service
|
|
registration:
|
|
|
|
.. code-block:: yaml
|
|
|
|
# app/config/config.yml
|
|
services:
|
|
mybundle.api_doc.extractor.custom_parser:
|
|
class: MyBundle\Parser\CustomDocParser
|
|
tags:
|
|
- { name: nelmio_api_doc.extractor.parser, priority: 2 }
|
|
|
|
MOTD
|
|
----
|
|
|
|
You can also define your own motd content (above methods list). All you have to
|
|
do is add to configuration:
|
|
|
|
.. code-block:: yaml
|
|
|
|
# app/config/config.yml
|
|
nelmio_api_doc:
|
|
# ...
|
|
motd:
|
|
template: AcmeApiBundle::Components/motd.html.twig
|
|
|
|
Caching
|
|
-------
|
|
|
|
It is a good idea to enable the internal caching mechanism on production:
|
|
|
|
.. code-block:: yaml
|
|
|
|
# app/config/config.yml
|
|
nelmio_api_doc:
|
|
cache:
|
|
enabled: true
|
|
|
|
You can define an alternate location where the ApiDoc configurations are to be
|
|
cached:
|
|
|
|
.. code-block:: yaml
|
|
|
|
# app/config/config.yml
|
|
nelmio_api_doc:
|
|
cache:
|
|
enabled: true
|
|
file: "/tmp/symfony-app/%kernel.environment%/api-doc.cache"
|