Выбор ответа Junior HTTP для тестировщика спрашивают часто обновлено

PUT или PATCH

Вопрос

Клиент хочет поменять у пользователя только поле phone, не трогая остальные. Какой метод подходит по смыслу?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: PATCH с телом {"phone": "..."}. PATCH описывает частичное изменение.

Варианты ответа

  1. PUT с телом {"phone": "..."}
  2. POST /users/42/phone всегда, другие методы нельзя
  3. PATCH с телом {"phone": "..."}правильный ответ
  4. GET /users/42?phone=...

Разбор

PATCH описывает частичное изменение. PUT по смыслу заменяет ресурс целиком: если прислать в PUT только phone, корректный сервер должен обнулить или отвергнуть остальные поля, и это частый баг для проверки. GET не должен менять данные. POST на подресурс возможен в конкретном API, но это не «единственный вариант».

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.