""" Controller 端点数据模型。 """ from dataclasses import dataclass, field from typing import List, Optional @dataclass class ApiParameter: """单个接口参数。""" name: str type: str required: bool = True source: str = "query" description: Optional[str] = None parent_dto: Optional[str] = None body_param_name: Optional[str] = None @dataclass class ApiEndpoint: """单个 Controller 接口端点。""" http_method: str uri: str controller_class: str method_name: str source_file: str parameters: List[ApiParameter] = field(default_factory=list) @property def endpoint_key(self) -> str: return f"{self.http_method} {self.uri}"