Python框架Flask实现接口API统一格式封装

在Python Flask框架中,实现API接口的统一格式封装是为了保证所有接口响应的数据格式一致,便于前端或其他服务解析。下面是如何进行统一格式封装的示例:

from flask import Flask, jsonify, make_response
from flask_restful import Api, Resource

# 初始化Flask应用和API扩展
app = Flask(__name__)
api = Api(app)

# 定义通用的响应包装函数
def wrap_response(data=None, error=None, status_code=200):
response_dict = {
\\\"status\\\": \\\"success\\\" if error is None else \\\"error\\\",
\\\"data\\\": data,
\\\"message\\\": error if error else \\\"\\\",
}
return make_response(jsonify(response_dict), status_code)

# 使用统一响应格式的基类Resource
class BaseResource(Resource):
def make_response(self, data=None, error=None, status_code=200):
return wrap_response(data, error, status_code)

# 继承BaseResource创建具体资源类
class UserResource(BaseResource):
def get(self, user_id):
try:
# 假设这里的user是从数据库获取的
user = get_user_from_db(user_id)
return self.make_response(data=user.to_dict())
except Exception as e:
return self.make_response(error=str(e), status_code=500)

api.add_resource(UserResource, \\\'/api/users/<int:user_id>\\\')

# 启动应用
if __name__ == \\\'__main__\\\':
app.run()

在这个例子中,我们定义了一个名为wrap_response的函数,它接受数据、错误信息和HTTP状态码作为参数,生成一个包含固定结构的JSON响应。接着创建了一个名为BaseResource的基类,其中包含一个make_response方法,这样所有的资源类都可以继承这个基类,从而保证所有接口返回响应时都会经过统一格式的封装。

UserResource类中,无论get方法成功还是抛出异常,最终都会调用make_response方法返回一个统一格式的响应。如果一切顺利,返回包含用户数据的成功响应;如果出现错误,则返回包含错误信息的失败响应。

这种封装方式不仅有助于前后端分离开发,也有利于在整个系统中维持API一致性,提升用户体验和系统的维护性。

原创文章,作者:网络技术联盟站,如若转载,请注明出处:https://www.sudun.com/ask/49766.html

(0)
网络技术联盟站的头像网络技术联盟站
上一篇 2024年5月11日
下一篇 2024年5月11日

相关推荐

  • 【音视频】M3U8与HLS基本概念与示例展示,hls转换成mp4格式

    【音视频】M3U8与HLS基本概念与示例展示 文章目录 前言HLS是什么?HLS 的概念HLS 的特点和优势 M3U8是什么?M3U8 的概念M3U8 的特点和优势示例展示示例展示详解1. #EXTM3U2. #

    网站运维 2024年7月26日
    0
  • 常见文件后缀说明

    在日常生活中,大家使用的电脑或是手机所生产出来的文件各式各样,但不知道大家是否有注意到,文件的后缀千奇百怪,却各自指向各自所对应的功能性。本期将带来我们日常经常

    2024年9月27日
    0
  • 脚本语言简要说明

    脚本是一类不需要编译的程序文件,具有类似于程序或命令的可执行的属性,但它并不属于计算机语言的范畴。举个反例,C语言程序经过编译、链接以后才具备执行属性,所以它不

    2024年9月22日
    0
  • 如何使用cdn加速网站

    使用宵云CDN为网站加速的步骤包括:‌登录宵云CDN控制台,‌选择“CDN”服务。‌创建CDN加速域名,‌并选择要加速的网站。‌添加源站,‌即网站的URL。‌选

    2024年9月19日
    0

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注