Refactor response handling and health check endpoints
- Enhance response model with additional fields and validation - Update health and server router implementations - Improve frontend type definitions and API integration - Clean up documentation Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
@@ -10,11 +10,12 @@ from fastapi import APIRouter, status
|
||||
from fastapi.responses import JSONResponse
|
||||
|
||||
from app.dependencies import ServerStatusDep
|
||||
from app.models.response import HealthResponse
|
||||
|
||||
router: APIRouter = APIRouter(prefix="/api/v1/health", tags=["Health"])
|
||||
|
||||
|
||||
@router.get("", summary="Application health check")
|
||||
@router.get("", summary="Application health check", response_model=HealthResponse)
|
||||
async def health_check(server_status: ServerStatusDep) -> JSONResponse:
|
||||
"""Return application and fail2ban status.
|
||||
|
||||
@@ -27,17 +28,16 @@ async def health_check(server_status: ServerStatusDep) -> JSONResponse:
|
||||
server_status: Injected cached server status snapshot.
|
||||
|
||||
Returns:
|
||||
HTTP 200 with ``{"status": "ok", "fail2ban": "online"}`` if healthy,
|
||||
or HTTP 503 with ``{"status": "unavailable", "fail2ban": "offline"}``
|
||||
if fail2ban is unreachable.
|
||||
HTTP 200 with :class:`~app.models.response.HealthResponse` when healthy,
|
||||
HTTP 503 with :class:`~app.models.response.HealthResponse` when fail2ban is offline.
|
||||
"""
|
||||
if not server_status.online:
|
||||
return JSONResponse(
|
||||
status_code=status.HTTP_503_SERVICE_UNAVAILABLE,
|
||||
content={"status": "unavailable", "fail2ban": "offline"},
|
||||
content=HealthResponse(status="unavailable", fail2ban="offline").model_dump(),
|
||||
)
|
||||
|
||||
return JSONResponse(
|
||||
status_code=status.HTTP_200_OK,
|
||||
content={"status": "ok", "fail2ban": "online"},
|
||||
content=HealthResponse(status="ok", fail2ban="online").model_dump(),
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user