Maison >développement back-end >Tutoriel Python >Comment personnaliser les réponses aux erreurs de validation dans FastAPI ?
Personnalisation des réponses d'erreur dans FastAPI
Lors de la réception de requêtes contenant des données non valides ou inattendues, il est souvent souhaitable de renvoyer une réponse d'erreur personnalisée plutôt que la réponse FastAPI par défaut. Ce guide explique comment gérer et personnaliser les réponses d'erreur dans FastAPI.
Plus précisément, le problème décrit concerne la réception de données supplémentaires dans un corps de requête, ce qui entraîne une erreur 422 Unprocessable Entity avec des détails d'erreur par défaut. L'objectif est de gérer cette erreur avec élégance et de renvoyer une réponse personnalisée, telle que :
<code class="json">{ "error": { "message": "Invalid JSON body" }, "status": 0 }</code>
Pour personnaliser les réponses d'erreur, FastAPI permet de remplacer le gestionnaire d'exceptions pour les erreurs de validation. Les étapes suivantes expliquent comment y parvenir :
Importer les bibliothèques nécessaires :
from fastapi import FastAPI, Body, Request, status from fastapi.exceptions import RequestValidationError from fastapi.responses import JSONResponse
Définir un gestionnaire d'exceptions personnalisé :
@app.exception_handler(RequestValidationError) async def validation_exception_handler(request: Request, exc: RequestValidationError): return JSONResponse( status_code=status.HTTP_422_UNPROCESSABLE_ENTITY, content={ "detail": exc.errors(), # optionally include the errors "body": exc.body, "custom msg": "Your error message" } )
Enregistrez le gestionnaire personnalisé auprès de l'application FastAPI :
app = FastAPI()
Alternative Gestionnaire :
Alternativement, une PlainTextResponse peut être utilisée pour renvoyer un message simple :
<code class="python">from fastapi.responses import PlainTextResponse @app.exception_handler(RequestValidationError) async def validation_exception_handler(request, exc): return PlainTextResponse(str(exc), status_code=422)</code>
En suivant ces étapes, vous pouvez gérer les erreurs de validation avec élégance et personnaliser les réponses d'erreur renvoyées. par votre application FastAPI.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!