Преобразование ответа JSON в объект модели с использованием библиотеки Chopper во флаттере?

Я использую библиотеку Chopper для вызова остальных вызовов API.

Я следовал руководству Raywenderlich Chopper Tutorial, чтобы реализовать вызовы API в моем проекте.

В этом руководстве они использовали приведенный ниже код для преобразования ответа JSON в объект популярной модели.

    try {
      var mapData = json.decode(body);
      **var popular = Popular.fromJson(mapData);**
      return response.copyWith<BodyType>(body: popular as BodyType);
    } catch (e) {
      chopperLogger.warning(e);
      return response.copyWith<BodyType>(body: body);
    }

Это хорошо. Но в моем проекте мне нужно сделать несколько вызовов API и декодировать несколько ответов JSON на объекты модели Dart.

Итак, как декодировать ответы на несколько вызовов API? Мне нужно сделать что-то вроде ниже:

      if(mapData['popularResponse'] != null) {
        Popular popularResponse = Popular.fromJson(mapData);
        return response.copyWith<BodyType>(
                  body: popularResponse as BodyType);
      } else if(mapData['articleResponse'] != null) {
        Article articleResponse = Article.fromJson(mapData);
        return response.copyWith<BodyType>(
                  body: articleResponse as BodyType);

      } else if(......) {
        ......
      }

Как поступить дальше?

1 ответ

Один запрос на файл api, это единственный способ, которым я вижу это возможным, я думаю, что пакет http достаточно хорош, а прерыватель - больше проблем, чем его ценность.

Другие вопросы по тегам