Я пытаюсь разработать API с использованием API-платформы, и у меня возникли проблемы с документацией по swagger.
Чтобы проиллюстрировать мою проблему, я создал новый проект с двумя основными объектами, представленными в официальной документации: https://api-platform.com/docs/distribution.
Мне нужна полная вложенная объектная книга при вызове ресурса GET для обзоров и использование IRI при вызове POST, поэтому я использую группы сериализации, как описано здесь:
https://api-platform.com/docs/core/serialization
Api, похоже, работает должным образом, когда я пытаюсь выполнить POST:
{
"book": {
"id": 1
},
"rating": 5,
"body": "Interesting book!",
"author": "Kévin",
"publicationDate": "September 21, 2016"
}
Получил эту ошибку: вложенные документы для атрибута \ "книга \" не допускаются. Вместо этого используйте IRI С помощью iri типа / api / books / создается 1 обзор.
Но swagger доказать меня сводило с ума:
Для GET / api / reviews это нормально с полным объектом книги:
[
{
"id": 0,
"rating": 0,
"body": "string",
"author": "string",
"publicationDate": "2018-09-22T12:51:42.454Z",
"book": {
"id": 0,
"isbn": "string",
"title": "string",
"description": "string",
"author": "string",
"publicationDate": "2018-09-22T12:51:42.454Z",
"reviews": [
null
]
}
}
]
Но для POST есть пустой объект, и я ожидал IRI:
{
"rating": 0,
"body": "string",
"author": "string",
"publicationDate": "2018-09-22T12:51:42.483Z",
"book": {}
}
Я тоже пробовал аннотацию ApiProperty (), чтобы безуспешно создавать документацию.
Если я удалю свою группу нормализации и денормализации, документация верна, я что-то упускаю или что-то делаю не так с моими группами?
Вот полный код:
https://github.com/lwillems/api-platform-test
Спасибо за помощь
С Уважением
добавление bookid в обзор только добавляет возможность передать объект книги с id вместо iri, но не влияет на документ swagger ...
Я не предлагал ничего менять в бэкэнд-коде. Просто не вкладывайте идентификатор в запрос JSON. Что это значит?
Моя проблема связана с сгенерированным документом swagger, а не с запросом




Может быть, POST с "book": bookId? Просто быстрое предположение.