Dalam FastAPI, titik akhir boleh memerlukan Pengepala tertentu. Apabila Pengepala ini tiada dalam permintaan klien, pelayan mengembalikan kod ralat 422 Entiti Tidak Boleh Diproses. Walau bagaimanapun, dalam sesetengah senario, adalah wajar untuk menyesuaikan respons ralat ini kepada 401 Tanpa Kebenaran.
Pilihan 1: Pengepala Pilihan dengan Pengendalian Ralat Tersuai
Gunakan Pengepala(Tiada) untuk menunjukkan bahawa Pengepala adalah pilihan. Dalam badan fungsi, tandai Tiada dan timbulkan ralat 401 Tanpa Kebenaran jika Pengepala tidak ada.
Pilihan 2: Gantikan Pengendali Pengecualian
Timpa pengendali pengecualian RequestValidationError . Semak sama ada ralat itu berkaitan dengan Pengepala tersuai dan kembalikan respons ralat tersuai (cth., 401 Tanpa Kebenaran) dengan sewajarnya.
Pilihan 3: Sub-Aplikasi dengan Pengendalian Pengecualian Tersuai
Buat sub-aplikasi dan lekapkannya ke apl utama. Gantikan pengendali pengecualian untuk RequestValidationError dalam subaplikasi untuk mengendalikan ralat bagi laluan dalam subaplikasi itu sahaja.
Pilihan 4: APIRouter dengan Kelas APIRoute Tersuai
Gunakan kelas APIRoute tersuai untuk mengendalikan pengendalian pengecualian. Dalam kelas ini, tentukan pengendali laluan tersuai yang menangkap RequestValidationError dan mengembalikan respons ralat tersuai.
Atas ialah kandungan terperinci Bagaimana untuk Menyesuaikan Respons Ralat 422 FastAPI kepada 401 untuk Pengepala Hilang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!