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

2024-04-09 09:05 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一致性,提升用户体验和系统的维护性。

当前文章价值7.77元,扫一扫支付后添加微信提供帮助!(如不能解决您的问题,可以申请退款)

你可能感兴趣的文章

来源:每日教程每日一例,深入学习实用技术教程,关注公众号TeachCourse
转载请注明出处: https://teachcourse.cn/3224.html ,谢谢支持!

资源分享

分类:python 标签:, ,
Genymotion配置代理服务,联网下载 Genymotion配置代理服务,联网下
Android Studio “Live Templates”如何提升编程效率? Android Studio “Live Temp
Ubuntu系统ERROR 2002 (HY000) Can not connect to local MySQL server through socket varrunmysqldmysqld Ubuntu系统ERROR 2002 (H
关于接口的理解:源头,接口,终点 关于接口的理解:源头,接口,终

评论已关闭!