В этом уроке мы узнаем, как включить кеширование JSON или любого другого ресурса из REST API. Кэшированный JSON будет извлекаться всякий раз, когда ваше приложение находится в автономном режиме или отключено от сети. Мы использовали «Потянуть для обновления», чтобы обновить кеш.
Прежде всего, вам необходимо добавить пакеты флаттера dio и dio_http_cache в свой проект, добавив следующие строки в файл pubspec.yaml.
dependencies:
flutter:
sdk: flutter
dio: ^4.0.4
dio_http_cache: ^0.3.0
Здесь пакет dio предназначен для получения JSON или любого другого ресурса из REST API, а пакет dio_http_cache должен использоваться для кэширования ресурсов, полученных из REST API.
Импортируйте dio и dio_http_cache в свой дартс-скрипт:
import 'package:dio/dio.dart';
import 'package:dio_http_cache/dio_http_cache.dart';
Добавьте эту строку перед запросом API, вы можете сделать это как с помощью метода GET, так и с помощью POST:
dio.interceptors.add(DioCacheManager(CacheConfig(baseUrl: "http://www.google.com")).interceptor);
Включите кэширование по запросу REST API:
Dio().get(
"http://www.google.com",
options: buildCacheOptions(Duration(days: 7)),
);
Установите maxState, если вы хотите вернуть кеш в случае ошибки 500, 400:
buildCacheOptions(Duration(days: 7), maxStale: Duration(days: 10))
Вы также можете принудительно обновить:
buildCacheOptions(Duration(days: 7), forceRefresh: true)
Таким образом, вы можете кэшировать JSON или любой другой ресурс из REST API в приложении Flutter.