Siesta-Swift: есть ли способ узнать, изменился ли Resource.latestData? - PullRequest
0 голосов
/ 02 июня 2018

Мой код выглядит следующим образом:

let myAPI = Service(baseURL: "...")
myAPI.resource("/...").addObserver(owner: self) { resource, event in
}

, если URL всегда возвращает 200 (НЕ 301), есть ли способ проверить resource или event, если сами данные, json-content, изменился или, если это то же самое?

Я хотел бы добиться поведения, при котором приложение выполняет загрузку в фоновом режиме и запускает UI-действие, только если сам JSON изменился.

1 Ответ

0 голосов
/ 07 июня 2018

Сиеста в настоящее время не поддерживает это.В общем случае это не может быть сделано автоматически, поскольку не существует универсально действительного определения «изменено» для каждого типа содержимого ресурса.(Даже если содержимое ресурса равно Equatable и это соответствует определению «изменено», которое вы хотите, следует ли включать некоторые заголовки в понятие равенства? Какие из них?)

304 - этохорошая яркая линия: сервер, арбитр правды для ресурса, объявляет его семантически неизменным - и все специфичные для API правила о том, что означает «неизменный», живут на сервере.

Это, однако, кажетсякак хорошая вещь, чтобы иметь возможность настроить.Я рекомендую заполнить вопрос, если вы хотите, чтобы он был реализован.

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

...