PATCH, когда местоположение ресурса неизвестно - PullRequest
0 голосов
/ 23 октября 2018

Я создаю API отдыха и хочу реализовать PATCH для инструмента мониторинга менеджера работ.

Все мои клиенты знают идентификатор работы менеджера работ, который не является уникальным.Диспетчер заданий время от времени сбрасывает идентификатор задания (поэтому снова начинается с 1). Это происходит через произвольные интервалы (могут быть месяцы или дни) по разным причинам.

Я хочу, чтобы менеджер заданий отправлял мне обновления о работе, но я не хочу, чтобы он сначала выполнял GET, чтобы узнать уникальный идентификатор задания (скажем, DBid), а затем выполнял PATCH / jobs/: DBID.Это из-за производительности и медленных сетевых причин.Ожидание GET может заблокировать менеджер заданий, что очень важно.

Выбор последнего задания с идентификатором диспетчера заданий вернет правильное задание.Но как смоделировать это в API отдыха?

1 Ответ

0 голосов
/ 24 октября 2018

Вам нужен идентификатор менеджера заданий, чтобы он находился в «банке» на сервере.Я работал над этим типом вещей, когда клиент должен знать внутренний идентификатор ресурса, но этот идентификатор редко изменяется.Это меняется, но очень редко.Решением для этого является служба кэширования, но для этого, похоже, вам нужен «банк» на сервере, где хранится идентификатор.

Конечная точка, обрабатывающая PATCH, знает, где находится банк.Сервер так может загрузить идентификатор с него.Возможно, простой плоский файл.

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

Вы можете добавить синхронизацию для доступа к банку в случае, если приходит PATCH, когда менеджер обновляет идентификатор.

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