在FastAPI中,可以使用HTTPException
類來實現API錯誤處理。通過拋出HTTPException
異常,可以返回自定義的HTTP狀態碼和錯誤信息。
示例代碼如下:
from fastapi import FastAPI, HTTPException
app = FastAPI()
@app.get("/items/{item_id}")
def read_item(item_id: int):
if item_id == 0:
raise HTTPException(status_code=404, detail="Item not found")
return {"item_id": item_id}
在上面的例子中,如果傳入的item_id
為0,就會拋出一個404錯誤,返回"Item not found"的錯誤信息。
除了使用HTTPException
類外,還可以通過異常處理器來處理API錯誤。示例代碼如下:
from fastapi import FastAPI, HTTPException
from fastapi.responses import JSONResponse
app = FastAPI()
@app.exception_handler(HTTPException)
async def http_exception_handler(request, exc):
return JSONResponse(
status_code=exc.status_code,
content={"detail": exc.detail}
)
@app.get("/items/{item_id}")
def read_item(item_id: int):
if item_id == 0:
raise HTTPException(status_code=404, detail="Item not found")
return {"item_id": item_id}
在上面的例子中,定義了一個異常處理器http_exception_handler
,用來處理HTTPException
異常。當拋出HTTPException
異常時,會調用http_exception_handler
處理器來返回自定義的錯誤信息。
通過以上兩種方法,可以實現API錯誤處理并返回自定義的錯誤信息。