Перейти к содержанию

Служебные эндпоинты

GET /healthz

Проверка живости, которую используют HEALTHCHECK в Docker, compose и балансировщики нагрузки.

{"status": "ok"}

Она не обращается ни к t.me, ни к Redis, поэтому остаётся зелёной, даже когда источник недоступен, — сам API в этом случае деградирует плавно (при сбое Redis работает «без кэша», при сбое t.me затронутые запросы получают 503).

GET /

Стартовая страница: что это за сервис, блок Попробуйте, который вызывает GET /v1/body/{channel} прямо из браузера, состояние экземпляра (здоровье, версия, включённые функции) и ссылки на документацию, справочник API, GraphQL и исходный код. Если сервер требует доказательство работы, браузер решает его перед запросом в Web Workers. Старые ссылки на Swagger UI, который раньше был здесь (/#/Channel/...), перенаправляются на /api.

GET /api

Swagger UI для интерактивного изучения /openapi.json. С ENABLE_POW Try it out решает доказательство работы для каждого запроса.

GET /openapi.json

Описание API в формате OpenAPI 3.1, подходящее для генераторов клиентов.

GET /docs/

Эта документация: на английском по /docs/, на испанском по /docs/es/, на русском по /docs/ru/. Docker-образ содержит её, собранную для префикса /docs/, поэтому она работает с одним docker run или compose, без обратного прокси, и всегда соответствует версии, которая её отдаёт (DOCS_SITE_DIR). Канонические ссылки относительны экземпляра. Страницы кэшируются на 10 минут, ресурсы с хешем содержимого в имени — на год.

Без сборки (установка из исходников) /docs/… перенаправляет на ту же страницу на https://koval01.github.io/telegram-me/.

GET /robots.txt, GET /sitemap.xml

robots.txt разрешает поисковым роботам читать страницы и документацию, закрывает от них /v1/ и /graphql и указывает на карту сайта. sitemap.xml перечисляет стартовую страницу, /api и каждую страницу документации на каждом языке, с переводами как альтернативами hreflang. Её URL абсолютные, на основе PUBLIC_URL.

DISABLE_DOCS=true убирает /, /api, /openapi.json, /docs/ и /sitemap.xml; robots.txt тогда запрещает всё.

GET /static/{path}

Стили, скрипты и значок стартовой страницы и справочника API, а также hello.txt, который некоторые развёртывания используют для проверки доступности.

Метрики

Если задан METRICS_PORT, granian отдаёт метрики Prometheus на этом порту по пути /metrics (обновляются каждые 15 с), например:

Метрика Значение
granian_requests_handled Обработанные запросы по воркерам
granian_connections_active, granian_connections_handled, granian_connections_err Счётчики соединений
granian_py_wait_cumulative Время ожидания цикла событий Python
granian_workers_spawns, granian_workers_respawns_for_err, granian_workers_respawns_for_rss Жизненный цикл воркеров
granian_worker_lifetime Секунды с момента запуска каждого воркера

Привязывайте его к внутреннему интерфейсу: слушатель метрик использует HOST.