У меня есть пользовательская операция CreatePerson
, отправляемая через messenger
.
/**
* @ApiResource(
* messenger=true,
* output=false,
* shortName="person",
* collectionOperations={
* "post"
* },
* itemOperations={}
* )
*
* @psalm-immutable
*/
final class CreatePerson
Это работает, как и ожидалось, с POST /api/people
(люди вместо человека, потому что ApiPlatform использует Inflection для множественного числа shortname
on collectionOperations
.
Документы API выглядят так:
Я хотел бы добавить список человек тоже. Поэтому я создал другой Api-ресурс:
/**
* @ApiResource(
* collectionOperations={
* "get"
* },
* itemOperations={}
* )
*
* @psalm-immutable
*/
final class Person
shortname
моего customOperation
ist person
. Это также группа в документации, которую я хочу, чтобы list
операция в.
Все работает как положено. Person
и CreatePerson
- это два ApiResource
с. Но теперь мои документы выглядят так:
Я хочу сгруппировать их вместе в API-документах (потому что они принадлежат друг другу).
Причина, по которой я использую дополнительный CreatePerson
-DTO Я использую Api-Platform полностью без doctrine. DTO отправляется через мессенджер и создает Person с помощью Event-Sourcing. Person
-класс является проекцией только для чтения.