Flutter加密货币数据获取插件coingecko_api的使用
Flutter加密货币数据获取插件coingecko_api的使用
目录
简介
Simple Dart wrapper for the CoinGecko API
coingecko_api
是一个用于与CoinGecko API交互的Dart包,可以帮助开发者轻松获取加密货币相关的数据。
安装
在您的Dart或Flutter项目的pubspec.yaml
文件中添加依赖:
dependencies:
coingecko_api: ^2.0.0
然后运行 flutter pub get
或 dart pub get
来安装依赖。
使用方法
创建API实例
import 'package:coingecko_api/coingecko_api.dart';
void main() async {
final api = CoinGeckoApi();
}
调用API方法
所有方法都是异步的,并返回一个 CoinGeckoResult
对象。您可以通过检查 isError
属性来判断请求是否成功。如果成功,可以使用 data
属性访问数据;如果失败,可以使用 errorCode
和 errorMessage
查看错误信息。
例如,获取比特币过去7天的市场图表数据:
final marketChart = await api.coins.getCoinMarketChart(
id: 'bitcoin',
vsCurrency: 'usd',
days: 7,
);
if (!marketChart.isError) {
marketChart.data.forEach((item) {
print('Price: ${item.price}, Market Cap: ${item.marketCap}');
});
} else {
print('Error: ${marketChart.errorCode}: ${marketChart.errorMessage}');
}
查询结果
每个API调用的结果都是一个 CoinGeckoResult
对象。该对象包含以下属性:
isError
: 布尔值,表示请求是否成功。data
: 如果请求成功,包含处理后的数据。errorCode
: 如果请求失败,包含错误代码。errorMessage
: 如果请求失败,包含错误信息。
各功能模块
以下是 coingecko_api
提供的主要功能模块及其对应的方法:
ping
方法名 | 描述 | 查询字符串 |
---|---|---|
ping | 检查API服务器状态 | /ping |
simple
方法名 | 描述 | 查询字符串 |
---|---|---|
listPrices | 获取任何加密货币当前价格 | /simple/price |
listTokenPrices | 获取给定平台上的代币价格 | /simple/token_price/{id} |
listSupportedVsCurrencies | 获取支持的对比货币列表 | /simple/supported_vs_currencies |
coins
方法名 | 描述 | 查询字符串 |
---|---|---|
listCoins | 列出所有支持的加密货币ID、名称和符号 | /coins/list |
listCoinMarkets | 列出所有支持的加密货币市场价格、市值、成交量等市场相关数据 | /coins/markets |
getCoinData | 获取某个加密货币的当前数据 | /coins/{id} |
listCoinTickers | 获取某个加密货币的交易对(分页) | /coins/{id}/tickers |
getCoinHistory | 获取某个加密货币的历史数据 | /coins/{id}/history |
getCoinMarketChart | 获取某个加密货币的历史市场数据(包括价格、市值、24小时成交量) | /coins/{id}/market_chart |
getCoinMarketChartRanged | 获取某个加密货币在指定时间范围内的历史市场数据 | /coins/{id}/market_chart/range |
listCoinStatusUpdates | 获取某个加密货币的状态更新 | /coins/{id}/status_updates |
getCoinOHLC | 获取某个加密货币的OHLC数据 | /coins/{id}/ohlc |
contract
方法名 | 描述 | 查询字符串 |
---|---|---|
getContractTokenData | 从合约地址获取代币信息 | /coins/{id}/contract/{contract_address} |
getContractMarketChart | 获取合约地址的历史市场数据 | /coins/{id}/contract/{contract_address}/market_chart |
getContractMarketChartRanged | 获取合约地址在指定时间范围内的历史市场数据 | /coins/{id}/contract/{contract_address}/market_chart/range |
categories
方法名 | 描述 | 查询字符串 |
---|---|---|
listCategoriesShort | 列出所有分类 | /coins/categories/list |
listCategories | 列出所有分类及其市场数据 | /coins/categories |
nfts
方法名 | 描述 | 查询字符串 |
---|---|---|
listNfts | 获取所有支持的NFT列表 | /nfts/list |
getDataById | 根据NFT集合ID获取NFT数据 | /nfts/{id} |
getDataByContractAddress | 根据NFT集合合约地址获取NFT数据 | /nfts/{asset_platform_id}/contract/{contract_address} |
exchanges
方法名 | 描述 | 查询字符串 |
---|---|---|
listExchanges | 列出所有交易所 | /exchanges |
listExchangesShort | 列出所有支持的交易所ID和名称 | /exchanges/list |
getExchangeData | 获取交易所数据 | /exchanges/{id} |
getExchangeTickers | 获取交易所交易对(分页) | /exchanges/{id}/tickers |
getExchangeVolumeChartData | 获取交易所成交量图表数据 | /exchanges/{id}/volume_chart |
derivatives
方法名 | 描述 | 查询字符串 |
---|---|---|
listDerivatives | 列出所有衍生品交易对 | /derivatives |
listDerivativeExchanges | 列出所有衍生品交易所 | /derivatives/exchanges |
getDerivativeExchange | 获取衍生品交易所数据 | /derivatives/exchanges/{id} |
listDerivativeExchangesShort | 列出所有衍生品交易所名称和标识符 | /derivatives/exchanges/list |
asset_platforms
方法名 | 描述 | 查询字符串 |
---|---|---|
listAssetPlatforms | 列出所有资产平台(区块链网络) | /asset_platforms |
exchange_rates
方法名 | 描述 | 查询字符串 |
---|---|---|
getBtcExchangeRates | 获取BTC兑换汇率 | /exchange_rates |
search
方法名 | 描述 | 查询字符串 |
---|---|---|
searchFor | 搜索加密货币、分类和市场 | /search |
trending
方法名 | 描述 | 查询字符串 |
---|---|---|
getSearchTrending | 获取CoinGecko上24小时内最热门的7个搜索加密货币 | /search/trending |
global
方法名 | 描述 | 查询字符串 |
---|---|---|
getGlobalData | 获取全球加密货币数据 | /global |
getGlobalDefiData | 获取全球去中心化金融(DeFi)数据 | /global/decentralized_finance_defi |
companies
方法名 | 描述 | 查询字符串 |
---|---|---|
getCompaniesData | 获取公开公司数据 | /companies/public_treasury/{coin_id} |
indexes
方法名 | 描述 | 查询字符串 |
---|---|---|
listMarketIndexes | 列出所有市场指数 | /indexes |
getMarketIndex | 获取市场指数数据 | /indexes/{market_id}/{id} |
listMarketIndexesShort | 列出市场指数ID和名称 | /indexes/list |
完整示例
以下是一个完整的示例,演示如何使用 coingecko_api
获取比特币在过去7天内的OHLC(开盘价、最高价、最低价、收盘价)数据:
import 'package:coingecko_api/coingecko_api.dart';
Future<void> main() async {
print(
'This example demonstrates receiving OHLC data (open, high, low, close) '
'from CoinGecko on the BTC/USD pair for the last 7 days.',
);
final api = CoinGeckoApi();
print('Calling method getCoinOHLC() ...');
final result = await api.coins.getCoinOHLC(
id: 'bitcoin',
vsCurrency: 'usd',
days: 7,
);
if (!result.isError) {
print('getCoinOHLC() results:');
result.data.forEach(
(item) => print(
'${item.timestamp}: open = ${item.open}, high = ${item.high}, low = ${item.low}, close = ${item.close}',
),
);
print('Test method completed successfully.');
} else {
print('getCoinOHLC() method returned error:');
print('${result.errorCode}: ${result.errorMessage}');
print('Test method failed.');
}
}
通过上述代码,您可以轻松获取并打印比特币在过去7天内的OHLC数据。希望这个示例能帮助您更好地理解和使用 coingecko_api
插件。
如果您有任何问题或需要进一步的帮助,请随时联系我!
更多关于Flutter加密货币数据获取插件coingecko_api的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter加密货币数据获取插件coingecko_api的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,以下是一个关于如何使用 coingecko_api
插件在 Flutter 中获取加密货币数据的代码示例。这个插件允许你访问 CoinGecko 的 API,以获取加密货币的市场数据、价格、交易量等信息。
首先,确保你已经在 pubspec.yaml
文件中添加了 coingecko_api
依赖:
dependencies:
flutter:
sdk: flutter
coingecko_api: ^x.y.z # 请替换为最新版本号
然后,运行 flutter pub get
来获取依赖。
接下来,在你的 Flutter 应用中,你可以按照以下步骤使用 coingecko_api
:
-
初始化 CoinGecko API 客户端
-
调用 API 获取数据
-
处理并显示数据
以下是一个完整的示例,展示如何在 Flutter 应用中获取并显示比特币(BTC)的当前价格:
import 'package:flutter/material.dart';
import 'package:coingecko_api/coingecko_api.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'CoinGecko API Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
String? btcPrice;
@override
void initState() {
super.initState();
_fetchBitcoinPrice();
}
Future<void> _fetchBitcoinPrice() async {
// 初始化 CoinGecko API 客户端
final client = CoinGeckoClient();
try {
// 获取比特币的市场数据
final coinData = await client.coins.getCoinById('bitcoin', includeMarketData: true);
// 从响应中提取当前价格
final price = coinData!.marketData!.currentPrice!.usd!;
// 更新状态
setState(() {
btcPrice = price.toStringAsFixed(2);
});
} catch (e) {
print('Error fetching data: $e');
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('CoinGecko API Demo'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text(
'Bitcoin Price (USD)',
style: TextStyle(fontSize: 24),
),
SizedBox(height: 16),
Text(
btcPrice ?? 'Loading...',
style: TextStyle(fontSize: 20, fontWeight: FontWeight.bold),
),
],
),
),
);
}
}
在这个示例中:
- 我们创建了一个 Flutter 应用,并在
MyHomePage
中初始化了CoinGeckoClient
。 - 使用
client.coins.getCoinById('bitcoin', includeMarketData: true)
方法获取比特币的市场数据。 - 从返回的
coinData
中提取当前价格,并更新到状态中。 - 在
build
方法中,我们显示了一个简单的界面,展示加载中的状态或比特币的价格。
请确保你的 Flutter 环境已经正确配置,并且已经连接到互联网,以便能够访问 CoinGecko 的 API。如果 API 发生变化,请参考 coingecko_api
插件的官方文档以获取最新的使用方法。