Flutter加密货币数据获取插件coingecko_client的使用

发布于 1周前 作者 eggper 来自 Flutter

Flutter加密货币数据获取插件coingecko_client的使用

简介

coingecko_client 是一个用于 Dart/Flutter 的 CoinGecko REST API 客户端库,提供了简单且直观的方式来访问 CoinGecko 的各种加密货币数据。该库已经经过全面测试,并且几乎所有的结果都转换为模型/DTO/实体类,方便开发者直接使用。

以下是 coingecko_client 插件的完整示例 demo:

图片展示

版本信息 覆盖率 SDK版本 许可证

安装

在你的 pubspec.yaml 文件中添加以下依赖:

dependencies:
  coingecko_client: ^1.2.2

使用示例

以下是一个完整的示例,展示了如何使用 coingecko_client 获取比特币的历史数据并打印出来。

import 'package:coingecko_client/coingecko_client.dart';

void main() async {
  try {
    // 初始化客户端
    final client = CoinGeckoClient();

    // 获取比特币的历史数据
    final coinHistory = await client.coins.getHistory(
      id: 'bitcoin',
      date: DateTime.now()
    );

    // 打印历史数据
    print(coinHistory);
    print(coinHistory.name);

  } on Exception catch (e, _) {
    // 异常处理
    print("错误发生");
    if (e is NetworkRequestException) {
      print(e.statusCode);
    } else {
      rethrow;
    }
  }
}

其他常见用法

以下是其他一些常见的 API 调用示例:

  1. 检查服务是否在线

    // 检查服务是否在线
    final result = await client.ping.getResult();
    print(result);
    
  2. 获取所有加密货币的基本列表

    // 获取所有加密货币的基本列表
    final coinsList = await client.coins.getBasicList();
    print(coinsList);
    
  3. 获取市场数据

    // 获取市场数据
    final marketData = await client.coins.getMarketList(
      vsCurrency: Currencies.usd
    );
    print(marketData);
    
  4. 获取特定加密货币的信息

    // 获取特定加密货币的信息
    final coinInfo = await client.coins.getInfo(id: 'verus-coin');
    print(coinInfo);
    
  5. 获取交易所列表

    // 获取交易所列表
    final exchangesList = await client.exchanges.getList();
    print(exchangesList);
    
  6. 获取简单的币种价格

    // 获取简单的币种价格
    final priceData = await client.simple.getCoinPrice(
      ids: ['bitcoin', 'ethereum'],
      vsCurrencies: [Currencies.usd, Currencies.php],
      includeMarketCap: true,
      include24hrVol: true,
      include24hrChange: true,
      includeLastUpdatedAt: true,
      precision: 18
    );
    print(priceData);
    

错误处理

为了确保代码的健壮性,建议将 API 调用包裹在 try/catch 块中,以便捕获和处理可能的异常。例如:

try {
  final client = CoinGeckoClient();
  final coinHistory = await client.coins.getHistory(
    id: 'bitcoin',
    date: DateTime.now()
  );
  print(coinHistory);
} on NetworkRequestException catch (e, _) {
  print('网络请求错误: ${e.statusCode}');
} catch (e) {
  print('未知错误: $e');
}

更多关于Flutter加密货币数据获取插件coingecko_client的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter加密货币数据获取插件coingecko_client的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,下面是一个使用Flutter的coingecko_client插件来获取加密货币数据的示例代码。这个插件允许你访问CoinGecko API,获取各种加密货币的市场数据、价格、交易量等信息。

首先,你需要在你的pubspec.yaml文件中添加coingecko_client依赖:

dependencies:
  flutter:
    sdk: flutter
  coingecko_client: ^最新版本号  # 请替换为最新的版本号

然后运行flutter pub get来安装依赖。

接下来是一个简单的Flutter应用示例,展示如何使用coingecko_client获取比特币(BTC)的当前价格信息:

import 'package:flutter/material.dart';
import 'package:coingecko_client/coingecko_client.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  late CoinGeckoClient _client;
  String? _price;
  bool _loading = true;

  @override
  void initState() {
    super.initState();
    _client = CoinGeckoClient();
    _fetchBitcoinPrice();
  }

  Future<void> _fetchBitcoinPrice() async {
    try {
      final response = await _client.coins.getCoinById(
        id: 'bitcoin',
        localization: 'en',
        tickers: false,
        marketData: true,
        communityData: false,
        developerData: false,
        sparkline: false,
      );

      setState(() {
        _price = response.data!.marketData!.currentPrice!.usd!.toString();
        _loading = false;
      });
    } catch (e) {
      print('Error fetching Bitcoin price: $e');
      setState(() {
        _price = 'Error fetching data';
        _loading = false;
      });
    }
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('CoinGecko Client Example'),
        ),
        body: Center(
          child: _loading
              ? CircularProgressIndicator()
              : Text(
                  'Current Bitcoin Price: \$$_price',
                  style: TextStyle(fontSize: 24),
                ),
        ),
      ),
    );
  }
}

在这个示例中,我们:

  1. 创建了一个CoinGeckoClient实例。
  2. 使用_fetchBitcoinPrice方法调用getCoinById函数获取比特币的市场数据。
  3. 在获取数据成功后,更新UI显示当前价格。
  4. 使用一个布尔变量_loading来显示加载指示器或价格信息。

请确保你已经连接互联网,因为coingecko_client需要从CoinGecko的API获取数据。

这个示例只是展示了基本的用法,coingecko_client插件还提供了更多功能,比如获取多个币种的列表、历史价格数据等,你可以参考官方文档获取更多详细信息。

回到顶部