Главное правильно задокументировать. А как именно будет реализовано, это уже уходит на второй план и зависит от того, как тебе будет удобно. Если пользователи будут при этом рыдать, это уже их проблема, ты такой АПИ предоставил и отстаньте
и тут как бы двояко имхо, возвращать на все 200, даже если запрос, очевидно, сработал с ошибкой из-за того, что юзер ввел какую-то дичь или пытался достать ресурс, видеть который не может, ну такое себе, иначе зачем они вообще, но вот так вот
и тут как бы двояко имхо, возвращать на все 200, даже если запрос, очевидно, сработал с ошибкой из-за того, что юзер ввел какую-то дичь или пытался достать ресурс, видеть который не может, ну такое себе, иначе зачем они вообще, но вот так вот
JSON-RPC, там специальные поля отведены для ошибок и данных
я еще видела попытки писать прямо мега-дуракоустойчивый код когда даже если юзер берет своими руками и в ссылке параметры на дичь меняет ну, если ты в прямо в адресной строке руками фильтры какие-то меняешь, скажем, мы написали туда min_size=200, а он такой "гыгы" и написал min_size=zhopa
ну даже не во взломах дело мы когда-то ломали так розетку, когда в параметре запроса в цену текст впедаливали года 3 назад розетка тупо выплевывала стек трейс прямо с сервака