Я хотел бы кэшировать данные, которые я получаю от моих запросов 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 и веб-сервисов.