GetSports push - Saba-sports/OddsDirectAPI_CN GitHub Wiki
此API用于获取每个运动项目的赛事数量及串关赛事数量
- 通过此API在一个请求中订阅更新和检索数据。
GET /sports/stream/{version}/GetSports?until=2021-02-28&language=cs
Accept: text/event-stream
Accept-Encoding: br, gzip, deflate(如果可以使用Header)| Parameter | Description |
|---|---|
| query | 使用Odata指定特定格式的查询 |
| from | 指定赛事开始日期,可以单独输入 日期字串格式應符合: "2021-01-01T00:00:00"(可 encode) |
| until | 指定赛事结束日期,可以单独输入 日期字串格式應符合: "2021-01-01T00:00:00"(可 encode) |
| language | 指定欲回应的数据语系,请参阅Language Table |
| token | 透过 /login或/refreshToken 获得JWT token |
| isVirtual | 是否查询虚拟赛事,true = 只查询虚拟赛,false = 排除虚拟赛,未带入则全部查询 |
id: string\r\n
data: {
"status": int,
"message":string,
"payload": {
"events":{
"add": Sport[],
"change":SportChange[],
"remove":[sporttype1,sporttype2...]
}
}
}\r\n\r\n
| Name | Format | Description |
|---|---|---|
| id | string | Server Sent Event的序列号码 |
| data | json |
| Name | Format | Description |
|---|---|---|
| status | int | 回应的状态代码 |
| message | string | 回应的状态信息 |
| payload | object |
| Name | Format | Description |
|---|---|---|
| sports | object | 体育项目信息列表 |
| Name | Format | Description |
|---|---|---|
| add | Sport array | 新添加的体育项目信息 - Sport 请参阅GetSports |
| change | SportChange array | 更新的体育项目信息 - 请参考以下内容。 |
| remove | int array | 删除的体育项目ID列表 |
| Name | Format | Description |
|---|---|---|
| sportType | int | 体育项目ID |
| liveGameCount | int | 该体育项目的滚球赛事数量 |
| gameCount | int | 该体育项目的非滚球赛事数量 |
| liveParlayGame | int | 该体育项目的滚球串关赛事数量 |
| parlayGame | int | 该体育项目的非滚球串关赛事数量 |
| outrightGame | int | 该体育项目的优胜冠军赛事数量 |
| status状态代码 | message显示讯息 | Description说明描述 |
|---|---|---|
| 0 | Success | 成功 |
| 1 | InitialData | 初始数据 |
| 3 | Reset | 重新连接 |
| 97 | Invalid Accept-Encoding | Http Status Code = 400 无效的編碼压缩格式 |
| 98 | Invalid OData query attributes | Http Status Code = 400 Odata查询属性无效或不支援 |
| 99 | System under maintenance | Http Status Code = 503 系统正在维护中 |
| 100 | Internal Server Error | Http Status Code = 500 服务器发生非预期错误 |
- 第一次连线成功会回传status
1,add为初始数据,使用者应当使用该讯息之add数据进行前端画面渲染; 接着陆续收到status0的更新數據add/change/remove
- 若中途使用者因网路问题或者其他因素断线:
- 如果是使用 browser 的 native javascript EventSource api,不关闭页面的情境下 browser 会自动重连并且自动在 header 带入 Last-Event-Id, Server 端会根据该 Last-Event-Id 透过内部资料缓存机制尝试发送该重连之 client 遗漏的更新数据
- 如果是其他语言开发的使用者, 需自行实作重新连线机制且于header带入Last-Event-Id
- 若缓存中找不到可发送的更新数据,则会重新产生连线status
3,且资料内容为初始数据,使用者应当使用该讯息之add数据重新进行前端画面渲染