前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >FastAPI 学习之路(四十一)定制返回Response

FastAPI 学习之路(四十一)定制返回Response

作者头像
雷子
发布2021-09-17 11:25:39
7070
发布2021-09-17 11:25:39
举报
文章被收录于专栏:雷子说测试开发

前言

上一篇我们分享了FastAPI 学习之路(四十)如何打断点调试我们的程序,本次我们看下如何定义返回的Response

正文

我们想要在接口中返回xml格式的内容,我们应该如何实现呢。

代码语言:javascript
复制
from fastapi import FastAPI,Response
@app.get("/legacy/")
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")
if __name__ == "__main__":
    uvicorn.run(app, host="127.0.0.1", port=8000)

那么我们请求下看下接口的实际返回。

那么我们看下返回类型是xml格式的。

在返回的时候,有时候我们需要在返回的headers。我们应该如何实现呢

代码语言:javascript
复制
@app.get("/legacy/")
def get_legacy_data():
    headers = {"X-Cat": "leizi", "Content-Language": "en-US"}
    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",
                    headers=headers)

其实很简单。我们可以请求下

对应的接口可以正常返回,对应的Headers返回正常。

要想设置cookie也很简单

代码语言:javascript
复制
@app.get("/legacy/")
def get_legacy_data(response: Response):
    headers = {"X-Cat": "leizi", "Content-Language": "en-US"}
    data = """<?xml version="1.0"?>
    <shampoo>
    <Header>
        Apply shampoo here.
    </Header>
    <Body>
        You'll have to use soap here.
    </Body>r
    </shampoo>
    """
    response.set_cookie(key="message", value="hello")
    return Response(content=data, media_type="application/xml",
                    headers=headers)
                    
                    

我们看下结果

接口可以正常返回我们设置的cookie,headers也可以正常返回。

后记

发现问题,解决问题。遇到问题,慢慢解决问题即可。

欢迎关注雷子说测试开发,后续将会持续为大家分享更多的技术知识

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-09-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 雷子说测试开发 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档