已發布·持續改進
Framework · 2018 年發布
FastAPI 是一個高效能的 Python Web API 框架,依據型別提示自動完成請求驗證、序列化與 API 文件產生。
FastAPI 是以 Python 建構 Web API 的現代框架,由 Sebastián Ramírez 於 2018 年首次發布,目前以開源方式由龐大的社群共同開發。它的 Web 層建立在 Starlette 之上,資料驗證則使用 Pydantic,只要在函式參數上寫好型別提示,就能自動完成請求資料的轉換與驗證、回應的序列化,並產生 API 的 OpenAPI 描述。
FastAPI 特別適合重視輸入驗證與文件的情境,例如 REST 後端、微服務、機器學習模型服務與內部工具。由於執行在 ASGI 之上,async 端點能有效率地處理大量並行連線,一般的 def 函式也照樣可用。相依性注入系統讓你能把資料庫工作階段、身分驗證與設定等共用邏輯清楚地拆分出來,並在測試時輕鬆替換。
入門時,建議先建立虛擬環境,以 pip install "fastapi[standard]" 安裝,執行 fastapi dev main.py,再開啟 /docs,從互動式文件直接呼叫端點。官方的「Tutorial - User Guide」從路徑參數一路介紹到安全性、資料庫與測試,依序閱讀即可循序漸進。熟悉 Python 型別提示與 Pydantic 模型之後,FastAPI 的大部分內容都會變得很自然。
只要宣告參數型別與 Pydantic 模型,就能轉換並驗證請求資料,遇到無效輸入時會自動回傳詳細的錯誤訊息。
依據程式碼產生 OpenAPI 結構描述,並在 /docs(Swagger UI)與 /redoc 提供互動式文件。
以 Depends 宣告資料庫工作階段、身分驗證或共用參數,FastAPI 會在每次請求時自動解析,測試時也能輕鬆替換。
建立在 Starlette 與 ASGI 之上,async def 端點能有效率地處理大量並行連線,也能與一般 def 函式混用。
在專案資料夾中建立並啟用 Python 虛擬環境。下方指令適用於 macOS 與 Linux;在 Windows 上請以 .venv\Scripts\activate 啟用。
python -m venv .venv && source .venv/bin/activate安裝含 standard 擴充的 FastAPI,會一併安裝開發伺服器 Uvicorn 與 fastapi 命令列工具等常用相依套件。
pip install "fastapi[standard]"建立 main.py 後啟動開發伺服器。修改程式碼時會自動重新載入,在瀏覽器開啟 http://127.0.0.1:8000/docs 即可查看互動式 API 文件。
fastapi dev main.pyFastAPI() 建立應用程式物件,@app.get 裝飾器把路徑與 HTTP 方法綁定到函式上,函式回傳的字典會轉成 JSON 回應。在第二個端點中,item_id: int 會把路徑中的值轉換並驗證為整數,而帶有預設值的 q 則成為選用的查詢參數。執行 fastapi dev main.py 後,就能在 /docs 中直接呼叫這兩個端點。
main.py
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"message": "Hello, world!"}
@app.get("/items/{item_id}")
def read_item(item_id: int, q: str | None = None):
return {"item_id": item_id, "q": q}
pip install "fastapi[standard]"
fastapi dev main.py共六章,帶你從安裝一步步認識 FastAPI 的核心概念。
在這裡提問、分享經驗,交流關於 FastAPI 的看法。
還沒有討論。來發起第一則吧。
0 則留言
登入 · 登入後即可留言。
來留下第一則留言吧。