Rumah > pembangunan bahagian belakang > Tutorial Python > 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
Lepaskan: 2024-10-21 06:28:30
asal
854 orang telah melayarinya

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>
Salin selepas log masuk
  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>
Salin selepas log masuk

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!

sumber:php
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan