头部参数和Query,Path和Cookie一样。
eg:
from fastapi import FastAPI, Header
app = FastAPI()
@app.get("/items/")
async def read_items(*, user_agent: str = Header(None)):
return {"User-Agent": user_agent}
Header有一些额外的方法。
所有的标准头部都是用(-)中横线符号。但是在python中这个符号不可用
所以Header将自动将中横线转(-)换为下划线(_).
如果你不想让它自动转换,可以添加convert_underscores=False
...
async def read_items(*, strange_header: str = Header(None, convert_underscores=False)):
...
重复的headers
有可能在使用中接收多个头部值,你可以在定义的时候使用list。
你将会接收所有的值作为python list
from typing import List
from fastapi import FastAPI, Header
app = FastAPI()
@app.get("/items/")
async def read_items(x_token: List[str] = Header(None)):
return {"X-Token values": x_token}