Отдых / я / предметы против / пользователи / 1 / предметы - PullRequest
0 голосов
/ 17 апреля 2020

Я создаю API, в котором зарегистрированный пользователь может видеть свою информацию. Пользователь также может изменить свою информацию. Только пользователь должен иметь возможность видеть и изменять свою собственную информацию. Лучше использовать следующие маршруты

/me
/me/items

или (с политиками)

/users/1
/users/1/items

1 Ответ

0 голосов
/ 17 апреля 2020

/users/1 немного лучше, чем /me, но на практике это, вероятно, вообще не имеет значения.

На высоком уровне REST вообще не заботится о написании URI. Компоненты общего назначения рассматривают URI как непрозрачные; только исходный сервер занимается бизнесом, пытающимся извлечь информацию semanti c из идентификатора.

С точки зрения дизайна /me несколько уязвим к тому факту, что вы объединяете две разные задачи; "О ком этот ресурс?" msgstr "кому разрешен доступ?" Бывает, что сегодня «Боб» - единственный человек, которому разрешено читать ресурс «Боб», но нет особой причины, по которой эти две идеи всегда будут связаны друг с другом.

С точки зрения REST, имея одно и то же Идентификатор ресурса означает, что разные вещи, зависящие от другой информации заголовка, могут сделать кеширование представлений проблематичным c, так как вы заставляете кеши становиться намного умнее при принятии решения, когда представление можно использовать повторно.

HTTP решает некоторые из этих проблем с помощью заголовка Vary, который позволяет серверу происхождения описывать компонентам общего назначения, какие части HTTP-запроса могут изменить правильное представление для использования.

Но на практике даже это не имеет значения, потому что HTTP не позволяет общим кешам хранить ответ на запрос с полем заголовка Авторизация.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...