170 похожих чатов

Здравствуйте, в експрессе хочу создать роут для того, чтобы юзер

мог поменять ник. Вопрос, не могу определиться какой использовать шттп метод. POST, PATCH, PUT?

18 ответов

24 просмотра

В http спеке описаны смыслы методов

PATCH

один post роут на все вызовы в body передавай всё что хочешь влючая метод на который хочешь обратится а бек будет по нему ориентироваться и отвечать всегда 200 (а если ошибка присылать код ошибки) как по этой спецификации например https://www.jsonrpc.org/specification и не будешь зависить от хттп спецификаций которые пытаются залезть в логику твоих запросов и переложить на них то что не следует

Anton K.
один post роут на все вызовы в body передавай всё ...

Не люблю пользоваться такими апишками от них воротит... Но и полностью не следую Рест апи приколам Лишь гет и пост использую)

саша2007
Не люблю пользоваться такими апишками от них ворот...

они максимально удобны в плане отлова ошибок и нештатных ситуаций

Алексей Попов
Запахло graphql

вот такой подход транспорто независим только меняешь интерфейсы отправки / приемки

ответ от апи всегда 200 (даже при ошибке) то есть ожидаемые ошибки мы ловим в 200 в специальных полях и можем их удобно обработать все что не 200 неожидаемые ошибки - ошибки апи-сервера nginx и бог весть кого еще при которых надо вести себя по особенному но единообразно а если полагаются на спецификацию хттп протокола то приходится чекать разные коды смотреть что с них пришло в хедерах json-application / html text / + еще куча разных и выстраивать целый ряд проверок чтобы понять что же за ошибка и от кого пришла и как с ней быть и это только в плане простоты работы с ошибками

Anton K.
вот такой подход транспорто независим только меня...

Думаю, что не всегда есть необходимость менять транспорт. А rest хорошо потому, что (в каком-то виде) его все знают, он ожидаем. Если ты пишешь внутренний api, надо делать как удобно. А если внешний, то обычно приходится подстраиваться Идею с ответом 200 на бизнесовые ошибки я разделяю

Anton K.
ответ от апи всегда 200 (даже при ошибке) то ест...

Как раз то что ответ 200 и не очень Про чекать разные коды в основном проверяют только диапазоны по моему ибо ответ и так содержит более подробно то что произошло

саша2007
Как раз то что ответ 200 и не очень Про чекать раз...

когда придет сначала 404 с json внутри от апи сервера и ты распарсишь его (залогируя или отправив на фронт) (ожидая json) а потом придет 404 с html/text от nginx или apach (изза того что апи-сервак недоступен) и ты когда будешь его парсить и словишь неприятностей ибо там jsonа нет никакого

PUT если переданы всё свойства, PATCH если переданы частично

Anton K.
когда придет сначала 404 с json внутри от апи серв...

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"}}'; }

Artem Soroka
error_page 500 /500.html; location /500.html{ add_...

И как часто ты так nginx тюнишь чтобы он соответствовал ответам апи сервера? А если nginx обслуживает 2 апи сервера которые по разному отдают?)

Anton K.
И как часто ты так nginx тюнишь чтобы он соответст...

Это в конфиге проекта инклюдом подключается одной строчкой

Artem Soroka
Это в конфиге проекта инклюдом подключается одной ...

Звучит и выглядит как костыль про который надо всегда помнить

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта