Общепринятые статусы HTTP для DELETE
включают в себя:
204
идеально, если ваша служба не возвращает никакой дополнительной информации.Он также популярен для PUT
запросов на обновление.Многие сервисы возвращают 204
, включая Docker, как показано ниже:
Однако, если вы используете HATEOAS, лучше использовать 200 OK
и предоставить некоторые ссылки на сервис.Подумайте о приложении, которое только что выпустило удаление и которому нужно переместить пользователя в определенное место.Без предоставления URL-адреса для этого местоположения клиентское приложение должно сохранять состояние.Предоставление 200 OK
со ссылкой позволяет REST API сохранять состояние для клиента.
В следующей статье эта проблема хорошо описана (подробности см. В блоге):
Избегайте 204 ответов, если вы создаете приложение HATEOAS.
Это урок о дизайне REST API, который я выучил при создании нетривиальных REST API.Чтобы обеспечить максимально возможную поддержку клиента, API-интерфейс REST не должен возвращать 204 ответа (без содержимого).
С точки зрения службы, ответ 204 (без содержимого) может быть совершенно правильным ответом назапрос POST, PUT или DELETE.В частности, для запроса DELETE это кажется очень уместным, потому что, что еще вы можете сказать?
Однако, с точки зрения надлежащего клиента, поддерживающего HATEOAS, ответ 204 проблематичен, потому что нет ссылок для подражания.Когда гипермедиа действует как движок состояния приложения, когда нет ссылок, нет состояния.Другими словами, ответ 204 отбрасывает все состояние приложения.
Если клиент встречает ответ 204, он может отказаться, перейти к точке входа API или вернуться к предыдущему ресурсу.посетил.Ни один из этих вариантов не особенно хорош.