Skip to content

Alternative Names

Edit this page

NelmioApiDoc automatically generates the model names but the nelmio_api_doc.models.names option allows to customize the names for some models.

Configuration

You can define alternative names for each group and area combinations: when conflicts arises, the last matching rule will be used:

1
2
3
4
5
6
7
nelmio_api_doc:
    models:
        names:
            - { alias: MainUser,        type: App\Entity\User}
            - { alias: MainUser_light,  type: App\Entity\User, groups: [light] }
            - { alias: MainUser_secret, type: App\Entity\User, areas: [private] }
            - { alias: MainUser,        type: App\Entity\User, groups: [standard], areas: [private] }

In this case the class App\Entity\User will be aliased into:

  • MainUser when no more detailed rules are specified
  • MainUser_light when the group is equal to light
  • MainUser_secret for the private area
  • MainUser for the private area when the group is equal to standard

Tip

This allows to use normal references instead of #[Model]. Notably, you can specify the groups used for a model once in config and then refer to its alternative name:

1
2
3
nelmio_api_doc:
    models:
        names: [ { alias: MyModel, type: App\MyModel, groups: [light] }]
1
2
3
4
5
6
7
8
9
class HomeController
{
    /**
     * @OA\Response(response=200, @OA\JsonContent(ref="#/components/schemas/MyModel"))
     */
    public function indexAction()
    {
    }
}
This work, including the code samples, is licensed under a Creative Commons BY-SA 3.0 license.
TOC
    Version