fraud-detection-ml/App/utils/api_utils.py
2025-02-14 11:18:13 +08:00

55 lines
1.6 KiB
Python

from flask import jsonify
# 统一返回接口
class APIUtils:
@staticmethod
def success_response(data=None, message="Success", status_code=200):
"""成功响应封装"""
response = {
'code': '200',
'message': message,
'data': data
}
return jsonify(response), status_code
@staticmethod
def error_response(message="Error", status_code=400):
"""错误响应封装"""
response = {
'code': '500',
'message': message
}
return jsonify(response), status_code
@staticmethod
def validate_json(request_json, required_fields):
"""验证 JSON 请求体中是否包含所需字段"""
missing_fields = [field for field in required_fields if field not in request_json]
if missing_fields:
return False, f'缺失字段: {", ".join(missing_fields)}'
return True, ""
@staticmethod
def paginate(query, page, per_page):
"""分页处理"""
total = query.count()
items = query.offset((page - 1) * per_page).limit(per_page).all()
return {
'total': total,
'items': items
}
class CustomException(Exception):
"""自定义异常类,所有自定义异常应继承自此类"""
def __init__(self, message, status_code=400):
super().__init__(message)
self.message = message
self.status_code = status_code
def to_dict(self):
"""将异常信息转换为字典格式"""
return {'error': self.message, 'status_code': self.status_code}