1. 返回带有自定义响应头的 JSON 响应:
from fastapi import FastAPI, HTTPException
from fastapi.responses import JSONResponse
app = FastAPI()
@app.get("/items/")
async def read_items():
content = {"message": "Read all items"}
headers = {"X-Custom-Header": "value"}
return JSONResponse(content=content, headers=headers)
在这个例子中,我们使用 JSONResponse 返回 JSON 响应,并使用 headers 参数来指定自定义的响应头。
2. 返回带有响应头的 HTML 响应:
from fastapi import FastAPI
from fastapi.responses import HTMLResponse
app = FastAPI()
@app.get("/items/", response_class=HTMLResponse)
async def read_items():
content = "<html><body><h1>Read all items</h1></body></html>"
headers = {"X-Custom-Header": "value"}
return HTMLResponse(content=content, headers=headers)
在这个例子中,我们使用 HTMLResponse 返回 HTML 响应,并使用 headers 参数来指定自定义的响应头。
3. 使用响应模型和响应头:
from fastapi import FastAPI, HTTPException
from fastapi.responses import JSONResponse
app = FastAPI()
class ItemResponseModel:
message: str
additional_info: str
@app.get("/items/", response_model=ItemResponseModel)
async def read_items():
content = {"message": "Read all items", "additional_info": "Some additional info"}
headers = {"X-Custom-Header": "value"}
return JSONResponse(content=content, headers=headers)
在这个例子中,我们使用了一个响应模型 ItemResponseModel,并且在路径操作中通过返回 JSONResponse 设置了响应头。
这些示例演示了在 FastAPI 中如何返回带有响应头的响应。你可以根据实际需求使用这些参数来自定义响应。
转载请注明出处:http://www.pingtaimeng.com/article/detail/7411/FastAPI