前言
FastAPI 是一個用於構建 API 的現代、快速(高性能)的 web 框架,使用 Python 3.6+ 並基於標准的 Python 類型提示。
FastAPI 簡介
FastAPI 關鍵特性:
- 快速:可與 NodeJS 和 Go 比肩的極高性能(歸功於 Starlette 和 Pydantic)。最快的 Python web 框架之一。
- 高效編碼:提高功能開發速度約 200% 至 300%。*
- 更少 bug:減少約 40% 的人為(開發者)導致錯誤。*
- 智能:極佳的編輯器支持。處處皆可自動補全,減少調試時間。
- 簡單:設計的易於使用和學習,閱讀文檔的時間更短。
- 簡短:使代碼重復最小化。通過不同的參數聲明實現豐富功能。bug 更少。
- 健壯:生產可用級別的代碼。還有自動生成的交互式文檔。
- 標准化:基於(並完全兼容)API 的相關開放標准:OpenAPI (以前被稱為 Swagger) 和 JSON Schema。
環境准備
只需 pip 就能安裝 fastapi 了
pip install fastapi
還需安裝uvicorn
,用作運行代碼的服務器
pip install uvicorn[standard]
也可以一次性安裝fastapi和相關依賴
pip install fastapi[all]
創建項目
在 pycharm 創建一個學習項目,默認用的虛擬環境
打開 Terminal 使用 pip 安裝依賴包
實現第一個 hello world請求
寫一個簡單的get請求,訪問/
根路徑,返回{"message": "Hello World"}
以下代碼保存到main.py
文件
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def root():
return {"message": "Hello World"}
接下來用命令行啟動服務
uvicorn main:app --reload
啟動服務日志內容
(venv) D:\xuexi\apidemo>uvicorn main:app --reload
?[32mINFO?[0m: Will watch for changes in these directories: ['D:\\xuexi\\apide
mo']
?[32mINFO?[0m: Uvicorn running on ?[1mhttp://127.0.0.1:8000?[0m (Press CTRL+C
to quit)
?[32mINFO?[0m: Started reloader process [?[36m?[1m16552?[0m] using ?[36m?[1mwa
tchgod?[0m
?[32mINFO?[0m: Started server process [?[36m18548?[0m]
?[32mINFO?[0m: Waiting for application startup.
?[32mINFO?[0m: Application startup complete.
uvicorn main:app
命令含義如下:
main
:main.py 文件(一個 Python「模塊」)。app
:在 main.py 文件中通過 app = FastAPI() 創建的對象。--reload
:讓服務器在更新代碼后重新啟動。僅在開發時使用該選項。
打開瀏覽器訪問http://127.0.0.1:8000
看到返回{"message":"Hello World"}
說明第一個接口調試成功
交互式API文檔
瀏覽器訪問 http://127.0.0.1:8000/docs,會看到自動生成的 Swagger 接口文檔
展開詳情內容