51 lines
1.7 KiB
Python
Raw Normal View History

2025-09-25 10:52:52 +08:00
#!/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