Fastapi 简明教程

FastAPI - Header Parameters

为了读取作为客户端请求一部分的 HTTP header 的值,请从 FastAPI 库中导入 Header 对象,并在操作函数定义中声明一个 Header 类型参数。参数的名称应与在 camel_case 中转换的 HTTP 头部相匹配。

在以下示例中,需要检索“接受语言”头部。由于 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 文档显示,检索到的头部显示为响应正文。

header1

你可以在响应对象中推送自定义头部以及预定义头部。 T*he operation function should have a parameter of *Response 类型。为了设置自定义头部,其名称应以 "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)

新添加的头部将显示在文档的响应头部部分。

header2