FastAPI header参数
为了读取作为客户端请求一部分的 HTTP头的 值,从FastAPI库中导入Header对象,并在操作函数定义中声明一个Header类型的参数。参数的名称应该与用 camel_case 转换的HTTP头相匹配 。
在下面的例子中,要检索的是 “accept-language “头。由于Python不允许在标识符的名称中使用”-“(破折号),所以用”_”(下划线)代替。
from typing import Optional
from fastapi import FastAPI, Header
app = FastAPI()
@app.get("/headers/")
async def read_header(accept_language: Optional[str] = Header(None)):
return {"Accept-Language": accept_language}
正如下面的Swagger文档所示,检索到的标头被显示为响应体。
你可以在响应对象中推送自定义和预定义的头信息。 操作函数应该有一个 响应 类型的参数。为了设置一个自定义的头信息,它的名字应该以 “ X “ 为前缀 。 在下面的例子中,一个名为 “X-Web-Framework “的自定义头和一个预定义头 “Content-Language “被添加到操作函数的响应中。
from fastapi import FastAPI
from fastapi.responses import JSONResponse
app = FastAPI()
@app.get("/rspheader/")
def set_rsp_headers():
content = {"message": "Hello World"}
headers = {"X-Web-Framework": "FastAPI", "Content-Language": "en-US"}
return JSONResponse(content=content, headers=headers)
新添加的标头将出现在文档的响应标头部分。