51 lines
1.7 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/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