FastAPI에서 잘못된 요청이 발생하면 일반적으로 422 처리할 수 없는 엔터티 오류로 응답합니다. 이 응답은 항상 원하는 사용자 경험과 일치하지 않을 수 있습니다. 애플리케이션의 특정 요구 사항에 맞게 오류 응답을 사용자 정의하는 방법은 다음과 같습니다.
기본 오류 응답에는 "추가 데이터" 및 "실제" 데이터와 같은 세부 정보가 포함됩니다. 이 응답을 맞춤화하기 위해 FastAPI는 요청 유효성 검사 예외 처리기를 재정의하는 기능을 제공합니다. 아래 코드 예제에서 볼 수 있듯이 사용자 정의 핸들러를 정의할 수 있습니다.
<code class="python">from fastapi import FastAPI, Body, Request, status from fastapi.encoders import jsonable_encoder from fastapi.exceptions import RequestValidationError from fastapi.responses import JSONResponse from pydantic import BaseModel app = FastAPI() @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를 반환할 수 있습니다.
<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에 대한 오류 응답을 사용자 정의하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!