Как кэшировать JSON из REST API во Flutter

В этом уроке мы узнаем, как включить кеширование 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.

Как включить кеширование JSON из REST API во Flutter

Импортируйте 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.

3.05 GEEK