之前在朋友介绍下接触到比特币,借着疫情期间的闲暇时间考虑自己做一个行情系统看看。搭建其实不难,难的是哪里获取那么多的币种数据。
找了一些API产品,第一家是coinmarketcap,有免费版本,但是遇到问题没有人解答,对于需要长期使用的人来说会挺麻烦。第二家是国内的AIcoin,这家知名度挺大,不过需要通过邮件进行商务沟通,这种操作不用说肯定要谈钱。对于我这种“涉世未深”的菜鸟只能望而却步,直接放弃。
最后,通过几个关键词搜到蜜蜂查商业API,这个号称“几分钟内构建您的加密货币行情系统”的网站简直打开了新世界的大门。(这家网站原来叫Block.cc,很早就听说过,后来改成了蜜蜂查。)

看文档大概就知道数据能不能满足自己的需求。除了简单的价格以外,还有深度、历史成交额、K线、交易所信息等多维度的数据,可以满足大部分专业行情系统的需求。
在收费方面,有五档套餐。不同的套餐在数据量方面没有区别,主要是在请求次数方面会有不同限制。如果是自己随便玩玩的话(像我),10k调用/月的免费版就足够用。如果真的需要搭建一个公开使用的行情系统,4M调用/月的套餐对企业来说也不贵,每个月大概300美金。
开始搭建

我需要搭建的行情系统需要呈现的数据维度有:币种名称、价格、涨跌幅、交易量、市值、更新时间。注册拿到API KEY之后,花几分钟时间码一下。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Crypto Market Data</title>
<script src="https://cdn.jsdelivr.net/npm/vue@2.6.11"></script>
</head>
<body>
<div id="app">
<h1>10秒开发一个行情软件</h1>
<table>
<thead>
<tr>
<th style="text-align: left">币种</th>
<th style="text-align: right">价格(USD)</th>
<th style="text-align: right">价格(BTC)</th>
<th style="text-align: right">24H涨幅</th>
<th style="text-align: right">交易量(USD)</th>
<th style="text-align: right">市值</th>
<th style="text-align: right">更新时间</th>
</tr>
</thead>
<tbody>
<tr v-for="price in prices">
<td style="text-align: left">{{price.S}} ({{price.s}})</td>
<td style="text-align: right">{{price.u |number: 2}}</td>
<td style="text-align: right">{{price.b}}</td>
<td style="text-align: right">{{(price.c * 100).toFixed(2)}}%</td>
<td style="text-align: right">{{price.v}}</td>
<td style="text-align: right">{{price.m}}</td>
<td style="text-align: right">{{parseInt((Date.now() - price.T) / 1000)}}秒前</td>
</tr>
</tbody>
</table>
</div>
</body>
<script>
var app = new Vue({
el: '#app',
data() {
return {
prices: [],
timer: null
}
},
mounted() {
this.timer = setInterval(() => {
getExchangeInfo.call(this);
}, 3000);
},
destroyed() {
clearInterval(this.timer);
this.timer = null;
}
});
function getExchangeInfo() {
fetch("https://data.block.cc/api/v3/price?size=100&api_key=你的APIKEY", {method: 'GET'})
.then(response => response.json())
.then(result => this.prices = result)
.catch(error => console.log('error', error));
}
</script>
</html>
跑起来之后是这样的。毕竟才花了几分钟的功夫,效果还行,凑合看吧。

这种API简直是码农的救世主。如果靠自己去找交易所一个一个接入数据的话,不知道猴年马月才能接好。最关键的是,客服基本有求必应,有问题都能及时解答,这一点在商用的时候尤为重要。
有时间搭建更完美的更新给大家。
网友评论