API-Платформа Ричардсона Модель зрелости 3-го уровня

#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. Пожалуйста, укажите дополнительную информацию в своем ответе. Как это написано в настоящее время, трудно понять ваше решение.