FASTAPI系列 18-设置响应参数头部
前言
可以在_路径操作函数_中声明一个Response类型的参数。
一、设置响应头部装饰器
在这个_临时_响应对象中设置头部
from fastapi import FastAPI, Response
app = FastAPI()
def add_custom_header(response: Response):
response.headers["X-Custom-Header"] = "custom_value"
return response
@app.get("/some-endpoint")
@add_custom_header
async def some_endpoint():
return {"message": "Hello, world!"}
这里,我们定义了一个名为add_custom_header的装饰器函数,它接受一个Response对象作为参数,设置自定义头部后返回。然后,我们在some_endpoint路由处理函数上应用此装饰器。
二、直接返回头部
可以在直接返回Response时添加头部
from fastapi import FastAPI
from fastapi.responses import JSONResponse
app = FastAPI()
@app.get("/headers/")
def get_headers():
content = {"message": "Hello World"}
headers = {"X-Custom-Header": "custom_value", "Content-Language": "en-US"}
return JSONResponse(content=content, headers=headers)
你也可以使用from starlette.responses import Response或from starlette.responses import JSONResponse。
FastAPI提供了与fastapi.responses相同的starlette.responses,只是为了方便开发者。
总结
大多数可用的响应都直接来自Starlette。由于Response经常用于设置头部和cookies,因此FastAPI还在fastapi.Response中提供了它。