市场
获取市场列表
检索带筛选选项的分页市场列表。
端点: GET /api/v1/markets
查询参数:
| 参数 | 类型 | 描述 |
|---|---|---|
| status | string | 按市场状态筛选(live, active, closed, disputing, resolved, resolution_proposed) |
| page | number | 分页页码 |
| pageSize | number | 每页结果数量 |
获取市场详情
通过 ID 检索特定市场的详细信息。
端点: GET /api/v1/markets/{marketId}
路径参数:
| 参数 | 类型 | 描述 |
|---|---|---|
| marketId | string | 唯一市场标识符 |
市场状态
市场可以有以下状态:
| 状态 | 描述 |
|---|---|
| live | 市场开放交易中 |
| active | 市场活跃但可能有交易限制 |
| closed | 市场已关闭交易 |
| disputing | 市场结果处理正在争议中 |
| resolved | 市场已完成结果处理 |
| resolution_proposed | 结果处理已提议,等待确认 |
代码示例
获取活跃市场
const API_KEY = 'YOUR_API_KEY';
const BASE_URL = 'https://engine.xmarket.app/api/v1';
async function getActiveMarkets() {
const response = await fetch(
`${BASE_URL}/markets?status=live&pageSize=50`,
{
headers: {
'x-api-key': API_KEY,
'Content-Type': 'application/json'
}
}
);
const data = await response.json();
return data.items;
}
获取市场详情
async function getMarketDetail(marketId) {
const response = await fetch(
`${BASE_URL}/markets/${marketId}`,
{
headers: {
'x-api-key': API_KEY,
'Content-Type': 'application/json'
}
}
);
if (!response.ok) {
throw new Error(`Market not found: ${response.status}`);
}
const market = await response.json();
console.log(`Market: ${market.name}`);
console.log(`Status: ${market.status}`);
console.log(`Outcomes: ${market.outcomes.length}`);
return market;
}
// 示例用法
const market = await getMarketDetail('market-uuid-here');
按状态筛选市场
async function getMarketsByStatus(status) {
const response = await fetch(
`${BASE_URL}/markets?status=${status}&page=1&pageSize=100`,
{
headers: {
'x-api-key': API_KEY,
'Content-Type': 'application/json'
}
}
);
const data = await response.json();
console.log(`Found ${data.total} ${status} markets`);
return data.items;
}
// 获取所有已完成结果处理的市场
const resolvedMarkets = await getMarketsByStatus('resolved');
// 获取争议中的市场
const disputingMarkets = await getMarketsByStatus('disputing');
最佳实践
- 缓存:适当缓存市场数据,因为元数据不会频繁变化
- 分页:对大型结果集使用分页以提高性能
- 错误处理:为暂时性网络错误实现重试逻辑
- 速率限制:遵守 API 速率限制(100 请求/分钟,20 请求/秒突发)
- 数据验证:在使用前始终验证市场和结果 ID