GET通过 Slug 获取订单簿
使用市场 slug 检索特定结果的当前订单簿(买单和卖单)。此端点专为 WebSocket 信号设计,WebSocket 使用基于 slug 的频道名称(market:{slug}:orderbook)。
请求
GET /v1/markets/slug/:slug/orderbook
路径参数
| 参数 | 类型 | 必填 | 描述 |
|---|
slug | string | 是 | 市场 URL slug(例如 will-btc-hit-100k) |
查询参数
| 参数 | 类型 | 必填 | 描述 |
|---|
outcomeId | string | 是 | 获取订单簿的结果 ID |
响应
{
"outcomeId": "outcome-uuid-1",
"outcomeSide": "Yes - YES",
"bids": [
{ "price": "0.650", "shares": "500.00" },
{ "price": "0.640", "shares": "300.00" },
{ "price": "0.620", "shares": "150.00" }
],
"asks": [
{ "price": "0.680", "shares": "200.00" },
{ "price": "0.700", "shares": "400.00" },
{ "price": "0.750", "shares": "100.00" }
]
}
响应字段
| 字段 | 类型 | 描述 |
|---|
outcomeId | string | 此订单簿代表的结果 ID |
outcomeSide | string | 结果名称和方向的组合(例如 Yes - YES、Trump - YES) |
bids | array | 买单,按价格降序排列 |
asks | array | 卖单,按价格升序排列 |
bids[].price | string | 买入价格(3位小数) |
bids[].shares | string | 此价格水平的总份额 |
WebSocket 集成
此端点设计用于在 market:{slug}:orderbook 频道收到 WebSocket 信号后调用:
// 1. 订阅 WebSocket 频道
socket.emit('join', { channel: 'market:will-btc-hit-100k:orderbook' });
// 2. 收到信号后,使用相同的 slug 获取更新数据
socket.on('market:will-btc-hit-100k:orderbook', async (data) => {
const response = await fetch('/v1/markets/slug/will-btc-hit-100k/orderbook?outcomeId=outcome-uuid-1');
const orderbook = await response.json();
});
这消除了维护 slug-to-UUID 映射的需要,因为 WebSocket 频道和 REST API 使用相同的 slug 标识符。
错误
| 状态码 | 描述 |
|---|
400 | 缺少 outcomeId 或结果不属于此市场 |
404 | 未找到市场或结果 |
示例
curl "https://api.conviction.bet/v1/markets/slug/will-btc-hit-100k/orderbook?outcomeId=outcome-uuid-1"