如何建立可以接受 Form 或 JSON 正文的 FastAPI 端點?
選項1:使用依賴函數
此方法涉及建立一個依賴函數,該函數檢查Content-Type 請求標頭並使用Starlette 的方法對應地解析正文。但是,重要的是要考慮到請求標頭可以修改,並且可能無法總是準確反映資料類型。此外,建議實施類型檢查和驗證,以確保收到預期的資料結構。
選項2:定義可選參數
另一種方法是定義可選參數檔案/表單資料的參數並檢查它們是否有在請求期間傳遞的值。如果所有可選參數均為 None,則可能是 JSON 請求。此選項允許更清晰的端點定義,但驗證 JSON 請求確實有效非常重要。
選項3:中間件和單獨的端點
使用中間件,您可以檢查傳入請求的目的地並根據內容類型將其重定向到特定端點。這種方法可確保乾淨的端點定義,並允許有針對性的錯誤處理和資料解析。
選項4:發送混合JSON 和表單數據(外部)
替代解決方案,其中涉及一起發送JSON 正文和文件或表單數據,在提供的文本中連結的另一個Stack Overflow 答案中進行了討論。此方法涉及以更自訂的方式解析數據,並使用 Pydantic 的模型驗證透過 Form 參數傳遞的 JSON 數據。
使用 Python 請求進行測試
對於測試,您可以使用提供的Python請求程式碼將不同格式的資料傳送到端點。這允許您驗證端點的行為和資料處理能力。
以上是如何建立靈活的 FastAPI 端點:處理表單和 JSON 資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!