Как заблокировать методы REST / HTTP во время запущенного процесса? - PullRequest
0 голосов
/ 05 апреля 2019

Я работаю над REST API, который позволяет запускать процессы на ранее добавленных ресурсах.

Управление ресурсами и процессами осуществляется, как в следующем примере ( Это упрощенное представление ):

//Setup the process basics
POST /processes
PATCH /processes/{pid}
DELETE /processes/{pid} 

//Add, update, delte entities to process
POST /processes/{pid}/entitiesToProcess
PATCH /processes/{pid}/entitiesToProcess/{eid}
DELETE /processes/{pid}/entitiesToProcess/{eid}

//Execute the process
POST /processes/{pid}/run
GET /processes/{pid}/run/{rid}
DELETE /processes/{pid}/run/{rid}

После вызова POST / processs / {pid} / run службы REST начинают обрабатывать все ранее добавленные "ProperitesToProcess". Во время работы он должен отклонять запросы к своим ресурсам.

После прочтения доступных кодов состояния ответа HTTP я предполагаю, что это должно быть несколько (или комбинация) из следующего:

  • 409 - Конфликт
  • 412 - Сбой предварительного условия
  • 423 - заблокировано
  • 428 - Требуется предварительное условие

Поскольку вызов POST / Процессы / {PID} / Выполнение позволяет отклонить манипулирующие вызовы, я предполагаю, что я должен использовать предварительное условие, как "токен блокировки" в заголовке этого вызова , Если это предварительное условие отсутствует, ответом будет 412 - Предварительное условие не выполнено .

Как только запрос будет выполнен успешно, служба REST заблокирует все связанные ресурсы, и любой манипулирующий вызов к ним приведет к ответу 423 - Locked , пока процесс выполняется.

Если этот подход верен, мне интересно ...

  1. как должен выглядеть отправленный "токен блокировки",
  2. как должен выглядеть обязательный код "предусловия" или "постусловия" ответа 423 - Lock и
  3. если маркер блокировки в запросе POST / projects / {pid} / run вообще необходим, так как блокировка будет только временной и на время выполнения процесса? Как будет выглядеть код «предусловия» или «постусловия» в ответе 423 - Lock в этом случае?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...