#rest #api-platform.com #symfony5
Вопрос:
Мне нужно разработать простой REST API, который уважает модель зрелости Ричардсона 3-го уровня, поэтому с некоторыми ссылками на другие маршруты. Для выполнения этой работы я использую API-платформу.
В этом API я могу получить список пользователей, получить одного пользователя и опубликовать / удалить / исправить пользователя.
В теле ответа , когда я получаю одного пользователя, у меня есть URI "@id": "/api/users/87"
, так что это хорошо.
Но мне интересно, недостаточно ли этого для соблюдения уровня 3, и может ли, например, также включать ссылки для удаления или исправления пользователя ?
Я попытался установить willdurand/hateoas-bundle
и добавить ссылки на диссертации после документа, но это никак не повлияло на мой организм ответа. У меня application/hal json
включен формат в конфигурации моей API-платформы.
Когда я пытаюсь удалить все форматы api_plateform.yaml
, кроме hal json, у меня получается 406 Error: Not Acceptable
.
Позвольте мне создать эту новую тему, потому что я много искал и не нашел ничего, что могло бы помочь мне с моделью зрелости Ричардсона 3-го уровня специально для API-платформы.
Спасибо вам за вашу помощь !
Комментарии:
1. Мне совсем не нравится модель зрелости, поскольку она создает ложное впечатление о том, что действительно нужно службам/клиентам REST. Т. е. даже на уровне 3 у вас нет всего, что вам нужно, чтобы действительно придерживаться всех ограничений, налагаемых архитектурой REST. Т. Е. MM-L3 вообще не говорит о типах мультимедиа, что является одним из ключевых аспектов архитектуры REST, чтобы отделить клиентов от конкретных сервисов.
2. @RomanVottner Спасибо вам за ваш ответ ! Поэтому я также рассмотрю типы медиа.
Ответ №1:
На самом деле, ссылки для удаления или исправления пользователя такие же, как ссылка для получения пользователя, просто меняется метод, поэтому они хорошо присутствуют в документе, и уровень Ричардсона 3 хорошо соблюдается.
Поэтому нет смысла использовать для этого пакет, поскольку он реализован изначально.
Комментарии:
1. Пожалуйста, укажите дополнительную информацию в своем ответе. Как это написано в настоящее время, трудно понять ваше решение.