refactor(api): 统一响应格式迁移 + 异步任务系统 + 状态码体系完善
- 将全部路由文件(12个)的 jsonify 响应迁移至 success_response/error_response 统一格式 - 修复 sync_routes.py error_response 参数错误(P0) - 新增异步任务系统:task_registry + task_routes - 新增状态码:TASK_NOT_FOUND(4014)、TASK_CONFLICT(4015)、REINDEX_ERROR(5040) - 修正 task_routes/exam_pkg 中语义不匹配的状态码 - 更新 curl 测试手册、后端对接规范文档 - 添加缓存性能报告和 Redis 迁移计划
This commit is contained in:
@@ -10,6 +10,8 @@
|
||||
|
||||
from flask import Blueprint, request, jsonify, current_app
|
||||
from auth.gateway import require_gateway_auth
|
||||
from core.status_codes import SUCCESS, BAD_REQUEST, FORBIDDEN, NOT_FOUND, INTERNAL_ERROR, SERVICE_UNAVAILABLE, DELETE_SUCCESS
|
||||
from api.response_utils import success_response, error_response
|
||||
|
||||
session_bp = Blueprint('session', __name__)
|
||||
|
||||
@@ -34,7 +36,7 @@ def get_sessions():
|
||||
"""
|
||||
session_manager = current_app.config['SESSION_MANAGER']
|
||||
if session_manager is None:
|
||||
return jsonify({"error": "会话服务不可用"}), 503
|
||||
return error_response("SERVICE_UNAVAILABLE", SERVICE_UNAVAILABLE, "会话服务不可用", http_status=503)
|
||||
user_id = request.current_user["user_id"]
|
||||
|
||||
sessions = session_manager.get_user_sessions(user_id, limit=20)
|
||||
@@ -47,7 +49,7 @@ def get_sessions():
|
||||
else:
|
||||
s["preview"] = "空会话"
|
||||
|
||||
return jsonify({"sessions": sessions})
|
||||
return success_response(data={"sessions": sessions})
|
||||
|
||||
|
||||
@session_bp.route('/history/<session_id>', methods=['GET'])
|
||||
@@ -65,7 +67,7 @@ def get_history(session_id):
|
||||
"""
|
||||
session_manager = current_app.config['SESSION_MANAGER']
|
||||
if session_manager is None:
|
||||
return jsonify({"error": "会话服务不可用"}), 503
|
||||
return error_response("SERVICE_UNAVAILABLE", SERVICE_UNAVAILABLE, "会话服务不可用", http_status=503)
|
||||
user_id = request.current_user["user_id"]
|
||||
|
||||
# 验证会话归属
|
||||
@@ -73,11 +75,11 @@ def get_history(session_id):
|
||||
session_ids = [s["session_id"] for s in sessions]
|
||||
|
||||
if session_id not in session_ids:
|
||||
return jsonify({"error": "无权访问此会话"}), 403
|
||||
return error_response("FORBIDDEN", FORBIDDEN, "无权访问此会话", http_status=403)
|
||||
|
||||
history = session_manager.get_history(session_id, limit=100)
|
||||
|
||||
return jsonify({"history": history})
|
||||
return success_response(data={"history": history})
|
||||
|
||||
|
||||
@session_bp.route('/session/<session_id>', methods=['DELETE'])
|
||||
@@ -86,7 +88,7 @@ def delete_session(session_id):
|
||||
"""删除会话"""
|
||||
session_manager = current_app.config['SESSION_MANAGER']
|
||||
if session_manager is None:
|
||||
return jsonify({"error": "会话服务不可用"}), 503
|
||||
return error_response("SERVICE_UNAVAILABLE", SERVICE_UNAVAILABLE, "会话服务不可用", http_status=503)
|
||||
user_id = request.current_user["user_id"]
|
||||
|
||||
# 验证会话归属
|
||||
@@ -94,11 +96,11 @@ def delete_session(session_id):
|
||||
session_ids = [s["session_id"] for s in sessions]
|
||||
|
||||
if session_id not in session_ids:
|
||||
return jsonify({"error": "无权删除此会话"}), 403
|
||||
return error_response("FORBIDDEN", FORBIDDEN, "无权访问此会话", http_status=403)
|
||||
|
||||
session_manager.delete_session(session_id)
|
||||
|
||||
return jsonify({"success": True, "message": "会话已删除"})
|
||||
return success_response(status_code=DELETE_SUCCESS, message="会话已删除")
|
||||
|
||||
|
||||
@session_bp.route('/clear/<session_id>', methods=['POST'])
|
||||
@@ -107,7 +109,7 @@ def clear_history(session_id):
|
||||
"""清空会话历史(保留会话)"""
|
||||
session_manager = current_app.config['SESSION_MANAGER']
|
||||
if session_manager is None:
|
||||
return jsonify({"error": "会话服务不可用"}), 503
|
||||
return error_response("SERVICE_UNAVAILABLE", SERVICE_UNAVAILABLE, "会话服务不可用", http_status=503)
|
||||
user_id = request.current_user["user_id"]
|
||||
|
||||
# 验证会话归属
|
||||
@@ -115,8 +117,8 @@ def clear_history(session_id):
|
||||
session_ids = [s["session_id"] for s in sessions]
|
||||
|
||||
if session_id not in session_ids:
|
||||
return jsonify({"error": "无权操作此会话"}), 403
|
||||
return error_response("FORBIDDEN", FORBIDDEN, "无权访问此会话", http_status=403)
|
||||
|
||||
session_manager.clear_history(session_id)
|
||||
|
||||
return jsonify({"success": True, "message": "历史已清空"})
|
||||
return success_response(message="历史已清空")
|
||||
|
||||
Reference in New Issue
Block a user