мог поменять ник. Вопрос, не могу определиться какой использовать шттп метод. POST, PATCH, PUT?
В http спеке описаны смыслы методов
PATCH
один post роут на все вызовы в body передавай всё что хочешь влючая метод на который хочешь обратится а бек будет по нему ориентироваться и отвечать всегда 200 (а если ошибка присылать код ошибки) как по этой спецификации например https://www.jsonrpc.org/specification и не будешь зависить от хттп спецификаций которые пытаются залезть в логику твоих запросов и переложить на них то что не следует
Не люблю пользоваться такими апишками от них воротит... Но и полностью не следую Рест апи приколам Лишь гет и пост использую)
они максимально удобны в плане отлова ошибок и нештатных ситуаций
вот такой подход транспорто независим только меняешь интерфейсы отправки / приемки
ответ от апи всегда 200 (даже при ошибке) то есть ожидаемые ошибки мы ловим в 200 в специальных полях и можем их удобно обработать все что не 200 неожидаемые ошибки - ошибки апи-сервера nginx и бог весть кого еще при которых надо вести себя по особенному но единообразно а если полагаются на спецификацию хттп протокола то приходится чекать разные коды смотреть что с них пришло в хедерах json-application / html text / + еще куча разных и выстраивать целый ряд проверок чтобы понять что же за ошибка и от кого пришла и как с ней быть и это только в плане простоты работы с ошибками
Думаю, что не всегда есть необходимость менять транспорт. А rest хорошо потому, что (в каком-то виде) его все знают, он ожидаем. Если ты пишешь внутренний api, надо делать как удобно. А если внешний, то обычно приходится подстраиваться Идею с ответом 200 на бизнесовые ошибки я разделяю
Как раз то что ответ 200 и не очень Про чекать разные коды в основном проверяют только диапазоны по моему ибо ответ и так содержит более подробно то что произошло
когда придет сначала 404 с json внутри от апи сервера и ты распарсишь его (залогируя или отправив на фронт) (ожидая json) а потом придет 404 с html/text от nginx или apach (изза того что апи-сервак недоступен) и ты когда будешь его парсить и словишь неприятностей ибо там jsonа нет никакого
PUT если переданы всё свойства, PATCH если переданы частично
error_page 500 /500.html; location /500.html{ add_header 'Content-Type: application/json charset=UTF-8'; return 500 '{"error": {"status_code": 500,"status": "Internal Server Error"}}'; }
И как часто ты так nginx тюнишь чтобы он соответствовал ответам апи сервера? А если nginx обслуживает 2 апи сервера которые по разному отдают?)
Это в конфиге проекта инклюдом подключается одной строчкой
Звучит и выглядит как костыль про который надо всегда помнить
Не нравится, не ешь
Обсуждают сегодня