m0k1 / cryptowatch-prices-api
用于实现 cryptowatch HTTP API 客户端的软件包
v1.x-dev
2022-11-12 00:58 UTC
Requires (Dev)
This package is auto-updated.
Last update: 2024-09-12 05:18:21 UTC
README
Cryptowatch HTTP API 的一个粗略实现
安装
此软件包可以使用 composer 安装
composer require djansen20/cryptowatch-http-api:^1.0
或者直接将以下内容添加到您的 composer.json 中
{ "require": { "djansen20/cryptowatch-http-api": "^1.0" } }
使用方法
为了使用此库,将以下命名空间包含到您的项目中
use Cryptowatch\CryptowatchHttpApi
所有方法将返回一个响应对象,该对象可以转换为 json 或可用的数组
# To get data as array $array = $response->asArray(); # Get data as json $json = $response->jsonSerialize();
速率限制
Cryptowatch 每小时给每个客户端8秒的CPU时间。目前此客户端不读取此限制或做任何处理。如果您收到状态码为 429 的响应,则表示已达到请求限制。但库可能会更早崩溃。
方法
所有方法都是静态调用的,因此不需要创建对象。目前有 5 个可能的静态方法。
getAssets
资产可以是加密货币或法定货币
示例请求
$asset = 'neo'; $responseObject = CryptowatchHttpApi::getAssets($asset); $data = $responseObject->asArray();
示例响应
array(2) { ["result"]=> array(5) { ["id"]=> int(66) ["symbol"]=> string(3) "neo" ["name"]=> string(3) "NEO" ["fiat"]=> bool(false) ["markets"]=> array(1) { ["base"]=> array(11) { [0]=> array(5) { ["id"]=> int(643) ["exchange"]=> string(6) "bitmex" ["pair"]=> string(22) "neobtc-monthly-futures" ["active"]=> bool(true) ["route"]=> string(62) "https://api.cryptowat.ch/markets/bitmex/neobtc-monthly-futures" } [1]=> array(5) { ["id"]=> int(661) ["exchange"]=> string(6) "bitmex" ["pair"]=> string(24) "neobtc-quarterly-futures" ["active"]=> bool(true) ["route"]=> string(64) "https://api.cryptowat.ch/markets/bitmex/neobtc-quarterly-futures" } ... } } } ["allowance"]=> array(2) { ["cost"]=> int(113410) ["remaining"]=> int(7947157629) } }
getPairs
资产对。每个对都有一个基础和报价。例如,btceur 的基础是 btc,报价是 eur。
示例请求
$pair = 'neotbtc' $responseObject = CryptowatchHttpApi::getPairs($pair); $data = $responseObject->asArray();
示例响应
array(2) { ["result"]=> array(6) { ["symbol"]=> string(6) "neobtc" ["id"]=> int(86) ["base"]=> array(5) { ["id"]=> int(66) ["symbol"]=> string(3) "neo" ["name"]=> string(3) "NEO" ["fiat"]=> bool(false) ["route"]=> string(35) "https://api.cryptowat.ch/assets/neo" } ["quote"]=> array(5) { ["id"]=> int(60) ["symbol"]=> string(3) "btc" ["name"]=> string(7) "Bitcoin" ["fiat"]=> bool(false) ["route"]=> string(35) "https://api.cryptowat.ch/assets/btc" } ["route"]=> string(37) "https://api.cryptowat.ch/pairs/neobtc" ["markets"]=> array(3) { [0]=> array(5) { ["id"]=> int(582) ["exchange"]=> string(7) "binance" ["pair"]=> string(6) "neobtc" ["active"]=> bool(true) ["route"]=> string(47) "https://api.cryptowat.ch/markets/binance/neobtc" } [1]=> array(5) { ["id"]=> int(34) ["exchange"]=> string(8) "bitfinex" ["pair"]=> string(6) "neobtc" ["active"]=> bool(true) ["route"]=> string(48) "https://api.cryptowat.ch/markets/bitfinex/neobtc" } [2]=> array(5) { ["id"]=> int(383) ["exchange"]=> string(7) "bittrex" ["pair"]=> string(6) "neobtc" ["active"]=> bool(true) ["route"]=> string(47) "https://api.cryptowat.ch/markets/bittrex/neobtc" } } } ["allowance"]=> array(2) { ["cost"]=> int(224791) ["remaining"]=> int(7946932838) } }
getExchanges
获取特定交易所的信息
示例请求
$exchange = 'bitstamp'; $responseObject = CryptowatchHttpApi::getExchanges($exchange); $data = $responseObject->asArray();
示例响应
array(2) { ["result"]=> array(5) { ["id"]=> int(3) ["symbol"]=> string(8) "bitstamp" ["name"]=> string(8) "Bitstamp" ["active"]=> bool(true) ["routes"]=> array(1) { ["markets"]=> string(41) "https://api.cryptowat.ch/markets/bitstamp" } } ["allowance"]=> array(2) { ["cost"]=> int(29870) ["remaining"]=> int(7946902968) } }
getMarkets
市场是在交易所上列出的资产对。例如,在 kraken 交易所上对 btceur 的组合是一个市场。
对于每个交易所/对组合,都有各种子命令可用。
- price // 返回市场的最后价格。
- summary // 返回市场的最后价格以及基于24小时滑动窗口的统计数据。
- trades // 返回市场的最新交易,按时间顺序递增。
- orderbook // 返回市场的订单簿。
- ohlc // 返回市场的 OHLC 蜡烛图数据。按每个时间段的整数返回数字列表的列表。
示例请求
$exchange = 'bitstamp'; $pair = 'btcusd'; $subcommand = 'ohlc'; $params = [ 'after' => 1481563244 'before' => 1481663244 'periods' => 86400 ]; $responseObject = CryptowatchHttpApi::getMarkets($exchange, $pair, $subcommand, $params); $data = $responseObject->asArray();
示例响应
array(2) { ["result"]=> array(1) { [86400]=> array(2) { [0]=> array(7) { [0]=> int(1481587200) [1]=> float(768.97) [2]=> int(779) [3]=> float(768.96) [4]=> float(776.9) [5]=> float(2802.0916) [6]=> int(0) } [1]=> array(7) { [0]=> int(1481673600) [1]=> int(777) [2]=> float(793.27) [3]=> float(765.1) [4]=> float(775.35) [5]=> float(4918.8164) [6]=> int(0) } } } ["allowance"]=> array(2) { ["cost"]=> int(2032490) ["remaining"]=> int(7943769676) } }
getAggregate
市场由一个 slug 标识,它是交易所名称和货币对的连接,用冒号分隔。
目前有 2 个聚合可用
- prices // 返回所有受支持市场的当前价格。某些值可能比实际晚几秒。
- summaries // 返回所有受支持市场的市场摘要。某些值可能比实际晚几秒。
示例请求
$method = 'prices'; $responseObject = CryptowatchHttpApi::getAggregate($method); $data = $responseObject->asArray();
示例响应
array(2) { ["result"]=> array(726) { ["binance:adabtc"]=> float(2.165E-5) ["binance:adaeth"]=> float(0.00033469) ["binance:arkbtc"]=> float(0.0003211) ["binance:batbtc"]=> float(2.413E-5) ["binance:bateth"]=> float(0.00037179) ["binance:bccbtc"]=> float(0.115777) ["binance:bcceth"]=> float(1.79409) ["binance:bccusdt"]=> float(989.7) ... } ["allowance"]=> array(2) { ["cost"]=> int(1039078) ["remaining"]=> int(7941514860) } }