| API訂閱 | Websocket訂閱 | 主動發送訂閱 | |
|---|---|---|---|
| 說明 | 訂閱者自行開發抓取資料的服務,定時呼叫我方提供的API取得資料 | 訂閱者建立Websocket連線,透過WSS取得及時變動資料 | 訂閱者提供API,我們設置服務主動將變動資料推送到訂閱者API接口 |
| 使用流程 | 訂閱者使用時間戳記呼叫API取得該時間區段中有變動的資料 | 建立WebSocket連線取得變動資料 | 初始化時需要透過API取得所有資料,之後我們主動呼叫API傳送變動資料 |
| 即時性 | 約慢另兩方案1秒 | 最快 | 最快 |
| 初始資料來源 | 彙整後資料 | 爬蟲原始資料 | 爬蟲原始資料 |
| 即時警示 | 訂閱者從API回傳資料中自行判斷 | Service提供 | Service提供,但訂閱者需提供對應的API接口 |
| 資料壓縮 | 無 | Gzip | Gzip |
| 範例: | Step1.透過API取得全部資料 ex:https://ls.zbdigital.net/api/data/SC/bet365.com/Odd?lastAccessTime=1606112039 | 程式碼請參考: https://ls.zbdigital.net/MatchClient .NET Core C# 請下載: https://ls.zbdigital.net/downloads/MatchesSample.zip 頻道訂閱參數請參考 https://ls.zbdigital.net/WSSKey | Step1.透過API取得全部資料 Step2.由我方Call對應API提供資料 |
參數說明請參考https://ls.zbdigital.net/Index ,以下為常用的場景
| 場景 | API | 結果 |
|---|---|---|
| 第一次,要取得當天所有賽事 | /api/data/{companyCode}/{gameType}/{site}/{subscribeType} | 取得今明兩天所有尚未結束的賽事 |
| 取得一個時段內有變動的賽事 | /api/data/{companyCode}/{gameType}/{site}/{subscribeType}?lastAccessTime=1606112039 | 從1606112039到現在的所有變動賽事 |
| 取得比賽結果 | /api/data/{companyCode}/{gameType}/{site}/{subscribeType}?IsFinal = true | 當天已經結束的比賽內容 |
| 某一個站台的聯盟名稱 | v1/siteleagues/{GameType}?site=bet365.com | bet365.com對應球種的聯盟,如有不同語系內容則一併回傳 |
| 某一個站台的特定聯盟的所有Team | /api/siteteams/{GameType}/{site}/{sitelids} 或是 /api/siteteams/{GameType}?site=bet365.com 該站台所有的隊伍 | bet365.com對應球種,聯盟的隊名,如有不同語系則一併內容回傳 |
| 某一場賽事的比賽進程 | /api/matchhistories/{GameType}/{site}/{sitelid}/{sitegid} | 單一場比賽的比分,PlayByPlay的全程內容(Match,PlayByPlay為Json字串) |
| 檢查我方服務是否正常運行 | /heart | 如有回傳現在時間表示目前系統正常運行中. |
| 系統有哪些站台,球種 | /api/schema | 回傳系統的站台,球種代號 |
注意:呼叫API時,Header必須要給X-Auth作為驗證(測試用Token為: 4xj7SsVlROxLHggt )
(Postman範例)

本文只對比賽內容結構和欄位進行說明.其他請參考https://ls.zbdigital.net/Index
賽事 (SiteGameOutputDto)結構層級如下(json)欄位說明:
|
範例
{
"GameType": "SC",
"Site": "bet365.com",
"SendTime": 1606114599,
"SiteGames": [
{
"League": "Esoccer Battle - 8 mins play",
"Team2": "Lazio (jkey) Esports",
"Team1": "Napoli (Rebels) Esports",
"GameDate": "2020-11-23",
"GameTime": "02:42",
"GameID": "1ae01408ba-2020-11-23",
"Score2": 0,
"Score1": 0,
"GameStatus": "PreGame",
"PlayByPlay": [],
"Odds": [
{
"PlayMode": "HA",
"Prices": [
{
"OriginSpread": "Full Time Result",
"Spread": "1X2",
"Odds": [
{
"OddType": "1",
"Odd": 7,
"Result":"W"
},
{
"OddType": "T",
"Odd": 0.28,
"Result":"L"
},
{
"OddType": "2",
"Odd": 4,
"Result":"L"
}
]
},
{
"OriginSpread": "1.0,1.5",
"Spread": "-1+50",
"Odds": [
{
"OddType": "1",
"Odd": -1,
"Result":"WR"
},
{
"OddType": "2",
"Odd": -1,
"Result":"LR"
}
]
},
{
"OriginSpread": "1.5",
"Spread": "-1.5",
"Odds": [
{
"OddType": "1",
"Odd": 0.8,
"Result":"W"
},
{
"OddType": "2",
"Odd": 0.9,
"Result":"L"
}
]
}
]
},
{
"PlayMode": "OU",
"Prices": [
{
"OriginSpread": "3.0",
"Spread": "3",
"Odds": [
{
"OddType": "O",
"Odd": 0.95,
"Result":"W"
},
{
"OddType": "U",
"Odd": 0.75,
"Result":"L"
}
]
}
]
}
]
}]
} |