在 FastAPI 中,端點可能需要特定的標頭。當客戶端請求中缺少此 Header 時,伺服器將傳回錯誤代碼 422 Unprocessable Entity。但是,在某些情況下,可能需要將此錯誤回應自訂為 401 Unauthorized。
選項1:具有自訂錯誤處理的可選標頭
使用Header(None) 表示Header 是可選的。在函數體內,檢查 None 並在 Header 不存在時引發 401 Unauthorized 錯誤。
選項 2:覆蓋異常處理程序
覆蓋 RequestValidationError 異常處理程序。檢查錯誤是否與自訂標頭相關,並相應地傳回自訂錯誤回應(例如 401 Unauthorized)。
選項 3:具有自訂異常處理的子應用程式
建立一個子應用程式並將其掛載到主應用程式。覆蓋子應用程式中 RequestValidationError 的異常處理程序,僅處理該子應用程式中的路由錯誤。
選項 4:具有自訂 APIRoute 類別的 APIRouter
使用用於處理異常處理的自訂 APIRoute 類別。在此類中,定義一個自訂路由處理程序,用於捕獲 RequestValidationError 並傳回自訂錯誤回應。
以上是如何自訂 FastAPI 的 422 錯誤回應到 401 遺失標頭?的詳細內容。更多資訊請關注PHP中文網其他相關文章!