Предположим, что следующий сценарий. Веб-приложение обслуживает ресурсы через RESTful API. Ряд клиентов использует этот API. Цель состоит в том, чтобы данные на клиентах синхронизировались с веб-приложением (в обоих направлениях).
Самый простой способ сделать это - спросить API, если какой-либо из ресурсов изменился с момента последнего синхронизации клиента с API. Это означает, что клиенту необходимо запросить API для соответствующих ресурсов, сопровождаемых меткой времени (чтобы проверить, нужно ли обновлять данные). Это кажется мне похожим на подход с наименьшими затратами с точки зрения ненужного потребления полосы пропускания.
Однако я чувствую, что этот подход имеет несколько недостатков в плане дизайна и ответственности. Например, API не должен иметь дело с проверкой того, устарели ли ресурсы. Похоже, что единственная ответственность API должна заключаться в том, чтобы обслуживать ресурсы, когда их спрашивали, без необходимости иметь дело с аспектом обновления. Следуя этому второму подходу, клиент будет запрашивать много данных каждый раз, когда он захочет обновить свои данные, чтобы синхронизировать его с веб-приложением. Другими словами, клиент проверяет, являются ли данные, которые он получил, новее, чем локально сохраненные данные. Если этот процесс происходит каждые несколько минут, это может стать значительным бременем для системы.
Я вижу это правильно или есть средняя дорога, которую я пропускаю?