Alternative Names
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 specifiedMainUser_light
when the group is equal tolight
MainUser_secret
for theprivate
areaMainUser
for theprivate
area when the group is equal tostandard
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.