REST Best Practice получить / статьи для гостя и для аутентификации? - PullRequest
0 голосов
/ 03 апреля 2020

Я читал, что запросы Get должны быть идемпотентными. Я делаю android приложение со списком статей. И гость, и аутентифицированный пользователь могут просматривать список статей, но аутентифицированные также получают привилегированный статус.

Чтобы сделать запрос идемпотентным, аутентифицированный пользователь должен запросить и / article, и второй запрос, чтобы получить статус избранной этой статьи.

Как профессиональные разработчики делают это? Что такое лучшая практика?

Ответы [ 2 ]

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

Чтобы различать guish разницу между гостевым и аутентифицированным делами, я бы рекомендовал использовать пространства имен для всех API.

Пример: Для аутентифицированных пользователей / api / Articles - список статей вместе с избранным / api / article / $ article_id - информация об отдельной статье вместе с предпочтительным временем и т. д. c

Для гостей, / guest_api / article - только список статей / guest_api / article / $ article_id - только информация о статье

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

Возможно, это поможет пересмотреть определения safe и idempotent , как указано в RF C 7231. Семантика GET safe , которая означает, что все ограничения идемпотента выполнены и некоторые другие.

В целом, безопасные средства только для чтения .

Но это ничего не говорит вам о представлениях или дизайне ресурсов.

Как профессиональные разработчики делают это? Что такое лучшая практика?

Подумайте, как бы вы разработали веб-сайт? Одним из ответов может быть создание страницы для анонимных пользователей, а затем другой страницы для администраторов (которая включает дополнительную информацию, которая нужна администраторам). Вторая страница будет заблокирована, чтобы на нее могли попасть только авторизованные пользователи (что имеет некоторые интересные последствия для кеширования ).

Те же принципы базиса c применимы и к API.

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