统一响应json数据格式

本系列博客是配合Vue开发一套后台管理系统,对应的Vue教程见个人博客

https://www.charmcode.cn/

现在了很多项目,都是前后端分离的项目,所以了前后端都会约定传输的数据格式,以及响应提醒。

响应json格式

现在应该都是使用的json交互了,应该没有使用xml的吧?
一般了响应json格式是由以下三个字段组成。

{"code": 200,   // 统一成功状态码 前后端约定 有的是0 有的是20000"data": xxx,   // 可以是任意类型数据 有接口文档对接"message": "success"  // 消息提示,是状态码的简要补充说明
}

前端一般都会做个响应拦截处理,如果状态码不是约定成功的状态码就拦截,然后提示message里面的消息,是的话就返回data里面的数据。

封装响应格式

我在utils/response_code.py 工具文件夹下,创建了一个response_code.py文件
专门存放封装的响应数据格式。

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"]})

一些补充

我上面用的序列化的工具方法JSONResponse 是框架自带的,作者还在文档里面补充说明了, 如何调用其他的序列化方法,更快的去序列化json数据。
ORJSONResponse UJSONResponse 等方法
这些是要在额外安装依赖库的

可以参见文档
https://fastapi.tiangolo.com/advanced/custom-response/#ujsonresponse

本文GitHub地址

见个人博客: https://www.charmcode.cn/article/2020-07-16_fastapi_response_json

【FastAPI后台API 五】统一响应json数据格式相关推荐

  1. 【FastAPI后台API 八】JWT token认证登陆

    JWT token认证登陆 前一篇博客讲述了获取和验证请求参数, 这一篇就实践下,演示一个最基础的JWT认证,我公司是用了两个token方式验证,一个请求token,一个刷新token,请求token ...

  2. SpringBoot入门系列(二)如何返回统一的Json数据格式

    前面介绍了Spring Boot的优点,然后介绍了如何快速创建Spring Boot 项目.不清楚的朋友可以看看之前的文章: https://www.cnblogs.com/zhangweizhong ...

  3. 百度搜索排名API接口PC返回JSON数据格式

    百度搜索排名API接口返回JSON数据格式 写个笔记, 记录一下 https://www.baidu.com/s?wd=新信息&pn=50&rn=50&tn=json 参数说明 ...

  4. 【FastAPI后台API 一】配置文件(移步博客园或个人网站)

    FastAPI 配置文件 准备使用Vue + FastAPI开发一套后台管理系统,记录自己使用FastAPI的技术点. 移步博客园 https://www.cnblogs.com/CharmCode/ ...

  5. 后台怎么接收处理从url 客户端传来的json数据格式

    最近做项目用到了 一个新的客户端传参的方式,主要采用的是客户端以json数据格式的方式想后台传递数据,所以,后台接收的参数也是json格式的,刚开始不知道怎么做, 到最后才找到了解决的办法就是利用go ...

  6. 怎么把json数据转化为数组_RESTful API 返回统一JSON数据格式是怎么实现的?

    关于 Spring 的全局处理,我有两方面要说: 统一数据返回格式 统一异常处理 为了将两个问题说明清楚,将分两个章节分别说明,本章主要说第一点 有童鞋说,我们项目都做了这种处理,就是在每个 API ...

  7. springMVC02-SSM整合(Result统一响应数据格式、异常页面修改、SSM整合vue-elementUI小案例、SpringMVC的拦截器Interceptor)

    文章目录 今日内容 一.SSM整合[重点] 1 SSM整合配置 问题导入 1.1 SSM整合流程 1.2 SSM整合配置 1.2.1 创建工程,添加依赖和插件 1.2.2 Spring整合Mybati ...

  8. Spring Boot 无侵入式 实现API接口统一JSON格式返回

    作者 | 小魏小魏我们去那里呀 来源 | blog.csdn.net/qq_34347620/article/details/102239179 无侵入式 统一返回JSON格式 其实本没有没打算写这篇 ...

  9. Spring Boot 无侵入式 实现 API 接口统一 JSON 格式返回

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 无侵入式 统一返回JSON格式 其实本没有没打算写这篇博客 ...

最新文章

  1. 怎样用matlab打开mw文,C# matlab混合编程 MWArray使用笔记
  2. youtube-dl
  3. Windows下启动各服务命令
  4. Linux进程间通信五 Posix 信号量简介与示例
  5. uniapph5授权成功后返回上一页_被成功验证过的的7条选品思路(收藏)
  6. Java “Resource leak: ‘scanner‘ is never closed“警告的解决办法
  7. nssl1459-空间简单度【扫描线,线段树】
  8. 鸿星尔克向河南博物院捐款100万元用于灾后重建
  9. Redis的中并发问题的解决方案小结
  10. 关于TortoiseGit汉化包装了,但仍然是英文菜单的问题记录
  11. shareplex三点同步配置
  12. Python遍历文件夹下所有文件及目录
  13. Spring Boot获取节假日API
  14. 简化“复杂”的层级管理,实现团队作战式的目标协同
  15. 四川全国计算机一级考试查询系统,2013四川计算机一级成绩查询入口
  16. 关于Binder (AIDL)的 oneway 机制
  17. 适合开发人员看的鸿蒙OS介绍~
  18. webpack和脚手架
  19. mysql查最高薪水,使用子查询查找MySQL Employee表的最高和第二最高薪水?
  20. z77主板支持服务器内存条吗,支持更高规格的内存_华擎 Z77 极限玩家 4_主板评测-中关村在线...

热门文章

  1. Java_io体系之PipedInputStream、PipedOutputStream简介、走进源码及示例——06
  2. PHP面向对象之封装
  3. 如何使用WPS软件创建文本文档?
  4. 诚信迎考 计算机考试主题班会策划,“复习迎考诚信考试”主题班会班会教案 .doc...
  5. 打开pdf出现文件损坏并且无法修复错误解决
  6. linkedin爬虫_如何建立一个惊人的LinkedIn个人资料[15+个行之有效的技巧]
  7. 让天下没有难用的搜索:阿里搜索如何成长为贴心“暖男”?
  8. 密码学重大里程碑!科学家暴力破解迄今最长RSA密钥,功劳却不在摩尔定律
  9. 钉钉发送消息详细教程-- java
  10. 短视频剪辑要注意的三个细节,片头片尾也重要,吸粉其实也不难