查询目标代币的API id
- 在CoinGecko搜索目标代币
- 进入代币的详情页,获取目标代币的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];
};