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

更多自定义响应类型

 

ORJSONResponse

作用

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

 

response_class

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

 

实际代码

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

 

posted @ 2021-10-03 20:31  小菠萝测试笔记  阅读(773)  评论(0编辑  收藏  举报