#!/usr/bin/env python # -*- coding: utf-8 -*- """ VWED.api 模块 - API接口注册 """ from typing import Dict, Any, Callable from ..script_registry_service import get_global_registry class VWEDApiModule: """VWED.api 模块 - API接口注册""" def __init__(self, script_id: str): self.script_id = script_id self.registry = get_global_registry() def register_route(self, path: str, method: str = "GET", handler: Callable = None, description: str = "", params: Dict = None, parameters: Dict = None, response_schema: Dict = None): """分离式API接口注册(用户要求的新格式) 使用方式: VWED.api.register_route( path="/calculate", method="POST", handler=calculate_handler, description="数学计算接口", params={"a": 0, "b": 0, "operation": "add"} # 简化的参数定义 ) """ # 验证HTTP方法 valid_methods = ["GET", "POST", "PUT", "DELETE"] if method.upper() not in valid_methods: raise ValueError(f"method参数错误:'{method}' 不是有效的HTTP请求方式。支持的方式有:{', '.join(valid_methods)}") if handler is None: raise ValueError("handler参数不能为空") self.registry.register_api_route( path=path, method=method.upper(), handler=handler, script_id=self.script_id, description=description, params=params, # 传递简化的参数格式 parameters=parameters, response_schema=response_schema ) return handler