@nakonechnikistryi

Если в случае получения «expired» ресурса потребуется создать новый ресурс, то «кто» должен это сделать?

Имеется приложение, в котором участвует три стороны:
клиент -> сервер1 -> сервер2

Клиент через прокси сервер1 получает ресурсы сервера2

На сервере2 имеется ресурс по определенному адресу:

GET /resource/123

{
  "createdAt": "1937-01-01T12:00:27.87+00:20"
}


И допустим есть требование - если ресурс является expired (дата создания ресурса меньше, чем текущая дата), то его нужно пересоздать. Какая сторона должна выполнить это требование?

Если создавать новый ресурс на сервере2 при получении GET-запрос, то выглядит неочень.

На сервере1 этой логике не место, потому что его ответственностью является только проксирование запросов и небольшой маппинг данных между клиентом и сервером2.

Остается разместить эту логику на клиенте. Но во-первых клиентов может быть очень много, и все они ринутся пересоздавать ресурс. Во-вторых, не всегда клиент сможет после GET-запроса (определить 'expired') послать второй запрос на пересоздание, то есть нет гарантии атомарности операции в два этапа.

Где бы Вы разместили логику пересоздания ресурса и как?
  • Вопрос задан
  • 31 просмотр
Пригласить эксперта
Ответы на вопрос 1
@Drno
Вам надо менять ссылку? или ссылка остается такая ? (для проксирования? )
Если такая же - на сервере 2. Если меняется - на сервере 1, чтоб вписать новую ссылку в конфиг прокси сразу
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы