Как настроить URLSessionConfiguration так, чтобы кэшированные данные длились всего 5 минут (серверная часть не обрабатывает срок действия) - PullRequest
0 голосов
/ 05 ноября 2018

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

Точнее, я бы хотел, чтобы максимальная продолжительность жизни данных моего кеша составляла 5-10 минут.

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

Например:

  • Пользователь запрашивает данные прогноза для Нью-Йорка
  • Пользователь запрашивает данные прогноза для Лондона

Теперь, если пользователь снова запросит Нью-Йорк, я хотел бы повторно использовать данные из предыдущего запроса. Данные о погоде обновляются каждые 15 минут на стороне сервера (поэтому достаточно 5-минутного кэша, навигация в приложении для приложения погоды не длится так долго).

Вот что у меня сейчас:

let configuration = URLSessionConfiguration.default
configuration.requestCachePolicy = .returnCacheDataElseLoad
configuration.timeoutIntervalForRequest = TimeInterval(60)
configuration.timeoutIntervalForResource = TimeInterval(60)

let session = URLSession(configuration: configuration)

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

Я бы хотел настроить срок действия моей URLSessionConfiguration.

Примечание: Все мои объекты модели получены из протокола Codable и веб-сервисов.

...