Initial commit: svg backend
This commit is contained in:
49
backend/app/main.py
Normal file
49
backend/app/main.py
Normal file
@@ -0,0 +1,49 @@
|
||||
from fastapi import FastAPI, Request
|
||||
from fastapi.exceptions import RequestValidationError
|
||||
from fastapi.responses import JSONResponse
|
||||
|
||||
from app.api.routes import router
|
||||
from app.core.config import settings
|
||||
|
||||
|
||||
app = FastAPI(
|
||||
title=settings.app_name,
|
||||
version="1.0.0",
|
||||
)
|
||||
|
||||
|
||||
@app.exception_handler(RequestValidationError)
|
||||
async def validation_exception_handler(request: Request, exc: RequestValidationError):
|
||||
errors: list[dict[str, str]] = []
|
||||
|
||||
for item in exc.errors():
|
||||
loc = [str(part) for part in item.get("loc", []) if part not in ("body", "query", "path")]
|
||||
field = ".".join(loc) if loc else "request"
|
||||
message = item.get("msg", "Ошибка валидации")
|
||||
message = message.replace("Value error, ", "")
|
||||
message = message.replace("Value error,", "")
|
||||
errors.append({"field": field, "message": message})
|
||||
|
||||
detail = errors[0]["message"] if errors else "Ошибка валидации запроса"
|
||||
|
||||
return JSONResponse(
|
||||
status_code=422,
|
||||
content={
|
||||
"detail": detail,
|
||||
"errors": errors,
|
||||
},
|
||||
)
|
||||
|
||||
|
||||
@app.get("/")
|
||||
async def root():
|
||||
return {
|
||||
"service": settings.app_name,
|
||||
"env": settings.app_env,
|
||||
"status": "ok",
|
||||
"port": settings.app_port,
|
||||
"api_prefix": settings.api_v1_prefix,
|
||||
}
|
||||
|
||||
|
||||
app.include_router(router)
|
||||
Reference in New Issue
Block a user