FastAPI学习-18.Response 返回 XML 格式

发布时间 2023-09-17 11:02:34作者: 上海-悠悠

前言

假设你想要返回一个 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 中的额外响应 给响应编写文档。