Проблема с API-платформой

Я пытаюсь разработать 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

Спасибо за помощь

С Уважением

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

mblaettermann 22.09.2018 19:13

добавление bookid в обзор только добавляет возможность передать объект книги с id вместо iri, но не влияет на документ swagger ...

lwillems 23.09.2018 10:01

Я не предлагал ничего менять в бэкэнд-коде. Просто не вкладывайте идентификатор в запрос JSON. Что это значит?

mblaettermann 23.09.2018 11:37

Моя проблема связана с сгенерированным документом swagger, а не с запросом

lwillems 23.09.2018 13:17
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Symfony Station Communiqué - 17 февраля 2023 г
Symfony Station Communiqué - 17 февраля 2023 г
Это коммюнике первоначально появилось на Symfony Station , вашем источнике передовых новостей Symfony, PHP и кибербезопасности.
Управление ответами api для исключений на Symfony с помощью KernelEvents
Управление ответами api для исключений на Symfony с помощью KernelEvents
Много раз при создании api нам нужно возвращать клиентам разные ответы в зависимости от возникшего исключения.
0
4
1 268
0

Другие вопросы по теме