Подход RESTful к синхронизации данных

Предположим следующий сценарий Веб-приложение обслуживает ресурсы через RESTful API. Ряд клиентов используют этот API. Цель состоит в том, чтобы данные клиентов синхронизировались с веб-приложением (в обоих направлениях ).

Самый простой способ сделать это — запросить у API, изменились ли какие-либо ресурсы с момента последней синхронизации клиента с API. Это означает, что клиент должен запросить у API соответствующие ресурсы, сопровождаемые отметкой времени (, чтобы узнать, нужно ли обновлять данные ).Мне кажется, что это подход с наименьшими накладными расходами с точки зрения ненужного потребления полосы пропускания.

Однако у меня есть ощущение, что у этого подхода есть несколько недостатков с точки зрения дизайна и ответственности. Например, API не должен проверять, не устарели ли ресурсы. Кажется, что единственной обязанностью API должно быть предоставление ресурсов по запросу без необходимости иметь дело с аспектом обновления. Следуя этому второму подходу, клиент будет запрашивать много данных каждый раз, когда он хочет обновить свои данные, чтобы синхронизировать их с веб-приложением. Другими словами, клиент будет проверять, являются ли возвращенные им данные более новыми, чем локально сохраненные данные. Если этот процесс происходит каждые несколько минут, это может стать значительной нагрузкой для системы.

Я правильно это вижу, или я упускаю из виду нечто среднее?

15
задан Bart Jacobs 1 August 2012 в 15:43
поделиться