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 :
<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>
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!