2025-05-16 00:42:00 +00:00

37 lines
984 B
Python

import platform
import sys
from fastapi import APIRouter, Depends
from sqlalchemy.orm import Session
from api.schemas.health import HealthResponse
from db.database import get_db
router = APIRouter()
@router.get("/health", response_model=HealthResponse)
def health_check(db: Session = Depends(get_db)):
"""
Health check endpoint that verifies the API is running correctly
and can connect to the database
"""
# Verify database connection
try:
# Just run a simple query to verify DB connection
db.execute("SELECT 1")
db_status = "healthy"
except (RuntimeError, ConnectionError) as e:
# Catch specific exceptions rather than a broad Exception
db_status = f"unhealthy: {str(e)}"
return HealthResponse(
status="healthy",
version="0.1.0",
details={
"database": db_status,
"python_version": sys.version,
"platform": platform.platform(),
},
)