Управление версиями сущностей при отправке на интерфейс - PullRequest
0 голосов
/ 08 июня 2019

В Java есть оптимистический термин блокировки. Когда сущность отправляется во внешний интерфейс, ее версия также может быть отправлена, а затем повторно отправлена ​​во внутренний сервер с изменениями. Однако как следует обрабатывать сценарий ниже?

  1. Некоторый клиент A получает клиента {id: 1, version: 1}
  2. Какой-то другой клиент B модифицирует клиента, так что теперь он {id: 1, version: 2} в бэкэнде.
  3. Кто-то угадывает новую версию и отправляет запрос со старыми изменениями клиента и версии 2, сделанными B.

Если сервер опирается на версию, отправленную с внешнего интерфейса, он может быть обманут, если кто-то угадает действительную версию. Есть ли хорошее решение?

Я думал об отправке некоторого идентификатора с GET-запросами и кэшировании в бэкэнде в течение определенного времени, какие версии сущностей были отправлены во внешний интерфейс, поэтому, когда кто-то хочет обновить сущность, он должен указать идентификатор, предоставленный в GET. Однако это просто сложно.

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