進到 py 檔案所屬目錄的指令行
main:main.py 檔案(一個 Python「子產品」)
app:在 main.py 檔案中通過 app = FastAPI() 建立的對象
--reload:讓伺服器在更新代碼後自動重新啟動,僅在開發時使用該選項

我這裡截圖的名字換了哈
FastAPi 使用 API 的 OpenAPI 标準為所有 API 生成 schema
是對事物的一種定義或描述
它并非具體的實作代碼,而隻是抽象的描述
後面會詳說
OpenAPI 是一種規定如何定義 API Schema 的規範
定義的 OpenAPI Schema 将包括 API 路徑,以及它們可能使用的參數等等
比如:這個 API 的作用是什麼,需要必傳哪些參數,請求方法是什麼
指的是某些資料比如 JSON 的結構
它可以表示 JSON 的屬性及其具有的資料類型
比如:某個屬性的資料類型是什麼,有沒有預設值,是不是必填,作用是什麼
OpenAPI 會為 API 定義 API Schema,一般會包括 API 發送和接收的資料的定義,比如:發送的資料的類型、是否必填
這些定義會以 JSON資料格式展示出來,是以都會稱為 JSON Schema
原始的 OpenAPI Schema,其實它隻是一個自動生成的包含了所有 API 描述的 JSON 資料結構
将上面最簡單的栗子代碼進行拆開詳解
FastAPI 是一個為 API 提供了所有功能的 Python 類,必寫就對了
FastAPI 是直接從 Starlette繼承的類,可以通過 FastAPI 使用所有的 Starlette 的功能
app 就是 FastAPI 類的一個執行個體對象啦
重點:app 将是建立所有 API 的主要互動對象
要點:uvicorn 執行指令時也會用到 app
指的是 URL 中從第一個 <code>/</code> 起的後半部分,即常說的 path
比如:https://example.com/items/foo 的路徑就是/items/foo
路徑也稱為:端點、路由
就是 HTTP 請求方法
POST
GET
PUT
DELETE
OPTIONS
HEAD
PATCH
TRACE
在 HTTP 協定中,可以使用以上的其中一種(或多種)「方法」與每個路徑進行通信
通常使用:
POST:建立資料
GET:讀取資料
PUT:更新資料
DELETE:删除資料
有兩點含義
請求路徑為 /
使用 get 請求
其他請求方法的裝飾器
@app.post()
@app.put()
@app.delete()
@app.options()
@app.head()
@app.patch()
@app.trace()
這就是一個普通的 Python 函數
每當 FastAPI 接收一個使用 <code>GET</code> 方法通路路徑為 / 的請求時這個函數會被調用
在這個例子中,它是一個 async 函數(異步處理函數,後面會細說)
可以傳回一個 dict、list,也可以是 str、int 單個值
還可以傳回 Pydantic 模型(後面詳解)
還可以是其他會自動轉換為 JSON 的對象和模型(包括 ORM 對象等)
編寫一個最簡單的 FastAPI 應用程式五部曲
導入 FastAPI
建立一個 app 執行個體
編寫一個路徑操作裝飾器,如 @app.get("/")
編寫一個路徑操作函數,如 def root(): ...
運作開發伺服器,如 uvicorn main:app --reload