什麼是 Header Parameters?
Header Parameters 是 HTTP 請求標頭區塊中夾帶的鍵值對,常用來傳遞認證憑證、語言偏好,或自訂的業務識別資訊。
Header 基礎語法
- 從 fastapi 匯入 Header,搭配 Annotated 宣告參數型別;未設預設值的參數為必填,預設值設為 None 則為選填
- HTTP Header 名稱慣用連字符(-),但 Python 變數名稱不允許使用連字符,因此 FastAPI 會自動將 Python 參數名中的底線(_)轉換為連字符(-)去比對 HTTP Header,例如參數 accept_language 會對應到 Accept-Language 標頭
- 若同一個 Header 可能出現多次(例如 X-Token: a 與 X-Token: b),可將型別宣告為 list[str] 接收所有值
- FastAPI 對 Header 名稱大小寫不敏感,User-Agent 與 user-agent 都能被正確讀取
from fastapi import FastAPI, Header
from typing import Annotated
app = FastAPI()
@app.get("/items/")
async def read_items(
user_agent: Annotated[str | None, Header()] = None,
accept_language: Annotated[str | None, Header()] = None,
x_token: Annotated[list[str] | None, Header()] = None,
):
return {
"User-Agent": user_agent,
"Accept-Language": accept_language,
"X-Token values": x_token,
}

















