快速开始
3 个步骤完成基础调用
准备 API Key
所有接口均通过请求头携带密钥完成身份识别。建议为不同业务模块使用独立密钥,便于权限控制和调用统计。
选择数据端点
根据业务目标调用赛程、实时比分、赛况详情或历史结果接口。不同页面建议使用不同缓存策略以控制请求成本。
处理 JSON 返回
接口默认返回 UTF-8 编码的 JSON 数据,可直接用于前端展示、服务器聚合、站点缓存或告警系统。
接口基础信息
文档面向需要接入 世界杯 赛事数据的开发团队、内容站、联盟推广站与工具平台。接口采用 HTTPS 传输,推荐服务端调用后再将结果分发至前端,以提升密钥安全性与整体稳定性。
- 响应格式:
application/json - 字符编码:
UTF-8 - 认证方式:请求头
X-API-Key - 推荐请求方法:
GET - 时间字段:推荐按 UTC 存储,前端按当地时区格式化展示
认证方式
所有请求都应在 Header 中包含密钥。若缺失、错误或已停用,服务端会返回认证失败信息。为降低风险,不建议在公开前端源码中直接暴露 API Key。
GET /v1/matches/live HTTP/1.1
Host: api.example.com
Accept: application/json
X-API-Key: your_api_key_here
基础响应结构
为了方便统一处理,不同端点通常共享一套外层字段。开发时建议优先根据 success、code 与 data 字段判断请求结果,再进行业务渲染。
{
"success": true,
"code": 200,
"message": "ok",
"timestamp": 1760000000,
"data": {}
}
常用端点说明
1. 获取实时比赛列表
适用于首页比分条、赛事列表页、直播看板与频道聚合页面。该接口返回当前进行中的赛事及核心状态信息。
GET /v1/matches/live
competition:赛事标识,可选page:分页参数,可选limit:每页数量,可选
示例返回
{
"success": true,
"code": 200,
"message": "ok",
"data": {
"items": [
{
"match_id": "wc2026-001",
"home_team": "Team A",
"away_team": "Team B",
"home_score": 1,
"away_score": 0,
"status": "live",
"minute": 67,
"kickoff_at": "2026-06-18T18:00:00Z"
}
],
"pagination": {
"page": 1,
"limit": 20,
"total": 1
}
}
}
2. 获取赛程列表
适合用于赛程总览页、专题页或赛前预告模块。若业务只需展示未来 7 天赛程,建议通过日期参数控制范围,并结合站点缓存减少重复请求。
GET /v1/matches/schedule?date=2026-06-18
3. 获取单场比赛详情
适用于详情页、数据看板与比赛专题页。除基础比分信息外,还可扩展展示阶段、开球时间、队伍信息、事件流等字段。
GET /v1/matches/{match_id}
请求示例
cURL 调用示例
curl -X GET "https://api.example.com/v1/matches/live" \
-H "Accept: application/json" \
-H "X-API-Key: your_api_key_here"
PHP 调用示例
<?php
$ch = curl_init('https://api.example.com/v1/matches/live');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Accept: application/json',
'X-API-Key: your_api_key_here'
]
]);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
$data = json_decode($response, true);
JavaScript 服务端示例
const response = await fetch('https://api.example.com/v1/matches/live', {
headers: {
'Accept': 'application/json',
'X-API-Key': 'your_api_key_here'
}
});
const result = await response.json();
关键字段建议
在建立前端组件时,建议先定义清晰的数据映射关系,以避免未来字段扩展导致页面结构频繁调整。以下字段最常见:
match_id:比赛唯一标识status:状态,如scheduled、live、finishedminute:当前比赛分钟数,仅直播状态下可能返回home_team/away_team:参赛队伍名称home_score/away_score:当前或最终比分kickoff_at:开球时间
错误码说明
接入方应根据 HTTP 状态码与业务错误码双层判断。当接口处于限流、权限不足或参数异常状态时,不建议简单重试,应先识别具体原因。
| 状态 / 代码 | 含义 | 建议处理方式 |
|---|---|---|
| 200 | 请求成功 | 正常读取并缓存结果 |
| 400 | 参数错误 | 检查日期、分页或路径变量 |
| 401 | 未授权或密钥错误 | 确认请求头中的 API Key |
| 403 | 权限不足 | 检查套餐权限或端点访问范围 |
| 429 | 请求过于频繁 | 降低频率并启用缓存队列 |
| 500 | 服务异常 | 记录日志并按退避策略重试 |
调用频率与缓存建议
实时数据的价值很高,但无节制地拉取会明显增加成本与失败率。对于大部分内容站和工具站,建议基于页面场景设置不同刷新间隔:
- 实时直播模块:15 至 30 秒轮询一次
- 赛程页与历史结果页:5 至 30 分钟更新一次
- 首页摘要组件:优先使用服务端缓存,避免每个访客都直接命中接口
- 高峰时段采用队列或中间层聚合,减少对源接口的并发压力
集成实践建议
- 服务端请求后统一清洗字段,前端只消费标准化结构
- 将比赛状态、队伍名称、时间格式化逻辑封装为独立模块
- 对关键接口建立失败告警与备用缓存策略
- 记录请求日志、响应时间与错误分布,便于监控稳定性
- 避免让公开页面直接暴露全部数据字段,只输出必要内容
适用场景
本接口适合搭建世界杯比分中心、赛程导航页、专题站数据模块、站长工具组件以及联盟平台的数据展示层。如果你希望先了解服务能力,再查看更偏业务导向的说明,可继续浏览站内相关页面。
常见问题
接口是否适合前端直接调用?
不建议。更合理的方式是由服务端完成请求、鉴权和缓存,再将业务字段输出到前端,以提升安全性与可控性。
数据多久更新一次?
实际更新节奏取决于端点类型与赛事状态。直播相关接口应以短周期轮询,历史结果与赛程数据可采用更长缓存时间。
如果出现 429 怎么办?
说明请求频率过高。应立即减少轮询次数,使用缓存层,并对失败重试采用指数退避策略,而不是瞬时重复请求。
如何规划多站点接入?
建议通过统一中台服务拉取与分发数据,避免多个站点分别直连同一端点,从而降低调用冗余并提高维护效率。