Dalam FastAPI, apabila permintaan tidak sah ditemui, ia biasanya bertindak balas dengan ralat 422 Entiti Tidak Dapat Diproses. Respons ini mungkin tidak sentiasa sejajar dengan pengalaman pengguna yang diingini. Berikut ialah cara untuk menyesuaikan respons ralat agar sesuai dengan keperluan khusus aplikasi anda.
Respons ralat lalai termasuk butiran seperti "Data tambahan" dan data "Sebenar". Untuk menyesuaikan respons ini, FastAPI menyediakan keupayaan untuk mengatasi pengendali pengecualian pengesahan permintaan. Seperti yang ditunjukkan dalam contoh kod di bawah, anda boleh menentukan pengendali tersuai:
<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>
Sebagai alternatif, anda boleh mengembalikan PlainTextResponse dengan mesej ralat tersuai:
<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>
Pilihan penyesuaian ini membenarkan anda untuk mengendalikan respons ralat dengan anggun dan memberikan pengalaman yang mesra pengguna walaupun apabila menghadapi permintaan yang tidak sah.
Atas ialah kandungan terperinci Cara Menyesuaikan Respons Ralat untuk FastAPI. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!