Saltar a contenido

Endpoints de servicio

GET /healthz

Sonda de disponibilidad (liveness) que usan el HEALTHCHECK de Docker, compose y los balanceadores de carga.

{"status": "ok"}

No toca t.me ni Redis, así que sigue en verde aunque el origen no esté disponible; en ese caso la propia API se degrada de forma controlada (las caídas de Redis pasan a funcionar «sin caché», las caídas de t.me producen 503 en las solicitudes afectadas).

GET /

La página de inicio: qué es el servicio, un recuadro Pruébalo que llama a GET /v1/body/{channel} desde el navegador, el estado de la instancia (salud, versión, funciones activas) y enlaces a la documentación, la referencia de la API, GraphQL y el código fuente. Cuando el servidor exige prueba de trabajo, el navegador la resuelve antes de la solicitud, en Web Workers. Los enlaces antiguos a Swagger UI, que antes estaba aquí (/#/Channel/...), se redirigen a /api.

GET /api

Swagger UI para explorar /openapi.json de forma interactiva. Con ENABLE_POW, Try it out resuelve la prueba de trabajo de cada solicitud.

GET /openapi.json

La descripción OpenAPI 3.1 de la API, apta para generadores de clientes.

GET /docs/

Esta documentación: en inglés en /docs/, en español en /docs/es/ y en ruso en /docs/ru/. La imagen de Docker la incluye, compilada para el prefijo /docs/, así que funciona solo con docker run o compose, sin proxy inverso, y siempre corresponde a la versión que la sirve (DOCS_SITE_DIR). Los enlaces canónicos son relativos a la instancia. Las páginas se guardan en caché 10 minutos, y los recursos con un hash del contenido en el nombre, un año.

Sin compilación (una instalación desde el código fuente), /docs/… redirige a la misma página en https://koval01.github.io/telegram-me/.

GET /robots.txt, GET /sitemap.xml

robots.txt permite a los rastreadores leer las páginas y la documentación, los mantiene fuera de /v1/ y /graphql e indica el sitemap. sitemap.xml enumera la página de inicio, /api y cada página de la documentación en cada idioma, con sus traducciones como alternativas hreflang. Sus URL son absolutas, sobre PUBLIC_URL.

DISABLE_DOCS=true elimina /, /api, /openapi.json, /docs/ y /sitemap.xml; robots.txt pasa entonces a prohibirlo todo.

GET /static/{path}

Estilos, scripts e icono de la página de inicio y de la referencia de la API, y un hello.txt que algunos despliegues usan para comprobar la accesibilidad.

Métricas

Cuando se define METRICS_PORT, granian expone métricas de Prometheus en ese puerto en /metrics (actualizadas cada 15 s), por ejemplo:

Métrica Significado
granian_requests_handled Solicitudes atendidas por worker
granian_connections_active, granian_connections_handled, granian_connections_err Contadores de conexiones
granian_py_wait_cumulative Tiempo de espera del bucle de eventos de Python
granian_workers_spawns, granian_workers_respawns_for_err, granian_workers_respawns_for_rss Ciclo de vida de los workers
granian_worker_lifetime Segundos desde que arrancó cada worker

Vincúlalo a una interfaz privada: el listener de métricas usa HOST.