前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >FastAPI(49)- 自定义响应之 ORJSONResponse、UJSONResponse

FastAPI(49)- 自定义响应之 ORJSONResponse、UJSONResponse

作者头像
小菠萝测试笔记
发布2021-10-09 11:39:15
9220
发布2021-10-09 11:39:15
举报
文章被收录于专栏:自动化、性能测试

更多自定义响应类型

ORJSONResponse

作用
  • 如果需要提高性能,可以安装并使用 orjson,并将响应设置为 ORJSONResponse
  • 官方介绍:快速、正确的 Python JSON 库,支持 dataclass、datetime、numpy
  • 注意:仅在 FastAPI 才支持 ORJSONResponse,Starlette 并没有它
代码语言:javascript
复制
pip install orjson
response_class

可以在路径操作装饰器上声明 response_class=Response ,然后最终返回的响应数据的类型就是声明的 Response

实际代码
代码语言:javascript
复制
from fastapi import FastAPI
from fastapi.responses import ORJSONResponse

app = FastAPI()


# 声明返回的 Response 类型
@app.get("/item", response_class=ORJSONResponse)
async def get_item():
    return [{"item_id": "Foo"}]
  • response_class 将用于定义响应的 media_type
  • 上面的栗子中,Response Header 的 Content-type 将为 application/json,并且会记录在 OpenAPI 中
查看 Swagger API 文档的 Response Header
请求结果
源码

用的是 orjson 的 dumps() 方法

UJSONResponse

和 ORJSONResponse 一样的用法,更推荐用 orjson 代替 ujson

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-10-03 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 更多自定义响应类型
  • ORJSONResponse
    • 作用
      • response_class
        • 实际代码
          • 查看 Swagger API 文档的 Response Header
            • 请求结果
                • 源码
                • UJSONResponse
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档