NodeJS Express - разница между GET / POST / PATCH / DELETE за кадром - PullRequest
2 голосов
/ 20 апреля 2019

Является ли .get(), .post(), .put(), .delete() чисто семантическим с nodeJS и express? (за кадром эти методы отличаются?)

Если вы разрабатываете API, в конце дня вы просто отправляете req и ожидаете res полезной нагрузки

Можете ли вы, например, удалить вещи из базы данных, используя запрос .get(), если вы действительно этого хотите?

Или принять req.body, используя .get() запрос?

А как насчет внешнего интерфейса с axios?

1 Ответ

1 голос
/ 20 апреля 2019

[ответ приходит от нескольких старших разработчиков, Эндрю Студницки и Гэвина Рэя]

Да, вы можете удалять элементы из базы данных, используя get() запрос

Глаголами HTTP являются GET / POST / PUT / PATCH / DELETE / OPTIONS.Вы разрабатываете свой API, чтобы соответствовать семантике запроса, но ничто не заставляет вас

Я бы отметил, что в Axios (frontend), в частности, есть некоторые правила относительно того, что может входить в типы запросов, особенно при изменении правилОТДЫХ.Например, DELETE может технически иметь тело запроса (технические описания REST не указывают, что он не может) - и хотя это не рекомендуется, некоторые поставщики (такие как auth0) требуют requestBody наa DELETE

Обратите внимание, что axios удалит это перед отправкой запроса, если вы не выполните какую-либо обходную логику

Пока вы можете Теоретически делайте с данными все, что хотите, как только ваш сервер их получит, ваши потребители и коллеги оценят, если вы будете придерживаться соглашения.

Принципы сообщества существуют как коллективный вклад мудрости в дизайне, так же, как и всемантика.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...