当前位置:网站首页>FastAPI 封装一个通用的response
FastAPI 封装一个通用的response
2022-07-31 12:22:00 【小兜全糖(Cx)】
- 安装依赖包
anyio==3.6.1
fastapi==0.79.0
pydantic==1.9.1
sniffio==1.2.0
starlette==0.19.1
h11==0.13.0
uvicorn==0.18.2
pymongo==4.2.0
- 自定义response类
from fastapi.responses import Response
from bson.json_util import dumps
class CoustomResponse(Response):
def __init__(self, content, msg, status,error=None):
if msg:
content['msg'] = msg
if error:
content['error'] = error
super().__init__(
content=dumps(content),
media_type="application/json",
status_code=status
)
我们只需要在这里将我们的逻辑处理完,并将数据放到content中就可以了
3. demo
from fastapi import FastAPI,status
import uvicorn
from fastapi.responses import Response
from bson.json_util import dumps
class CoustomResponse(Response):
def __init__(self, content, msg, status,error=None):
if msg:
content['msg'] = msg
if error:
content['error'] = error
super().__init__(
content=dumps(content),
media_type="application/json",
status_code=status
)
app = FastAPI(default_response_class=CoustomResponse)
@app.get('/test')
async def test():
return CoustomResponse(content={
"haha":"haha"},msg={
"data":"test"},error=None,status=status.HTTP_200_OK)
if __name__=='__main__':
uvicorn.run('main:app',host='0.0.0.0',port=9999,reload=True)
https://stackoverflow.com/questions/63960879/fastapi-custom-response-class-as-default-response-class
边栏推荐
猜你喜欢
随机推荐
一文吃透哈希表
Selenium自动化测试之Selenium IDE
mysql根据多字段分组——group by带两个或多个参数
电商rpa是什么意思?跟电商rpi是一个意思吗?
PAT exam summary (exam experience)
最长算术(暑假每日一题 11)
认知—运动康复医疗机器人应用设计
ESP8266-Arduino编程实例-MCP9808数字温度传感器驱动
MySQL模糊查询性能优化
VBA实现双击单元格自动输出对号再次双击取消对号
Different lower_case_table_names settings for server (‘1‘) and data dictionary (‘0‘) 解决方案
Indoor real-time laser SLAM control method based on biological excitation neural network
SAP ABAP OData 服务如何支持 $filter (过滤)操作试读版
给你一个大厂面试的机会,你能面试上吗?进来看看!
A Week of Wonderful Content Sharing (Issue 14)
【OpenCV】-边缘检测汇总示例
关于Mysql数据库的介绍
VBA输出日志到工作簿demo
ESP8266-Arduino编程实例-PIR(被动红外)传感器驱动
JVS函数公式使用场景介绍