Рассмотрим простой случай, когда пользователь удаляет сообщение. Это простой HTTP-запрос DELETE / POST с одним обязательным полем post_id.
Что должен делать сервер, если post_id не указан?
Очевидно, пользователь никогда не должен сталкиваться с таким поведением, так что давайте будем пуристами.
Мой первый take будет 400 ошибочным запросом, но в спецификации сказано
The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the request without modifications.
, и я бы сказал, что отсутствующее поле - это нормально из синтаксиса / http POV, это семантическое требование, зависящее от домена приложения.
200 ОК с объяснениями - это плохо, 500 кажется странным, поскольку это проблема запроса.
Хотя?