Сохранение кэша из API-отклика на флаттер - PullRequest
0 голосов
/ 01 мая 2020

Я хотел бы обратиться за советом к простому способу кэширования этого ответа от моего API на флаттер. Я собираюсь сделать так, чтобы при отсутствии inte rnet он использовал элемент кэша, а при наличии inte rnet он обновлял кэш до последнего. Код ниже - текущий вызов API, который я использую.

 _getCurrentPlanDetails() async{
      var url = "http://dmp-portal-fixture.herokuapp.com/getCurrentPlan";
      var response = await http.get(url);
      if (response.statusCode == 200){
        var jsonResponse = convert.jsonDecode(response.body);
          setState(() {
            currentPlan = jsonResponse["data"]["CurrentPlan"];
            cutOffDate = jsonResponse["data"]["CutoffDate"];
            contractExpiry = jsonResponse["data"]["ContractExpiry"];
            monthsRemaining =jsonResponse["data"]["MonthsRemaining"];
          });
          print("get Current plan");
      }else{
      print("error current plan");
      }
    }

1 Ответ

0 голосов
/ 01 мая 2020

Есть несколько пакетов, которые обрабатывают это в зависимости от варианта использования ваших требований:

  1. localstorage , который является JSON хранилищем на основе.

  2. shared_preferences для хранения пар ключ-значение.

  3. flutter_secure_storage для хранения всех ваших токенов доступа и Компоненты приложения, связанные с безопасностью, такие как вся информация о сеансе, учетные данные пользователя и т. д. c ...

  4. SQL база данных , есть довольно обширное руководство по Хранение файлов в базе данных во Flutter, поэтому я рекомендую прочитать и этот файл, если вам нужно сохранить много данных, связанных с приложением, в случае отсутствия inte rnet.

...