Я делаю приложение, которое захватывает данные 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();
}
}

Попробуй сменить 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>'