GetSports push - Saba-sports/OddsDirectAPI_CN GitHub Wiki

此API用于获取每个运动项目的赛事数量及串关赛事数量

  • 通过此API在一个请求中订阅更新和检索数据。

Request

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

Response

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

Data object

Name Format Description
status int 回应的状态代码
message string 回应的状态信息
payload object

Payload object

Name Format Description
sports object 体育项目信息列表
Sports object
Name Format Description
add Sport array 新添加的体育项目信息
- Sport 请参阅GetSports
change SportChange array 更新的体育项目信息
- 请参考以下内容。
remove int array 删除的体育项目ID列表
SportChange information
Name Format Description
sportType int 体育项目ID
liveGameCount int 该体育项目的滚球赛事数量
gameCount int 该体育项目的非滚球赛事数量
liveParlayGame int 该体育项目的滚球串关赛事数量
parlayGame int 该体育项目的非滚球串关赛事数量
outrightGame int 该体育项目的优胜冠军赛事数量

Status Enumeration

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
    • 若缓存中找不到可发送的更新数据,则会重新产生连线status3,且资料内容为初始数据,使用者应当使用该讯息之add数据重新进行前端画面渲染
⚠️ **GitHub.com Fallback** ⚠️