Метод HTTP - POST против PATCH или PUT - когда пользователь не собирается что-либо обновлять на самом деле
Иногда пользователь не собирается отправлять данные на сервер для обновления ресурса, но ресурс будет обновляться сервером автоматически. Я думаю, что лучший пример - деактивация профиля. Я опишу пример ниже.
Пример: пользователь пытается деактивировать свой профиль, поэтому он звонит /users/{u_id}/deactivate
URI. В этом примере пользователь на самом деле ничего не собирается обновлять, но деактивированный столбец будет обновляться сервером. Какой метод HTTP подходит в этом случае?
1 ответ
Если вы выполняете "мягкое удаление" в вашей системе с помощью этой операции, вы можете использовать для этого HTTP DELETE. URL будет оставаться как /users/{u_id}
и вы можете ответить со статусом Http 204 Нет содержимого, что означает, что сервер выполнил операцию, и нет необходимости отправлять что-либо в теле ответа.
Если бы это было в случае обновления одного атрибута пользователя, а вызывающая система предоставляла значение, PATCH имел бы больше смысла. Но так как это сервер помечает учетную запись как неактивную; Я бы выбрал DELETE