Flutter - использование ключа api

Я делаю приложение, которое захватывает данные JSON о криптовалюте из общедоступный v1 Api, но поддержка этого скоро будет прекращена, а это означает, что мне придется перенести более мощный профессиональный v1 Api.

Единственная проблема в том, что я не знаю, как реализовать использование нового ключа Api, который требуется при анализе данных JSON.

Я использую сильно модифицированную версию этого git репо для программирования приложения, но здесь базируются все основные функции.

Все, что мне нужно, это руководство о том, что мне нужно добавить в этот файл для отображения нового профессионального API v1. Любые комментарии или идеи приветствуются. Спасибо

Это файл crypto_data_prod.dart, в котором мне пришлось бы изменить свой код для использования с ключом.

import 'dart:async';
import 'dart:convert';
import 'package:http/http.dart' as http;
import 'package:fluttercrypto/data/crypto_data.dart';

class ProdCryptoRepository implements CryptoRepository {
  String cryptoUrl = "https://api.coinmarketcap.com/v1/ticker/?limit=50";
  @override
  Future<List<Crypto>> fetchCurrencies() async {
    // TODO: implement fetchCurrencies
    http.Response response = await http.get(cryptoUrl);
    final List responseBody = JSON.decode(response.body);
    final statusCode = response.statusCode;
    if (statusCode != 200 || responseBody == null) {
      throw new FetchDataException(
          "An error ocurred : [Status Code : $statusCode]");
    }

    return responseBody.map((c) => new Crypto.fromMap(c)).toList();
  }
}
2
0
5 585
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Попробуй сменить http.Response response = await http.get(cryptoUrl); на

http.Response response = await http.get(cryptoUrl, headers: {"X-CMC_PRO_API_KEY": "cab79c7b-52e9-4e4b-94fc-b0f32da14799"});

Для получения дополнительной информации проверьте эта ссылка.

Я уверен, что это работает, но оказалось, что тип JSON отличается от общедоступного API V1, теперь я получаю сообщение об ошибке type '_InternalLinkedHashMap<String, dynamic>' is not a subtype of type 'List<dynamic>'

Jake 13.09.2018 19:18

Привет, Даниил, с этим не повезло?

Jake 14.09.2018 15:09

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