Веб-служба Restful. Что происходит, когда я запускаю запрос DELETE для коллекции?

Архитектура REST предполагает определенные типы ресурсов, называемые «коллекциями». Поскольку этот тип ресурса рассматривается в REST, предполагается, что запросы могут выполняться всеми методами, предоставляемыми протоколом HTTP: GET, POST, DELETE и т. д. Я хочу знать, какое поведение вы ожидаете именно в архитектуре REST. , из запроса DELETE для коллекции. Запрос удалит коллекцию ресурсов, так что, если я запущу новый запрос в этой коллекции, я получу ошибку, ресурс не найден? Или запрос отменит «одиночные» ресурсы, содержащиеся в коллекции, и тогда коллекция ресурсов все еще существует?

Спасибо всем, кто хочет помочь мне развеять мои сомнения.


person zed87    schedule 27.10.2017    source источник


Ответы (1)


Насколько я вижу, вы смешиваете две вещи: запрос REST — это интерфейс между вашим интерфейсом и вашим сервером и может быть GET, POST, PUT. , УДАЛИТЬ.

Затем все, что вы хотите с ним делать, должно быть реализовано на бэкэнде. Однако существуют строгие принципы того, что делать с каждым из них:

  • ПОЛУЧИТЬ = получить
  • ПОСТ = вставить
  • ПОСТАВИТЬ = обновить
  • УДАЛИТЬ = удалить

Но запросы REST по умолчанию ничего не делают в базе данных. В вашем методе, когда запросы REST поступают в ваш сервер, вам необходимо реализовать метод для извлечения/вставки/обновления/удаления данных, которые вы хотите.

person dave0688    schedule 27.10.2017
comment
Спасибо за ответ, но я думаю, что вы неправильно поняли мой вопрос. Я никогда не упоминал базу данных или почти любой запрос. Я просто спрашиваю, каково ожидаемое поведение архитектуры строго REST, когда запрос DELETE делается на ресурсе коллекции: коллекция позже пуста или больше не существует? - person zed87; 27.10.2017
comment
Окей, я вижу. Однако в строгой архитектуре REST ожидается действие базы данных. Таким образом, вы обычно используете свою коллекцию (которую вы получаете из внешнего интерфейса) в качестве идентификаторов, данные о которых должны быть удалены в базе данных. В основном мои пули в ответе показывают ожидаемое поведение. Поскольку данные обычно сохраняются в базе данных, обычным поведением является действие базы данных. - person dave0688; 27.10.2017