Public API Reference — Hantavirus
概述
Hantavirus.app 提供公开、只读的 API,用于以编程方式访问疫情数据。该 API 基于 tRPC 构建,访问地址为 https://api.hantavir.us.com/api/trpc。
身份认证
公共 API 无需身份认证。所有读取过程无需 API 密钥即可使用。
速率限制
- 每个 IP 地址每分钟 60 次请求
- 响应中包含速率限制标头:
X-RateLimit-Limit、X-RateLimit-Remaining、X-RateLimit-Reset - 超出限制将返回
429 Too Many Requests
tRPC 路由
| 路由 | 关键过程 | 缓存 TTL |
|---|---|---|
outbreak.* | getCurrent, getBySlug, list, getRiskLevel | 30 秒 |
cases.* | getCounts, getTimeSeries | 30 秒 |
regions.* | list, byCountry | 60 秒 |
news.* | list, getById | 无 |
timeline.* | list | 60 秒(首页) |
faqs.* | list | 无 |
advisories.* | list, byCountry | 无 |
ticker.* | list | 10 秒 |
完整过程文档可在 内部 API 参考 中查阅。
REST 端点
为方便起见,我们还提供 REST 包装:
| 端点 | 方法 | 说明 |
|---|---|---|
/v1/outbreak/:slug | GET | 按 slug 获取疫情头信息 |
/v1/outbreaks | GET | 列出所有活跃疫情 |
/v1/cases/:slug | GET | 获取某疫情的病例数 |
服务器推送事件 (SSE)
| 流 | 说明 | 事件 |
|---|---|---|
/sse/ticker | 实时新闻滚动条更新 | text、severity、link |
/sse/ships/:mmsi | 船舶位置更新 | lat、lng、speed、heading |
示例:滚动条 SSE
const source = new EventSource('https://api.hantavir.us.com/sse/ticker');
source.onmessage = (e) => {
const data = JSON.parse(e.data);
console.log(data.text, data.severity);
};语言支持
所有语言相关过程通过以下方式接收语言参数:
hv-localeCookieAccept-Language请求头- 默认:
en
支持的语言:en、ar(海湾阿拉伯语)、fr
完整 API 详情请参阅 完整 API 文档。