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

简介: 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

image.png


请求结果

image.png


源码

image.png

用的是 orjson 的 dumps() 方法

 

UJSONResponse


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

image.png


相关文章
|
数据库
FastAPI(53)- Response Headers 响应设置 Headers
FastAPI(53)- Response Headers 响应设置 Headers
558 0
FastAPI(53)- Response Headers 响应设置 Headers
|
4月前
|
存储 缓存 NoSQL
【性能飙升的秘密】FastAPI应用如何借助缓存技术实现极速响应?揭秘高效Web开发的制胜法宝!
【8月更文挑战第31天】FastAPI是一个高性能Web框架,利用Starlette和Pydantic实现高效API构建。本文介绍如何通过缓存提升FastAPI应用性能,包括使用`starlette-cache[redis]`实现Redis缓存,以及缓存一致性和缓存策略的注意事项。通过具体示例展示了缓存的配置与应用,帮助开发者构建更高效的Web应用。
285 0
|
XML 数据格式
FastAPI(47)- 通过 Response 自定义响应的类型
FastAPI(47)- 通过 Response 自定义响应的类型
318 0
FastAPI(47)- 通过 Response 自定义响应的类型
|
JSON NoSQL API
全面拥抱 FastApi — 响应模型
全面拥抱 FastApi — 响应模型
|
存储
FastAPI(51)- 自定义响应之 StreamingResponse、FileResponse
FastAPI(51)- 自定义响应之 StreamingResponse、FileResponse
1041 1
FastAPI(51)- 自定义响应之 StreamingResponse、FileResponse
|
JavaScript API 网络安全
FastAPI(52)- Response Cookies 响应设置 Cookies
FastAPI(52)- Response Cookies 响应设置 Cookies
406 0
FastAPI(52)- Response Cookies 响应设置 Cookies
FastAPI(50)- 自定义响应之 RedirectResponse
FastAPI(50)- 自定义响应之 RedirectResponse
373 0
FastAPI(50)- 自定义响应之 RedirectResponse
|
JSON API 数据格式
FastAPI(48)- 自定义响应之 HTMLResponse、PlainTextResponse (下)
FastAPI(48)- 自定义响应之 HTMLResponse、PlainTextResponse (下)
262 0
FastAPI(48)- 自定义响应之 HTMLResponse、PlainTextResponse (下)
FastAPI(48)- 自定义响应之 HTMLResponse、PlainTextResponse (上)
FastAPI(48)- 自定义响应之 HTMLResponse、PlainTextResponse (上)
397 0
FastAPI(48)- 自定义响应之 HTMLResponse、PlainTextResponse (上)
|
NoSQL 测试技术 Redis
FastAPI(八十四)实战开发《在线课程学习系统》--接口测试(下)
FastAPI(八十四)实战开发《在线课程学习系统》--接口测试(下)
FastAPI(八十四)实战开发《在线课程学习系统》--接口测试(下)