Дизайн API отдыха: почему переменные пути предпочтительнее тела - PullRequest
0 голосов
/ 01 февраля 2020

У меня была дискуссия о разработке REST API на работе, и я надеюсь, что кто-то может ответить на вопрос для меня. согласитесь, что при выполнении PUT, PATCH или DELETE вы должны использовать URI для идентификации ресурса и тело для передачи любых дополнительных данных.

Итак, на маршруте, где вы находитесь При обновлении электронной почты пользователя 123 у вас было бы что-то вроде этого:

PUT /users/123

body:
{
  email: "some_new_email@email.com"
}

Мой вопрос: почему это предпочтение перед чем-то вроде этого:

PUT /users

body:
{
  userId: 123,
  email: "some_new_email@email.com"
}

Практически все Я прочитал, кажется, согласен, что первый пример считается лучшей практикой, но я еще не нашел ничего, что объясняет, почему это отличается от поддержания его в соответствии с запросами GET. Я не пытаюсь спорить с лучшими практиками, просто пытаюсь понять, почему это выгодно.

1 Ответ

2 голосов
/ 02 февраля 2020

Аннулирование кэша.

Идентификатор ресурса также используется в качестве ключа кэша; при успешном небезопасном запросе (который включает PUT, PATCH, DELETE) компоненты общего назначения, поддерживающие HTTP, будут знать, как сделать недействительными любые кэшированные представления, соответствующие целевому URI.

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

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