完成基础开发

This commit is contained in:
2025-07-18 15:46:07 +08:00
parent 99f30bd1eb
commit cff16ef2af
42 changed files with 7290 additions and 0 deletions

115
backend/api/clients.py Normal file
View File

@ -0,0 +1,115 @@
"""
客户端管理 API 蓝图
"""
from flask import Blueprint, request, jsonify
from services.client_service import ClientService
clients_bp = Blueprint('clients', __name__, url_prefix='/api/clients')
client_service = ClientService()
@clients_bp.route('', methods=['GET'])
def get_clients():
"""获取所有客户端列表"""
try:
clients = client_service.get_clients_with_connection()
return jsonify({
'success': True,
'data': clients
})
except Exception as e:
return jsonify({
'success': False,
'error': str(e)
}), 500
@clients_bp.route('', methods=['POST'])
def add_client():
"""添加新客户端"""
try:
data = request.get_json()
# 验证必需字段
required_fields = ['name', 'host', 'port']
for field in required_fields:
if field not in data:
return jsonify({
'success': False,
'error': f'缺少必需字段: {field}'
}), 400
client = client_service.add_client(data)
return jsonify({
'success': True,
'data': client
}), 201
except Exception as e:
return jsonify({
'success': False,
'error': str(e)
}), 500
@clients_bp.route('/<client_id>', methods=['PUT'])
def update_client(client_id):
"""更新客户端配置"""
try:
data = request.get_json()
client = client_service.update_client(client_id, data)
if client:
return jsonify({
'success': True,
'data': client
})
else:
return jsonify({
'success': False,
'error': '客户端不存在'
}), 404
except Exception as e:
return jsonify({
'success': False,
'error': str(e)
}), 500
@clients_bp.route('/<client_id>', methods=['DELETE'])
def delete_client(client_id):
"""删除客户端"""
try:
success = client_service.delete_client(client_id)
if success:
return jsonify({
'success': True,
'message': '客户端删除成功'
})
else:
return jsonify({
'success': False,
'error': '客户端不存在'
}), 404
except Exception as e:
return jsonify({
'success': False,
'error': str(e)
}), 500
@clients_bp.route('/<client_id>/test', methods=['POST'])
def test_client_connection(client_id):
"""测试客户端连接"""
try:
result = client_service.test_client_connection(client_id)
return jsonify(result)
except Exception as e:
return jsonify({
'success': False,
'error': str(e)
}), 500