FastAPI에서 오류 응답 사용자 정의
유효하지 않거나 예상치 못한 데이터가 포함된 요청을 받을 때, 기본 FastAPI 응답. 이 가이드에서는 FastAPI에서 오류 응답을 처리하고 사용자 정의하는 방법을 다룹니다.
구체적으로 설명된 문제는 요청 본문에서 추가 데이터를 수신하는 것과 관련되어 있으며 이로 인해 기본 오류 세부 정보와 함께 422 처리할 수 없는 엔터티 오류가 발생합니다. 목표는 이 오류를 적절하게 처리하고 다음과 같은 사용자 정의된 응답을 반환하는 것입니다.
<code class="json">{ "error": { "message": "Invalid JSON body" }, "status": 0 }</code>
오류 응답을 사용자 정의하기 위해 FastAPI에서는 유효성 검사 오류에 대한 예외 처리기를 재정의할 수 있습니다. 다음 단계에서는 이를 달성하는 방법을 설명합니다.
필요한 라이브러리 가져오기:
from fastapi import FastAPI, Body, Request, status from fastapi.exceptions import RequestValidationError from fastapi.responses import JSONResponse
정의 사용자 정의 예외 핸들러:
@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" } )
FastAPI 앱에 사용자 정의 핸들러 등록:
app = FastAPI()
대안 처리기:
또는 PlainTextResponse를 사용하여 간단한 메시지를 반환할 수 있습니다.
<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>
이 단계를 수행하면 유효성 검사 오류를 적절하게 처리하고 반환된 오류 응답을 사용자 지정할 수 있습니다. FastAPI 애플리케이션을 이용하세요.
위 내용은 FastAPI의 검증 오류에 대한 오류 응답을 사용자 정의하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!