44 lines
1.2 KiB
Python
44 lines
1.2 KiB
Python
"""
|
|
健康检查路由
|
|
"""
|
|
from fastapi import APIRouter, Depends
|
|
from app.core.config import get_settings
|
|
from app.api.dependencies import get_db
|
|
|
|
router = APIRouter()
|
|
|
|
@router.get("/", summary="健康检查")
|
|
async def health_check(db = Depends(get_db)):
|
|
"""健康检查端点"""
|
|
settings = get_settings()
|
|
|
|
return {
|
|
"status": "healthy",
|
|
"service": settings.app_name,
|
|
"version": settings.app_version,
|
|
"environment": settings.env,
|
|
"timestamp": "now" # 实际使用中可以用 datetime.now()
|
|
}
|
|
|
|
@router.get("/ready", summary="就绪检查")
|
|
async def readiness_check():
|
|
"""就绪检查端点"""
|
|
return {
|
|
"status": "ready",
|
|
"database": "connected",
|
|
"api": "available"
|
|
}
|
|
|
|
@router.get("/info", summary="服务信息")
|
|
async def service_info():
|
|
"""服务信息端点"""
|
|
settings = get_settings()
|
|
|
|
return {
|
|
"name": settings.app_name,
|
|
"version": settings.app_version,
|
|
"description": settings.description,
|
|
"environment": settings.env,
|
|
"debug": settings.debug,
|
|
"database": settings.database_url.split("://")[0] if "://" in settings.database_url else "unknown"
|
|
} |