Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menyesuaikan Respons Ralat untuk Permintaan JSON Tidak Sah dalam FastAPI?

Bagaimana untuk Menyesuaikan Respons Ralat untuk Permintaan JSON Tidak Sah dalam FastAPI?

Susan Sarandon
Susan Sarandonasal
2024-10-21 06:28:30736semak imbas

How to Customize Error Responses for Invalid JSON Requests in FastAPI?

Menyesuaikan Pengendalian Ralat dalam FastAPI

Soalan:

Apabila menghantar permintaan JSON yang tidak sah ke bahagian belakang FastAPI, ralat dilemparkan dengan kod status entiti yang tidak boleh diproses (422). Respons termasuk butiran ralat verbose yang tidak sesuai untuk pengendalian ralat mesra pengguna. Adakah terdapat cara untuk menyesuaikan respons ralat?

Jawapan:

Untuk mengendalikan situasi ini dan menyesuaikan respons ralat, anda boleh mengatasi pengendali pengecualian pengesahan permintaan dalam FastAPI . Begini cara untuk melaksanakannya:

Pertama, ingat bahawa anda menghantar JSON yang tidak sah, dan oleh itu, pelayan bertindak balas dengan betul dengan ralat 422 Entiti Tidak Boleh Diproses.

Mengatasi Pengendali Pengecualian :

  1. Dalam aplikasi FastAPI anda, tambahkan kod berikut untuk mengatasi pengendali pengecualian lalai untuk RequestValidationError:
<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>
  1. Dalam kod di atas , anda boleh menyesuaikan mesej ralat dengan mengubah suai nilai "mesej tersuai".

Mengembalikan PlainTextResponse:

Sebagai alternatif, anda juga boleh mengembalikan tersuai mesej ralat menggunakan PlainTextResponse:

<code class="python">@app.exception_handler(RequestValidationError)
async def validation_exception_handler(request, exc):
    return PlainTextResponse(str(exc), status_code=422)</code>

Atas ialah kandungan terperinci Bagaimana untuk Menyesuaikan Respons Ralat untuk Permintaan JSON Tidak Sah dalam FastAPI?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn