>  기사  >  백엔드 개발  >  FastAPI에 대한 오류 응답을 사용자 정의하는 방법

FastAPI에 대한 오류 응답을 사용자 정의하는 방법

Susan Sarandon
Susan Sarandon원래의
2024-10-21 06:25:30627검색

How to Customize Error Responses for FastAPI

FastAPI의 오류 응답 사용자 정의

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.