CiteScan / src /api /routes /health.py
aivolcano
FastAPI + Gradio + src
3d83b62
"""Health check and system routes."""
from fastapi import APIRouter
from src.api.schemas import HealthResponse, StatsResponse
from src.api.dependencies import CacheManagerDep
from src.core.config import settings
from src.core.logging import get_logger
logger = get_logger(__name__)
router = APIRouter(prefix="/api/v1", tags=["system"])
@router.get(
"/health",
response_model=HealthResponse,
summary="Health check",
description="Check if the service is running and healthy",
)
async def health_check() -> HealthResponse:
"""Health check endpoint.
Returns:
Health status
"""
return HealthResponse(
status="healthy",
version=settings.app_version,
environment=settings.environment,
)
@router.get(
"/stats",
response_model=StatsResponse,
summary="Get statistics",
description="Get system statistics including cache information",
)
async def get_stats(cache: CacheManagerDep) -> StatsResponse:
"""Get system statistics.
Args:
cache: Cache manager instance
Returns:
System statistics
"""
cache_stats = cache.get_stats()
return StatsResponse(
cache_enabled=cache_stats["enabled"],
cache_size=cache_stats["size"],
cache_max_size=cache_stats["max_size"],
cache_ttl=cache_stats["ttl"],
)