统一响应json数据格式
响应json格式
{
"code": 200,
"data": xxx,
"message": "success"
}
封装响应格式
from fastapi import status
from fastapi.responses import JSONResponse, Response # , ORJSONResponse
from typing import Union
# 注意有个 * 号 不是笔误, 意思是调用的时候要指定参数 e.g.resp_200(data=xxxx)
def resp_200(*, data: Union[list, dict, str]) -> Response:
return JSONResponse(
status_code=status.HTTP_200_OK,
content={
'code': 200,
'message': "Success",
'data': data,
}
)
def resp_400(*, data: str = None, message: str="BAD REQUEST") -> Response:
return JSONResponse(
status_code=status.HTTP_400_BAD_REQUEST,
content={
'code': 400,
'message': message,
'data': data,
}
)
# 所有响应状态都封装在这里
xxxx
调用方法
from api.utils import response_code
@router.get("/table/list")
async def get_table_list():
return response_code.resp_200(data={
"items": ["xx", "xx"]
})
补充说明
可用 ORJSONResponse
UJSONResponse
替换 JSONResponse
,貌似json解析更快。
发表评论