从CoinGecko的API查询代币的价格

1,842 阅读1分钟

查询目标代币的API id

  1. CoinGecko搜索目标代币

  1. 进入代币的详情页,获取目标代币的API id

测试API

在CoinGecko的API文档页可以测试接口是否能够正确返回数据。

其中ids是上一步查到的API id,vs_currencies是对手价格,查询美元价格时输入usd。

正确输入ids和vs_currencies后点击Execute即可获取到接口返回的代币价格。如下图:

在项目中调用CoinGecko API

使用get请求上一步测试成功后返回的Request URL。

封装通用方法

import axios from 'axios';

interface TokenInfo {
  /**
   * API id in token info in coingecko
   */
  ids: string;
}

export type TokenName = 'BTC' | 'ETH';

export const Tokens: Record<TokenName, TokenInfo> = {
  BTC: {
    ids: 'bitcoin',
  },
  ETH: {
    ids: 'ethereum',
  },
};

export const getTokenPrice = async (
  tokenName: TokenName,
  vsCurrencies: string = 'usd',
) => {
  const resp: Record<string, any> = await axios.get(
    'https://api.coingecko.com/api/v3/simple/price',
    {
      params: {
        ids: Tokens[tokenName].ids,
        vs_currencies: vsCurrencies,
      },
    },
  );

  return resp?.[Tokens[tokenName].ids]?.[vsCurrencies];
};