關於FastAPI這個框架為什麼有什麼樣的優勢, 為什麼會這麼熱門? 歡迎參考「【Python 技術選型】如何選出適合的API框架呢?」。
FastAPI主要基於以下兩個重要的元件組成, Starlette與Pydantic, 就讓我們來看看兩者的關係吧!
pip install fastapi
# 安裝ASGI伺服器
pip install "uvicorn[standard]"
import uvicorn
from fastapi import FastAPI
# 建立進入點
app = FastAPI()
# 定義API
@app.get('/')
def hello_world():
return 'Hello World'
# users的API
@app.get('/users/{user_id}')
def get_users(user_id: int, qry: str = None):
return {'user_id': user_id, 'query': qry}
uvicorn.run(app, host='0.0.0.0', port=8000)
啟動服務
python test.py
接著我嘗試用curl來存取API。
curl <http://127.0.0.1:8000>
# "Hello World"
curl <http://127.0.0.1:10242/users/1\\?qry\\=10>
# {"user_id":1,"query":"10"}%
前往: http://127.0.0.1:8000/docs
我們可以看到互動式文件會自動進行渲染, 如此一來便結合註解與程式碼就能夠自動產生文檔, 減少溝通成本了。
簡單的幾個步驟我們就能夠完整的架設起一隻API, 這就是FastAPI的厲害之處, 果然非常快速啊! 而且互動式文檔讓我們與前端的溝通上更加順利, 除此之外透過裝飾器也大幅度的提升可讀性, 非常適合入門使用!