Public API Reference — Hantavirus
Обзор
Hantavirus.app предоставляет публичный API только для чтения для программного доступа к данным о вспышках. API построен на tRPC и доступен по адресу https://api.hantavir.us.com/api/trpc.
Аутентификация
Публичный API не требует аутентификации. Все процедуры чтения доступны без ключа API.
Ограничения скорости
- 60 запросов в минуту на IP-адрес
- Заголовки ограничения скорости включены в ответы:
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 | Получить число случаев для вспышки |
Server-Sent Events (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);
};Поддержка локалей
Все процедуры, учитывающие локаль, принимают язык через:
- Cookie
hv-locale - Заголовок
Accept-Language - По умолчанию:
en
Поддерживаются: en, ar (заливский халиджи), fr
Для получения полной информации об API см. полную документацию по API.