@hax
junior developer

Когда мы должны использовать Query, а когда Body в HTTP?

Всем привет. Подскажите, пожалуйста, есть ли какие-то ограничения в спецификации HTTP / REST, которые устанавливают ограничение на использование Query или Body?

Например, браузер не позволяет отправить GET запрос с Body параметрами, а что насчёт остальных методов? Могу ли я, например, юзать POST/PUT/PATCH/DELETE с Query запросом (если там нет секретных данных, типо паролей)? И что лучше выбрать во время разработки архитектуры API? Есть ли какая-то документация, которая явно говорит, что нужно юзать Body с такими-то методами, Query - с такими-то?

UPD. Вспомнил ещё три вопроса:
1) можем ли мы использовать глаголы в роутингах? Типа /users/password/reset?
2) этот вопрос связан с разницой PUT и PATCH. Например, я хочу заапдейтить пароль у юзера.
Есть ли разница между этими двумя роутингами: PATCH /user или лучше PUT /user/password ?
3) должны ли мы всегда использовать множественное число в названии коллекций?
Например есть метод GET /user-management/users, который вернёт список ВСЕХ юзеров. А есть метод DELETE /user-management/user?id=123, который удалит только ОДНОГО юзера. Вопрос такой: надо ли изменить API удаления на /user-management/userS или можно оставить как есть?
  • Вопрос задан
  • 258 просмотров
Пригласить эксперта
Ответы на вопрос 1
IDONTSUDO
@IDONTSUDO
ЧСВ программистов идет в комплекте с первой IDE.
Сама концепция REST настолько размыта, что стандартного ответа на ваш вопрос нету. То что вы используйте и видите это чаще всего не REST в том академическом плане в каком он был создал.

Вот хорошее мнение на этот счет. Но я ни где не находил его подтверждения.
https://habr.com/ru/company/yandex/blog/265569/
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы