前言
假设你想要返回一个 XML 响应。
你可以把你的 XML 内容放到一个字符串中,放到一个 Response
中,然后返回。
Response 自定义返回
可以把 XML 内容放到一个字符串中,放到一个 Response
中,设置media_type="application/xml"
from fastapi import FastAPI, Response
app = FastAPI()
@app.get("/xml/")
def get_legacy_data():
data = """<?xml version="1.0"?>
<shampoo>
<Header>
Apply shampoo here.
</Header>
<Body>
You'll have to use soap here.
</Body>
</shampoo>
"""
return Response(content=data, media_type="application/xml")
Response
类接受如下参数:
content
- 一个str
或者bytes
。status_code
- 一个int
类型的 HTTP 状态码。headers
- 一个由字符串组成的dict
。media_type
- 一个给出媒体类型的str
,比如"text/html"
。
说明
当你直接返回 Response
时,它的数据既没有校验,又不会进行转换(序列化),也不会自动生成文档。
但是你仍可以参考 OpenApI 中的额外响应 给响应编写文档。