Действие, которое изменяет состояние коллекции в RESTful API - PullRequest
0 голосов
/ 21 января 2020

Мне нужно реализовать logi c в моем API RESTful (пока), чтобы деактивировать все устаревшие элементы в коллекции. Для этого обязательства я хочу выполнить безопасную и атомарную c операцию изнутри API, поэтому вместо PUT/PATCH /collection/item-ID с каждым новым состоянием делайте это одним и атомарным c способом с точки зрения клиента. Что-то вроде PUT /collection/deactivate-outdated.

Меня интересует, как это сделать, следуя наиболее точной спецификации REST. Как указывают некоторые источники, не должно существовать действий в ресурсе RESTful 1 , но другие 2 уточняют, можно ли выполнять такие не RESTful-операции.

На данный момент я знаю, что эта операция больше не будет RESTful, но я хотел бы сделать ее максимально приближенной к спецификации REST. Какой случай будет более подходящим?

При этом каждый элемент коллекции имеет поле updated_at, из которого выводится, если элемент устарел или нет.

  1. POST /collection/action/deactivate-outdated
  2. PUT /collection/deactivate-outdated
...