Files
LibraryAPI/library_service/middlewares/not_found_handler.py
T

25 lines
790 B
Python

from fastapi import Request, Response, status, HTTPException
from fastapi.responses import JSONResponse
from library_service.settings import get_app
from library_service.routers.misc import unknown
async def not_found_handler(request: Request, exc: HTTPException):
"""Middleware для обработки 404 ошибки"""
if exc.detail == "Not Found":
path = request.url.path
if path.startswith("/api/"):
return JSONResponse(
status_code=status.HTTP_404_NOT_FOUND,
content={"detail": "API endpoint not found", "path": path},
)
app = get_app()
return await unknown(request, app)
return JSONResponse(
status_code=exc.status_code,
content={"detail": exc.detail},
)