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)
网络技术联盟站's avatar网络技术联盟站
上一篇 2024年5月11日 上午3:26
下一篇 2024年5月11日 上午3:28

相关推荐

发表回复

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