FastAPI でのエラー処理のカスタマイズ
質問:
無効な JSON リクエストを送信する場合FastAPI バックエンドの場合、処理できないエンティティ ステータス コード (422) でエラーがスローされます。応答には詳細なエラーの詳細が含まれており、ユーザーフレンドリーなエラー処理には理想的ではありません。エラー応答をカスタマイズする方法はありますか?
回答:
この状況に対処し、エラー応答をカスタマイズするには、FastAPI でリクエスト検証例外ハンドラーをオーバーライドできます。 。実装方法は次のとおりです。
まず、無効な JSON を渡しているため、サーバーは 422 Unprocessable Entity エラーで正しく応答することに注意してください。
例外ハンドラーのオーバーライド:
<code class="python">@app.exception_handler(RequestValidationError) async def validation_exception_handler(request: Request, exc: RequestValidationError): return JSONResponse( status_code=status.HTTP_422_UNPROCESSABLE_ENTITY, content=jsonable_encoder({ "detail": exc.errors(), # optionally include the errors "body": exc.body, "custom msg": {"Your error message"} }), )</code>
PlainTextResponse を返す:
あるいは、カスタム メッセージを返すこともできます。 PlainTextResponse を使用したエラー メッセージ:
<code class="python">@app.exception_handler(RequestValidationError) async def validation_exception_handler(request, exc): return PlainTextResponse(str(exc), status_code=422)</code>
以上がFastAPI で無効な JSON リクエストに対するエラー応答をカスタマイズするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。