如何在一个 GET 请求中解析来自 Coinbase API 的所有股票代码
Posted
技术标签:
【中文标题】如何在一个 GET 请求中解析来自 Coinbase API 的所有股票代码【英文标题】:How to parse all ticker symbols from Coinbase API in one single GET request 【发布时间】:2020-01-16 17:12:56 【问题描述】:我正在尝试在来自 Coinbase REST API 的单个 JSON 有效负载响应中获取所有代码(货币对)及其相应的买价和卖价数据。如果我对每个单独的股票代码都有 GET 请求,我将不得不避免收到 Coinbase API 文档中提到的 729 错误。
我对此 URL 有一个 GET 请求 -> https://api-public.sandbox.pro.coinbase.com/products/BTC-USD/book
它返回了我需要的 BTC-USD 数据,但实际上我对交易所列出的所有代码感兴趣,并在一次查询中获得相应的买价和卖价数据。
例如,许多其他交易所将货币代码首字母缩写词替换为“ALL”。所以我的 JSON 有效负载响应如下所示:
我尝试设置一个计时器函数来一次解析单个代码 3 秒,但这不是从 JSON 获取我需要的所有数据的最快方法。
JSON 响应应如下所示:
"ticker": [
"symbol": "ABBCBTC",
"24hrHigh": "0.00000850",
"last": "0.00000842",
"24hrVol": "1507399.04",
"ask": "0.0000084",
"24hrLow": "0.00000813",
"bid": "0.00000833",
"24hrAmt": "12.52040928"
,
"symbol": "ABTETH",
"24hrHigh": "0.001078",
"last": "0.001078",
"24hrVol": "5.27",
"ask": "0.001988",
"24hrLow": "0.000964",
"bid": "0.000983",
"24hrAmt": "0.005681"
,
"symbol": "ABTUSDT",
"24hrHigh": "0.212",
"last": "0.202",
"24hrVol": "944.91",
"ask": "0.203",
"24hrLow": "0.190",
"bid": "0.197",
"24hrAmt": "183.148"
,
"symbol": "ABYSSETH",
"24hrHigh": "0.0000500",
"last": "0.0000500",
"24hrVol": "0",
"ask": "0.000055",
"24hrLow": "0.0000500",
"bid": "0.0000301",
"24hrAmt": "0.0000000"
,
"symbol": "ACDCBTC",
"24hrHigh": "0.000000011",
"last": "0.000000010",
"24hrVol": "86773.47",
"ask": "0.00000001",
"24hrLow": "0.000000009",
"bid": "0.000000009",
"24hrAmt": "0.000858894"
,
"symbol": "ACDCUSDT",
"24hrHigh": "0.000110",
"last": "0.000107",
"24hrVol": "24011.63",
"ask": "0.000107",
"24hrLow": "0.000085",
"bid": "0.000087",
"24hrAmt": "2.088214"
,
"symbol": "ADDETH",
"24hrHigh": "0.000046",
"last": "0.000046",
"24hrVol": "0",
"ask": "0.000062",
"24hrLow": "0.000046",
"bid": "--",
"24hrAmt": "0.000000"
,
"symbol": "ADIETH",
"24hrHigh": "0.00000310",
"last": "0.00000310",
"24hrVol": "0",
"ask": "0.00000744",
"24hrLow": "0.00000310",
"bid": "0.0000031",
"24hrAmt": "0.00000000"
,
"symbol": "ADNBTC",
"24hrHigh": "0.0000000378",
"last": "0.0000000375",
"24hrVol": "551104713.07",
"ask": "0.0000000379",
"24hrLow": "0.0000000366",
"bid": "0.0000000367",
"24hrAmt": "20.4085431339"
]
【问题讨论】:
不幸的是,并非每个交易所都支持一次查询多个市场的能力... 【参考方案1】:您似乎无法在一次调用中获取所有代码 ((我还没有时间重新构建网络套接字的基础设施。Coinbase 是唯一一个不允许在一次通话中接收所有代码的交易所。我从 Bittrex、Bitmex、Kraken、Bitfinex、Binance 获得报价 - 并且没有一次性获取所有代码的问题。
祝你好运!
【讨论】:
【参考方案2】:来自Coinbase docs:他的 URL 将为 Coinbase 上的所有代码提供数据:
curl --request GET \
--url https://api.exchange.coinbase.com/products \
--header 'Accept: application/json'
如果您需要有关每个代码的更详细数据,您可以遍历响应并对每个代码名称进行单独调用。
【讨论】:
以上是关于如何在一个 GET 请求中解析来自 Coinbase API 的所有股票代码的主要内容,如果未能解决你的问题,请参考以下文章
以(Json 格式)解析来自 Google Place api 响应的数据
如何在 AJAX POST 请求后解析来自服务器的 JSON 响应?