Skip to main content
Glama
models.py3 kB
""" ShowDoc 数据模型定义 """ from typing import List, Optional, Dict, Any from dataclasses import dataclass, field @dataclass class ApiDefinition: """API 接口定义""" method: str # GET, POST 等 url: str title: str description: str = "" request: Optional[Dict[str, Any]] = None response: Optional[Dict[str, Any]] = None headers: Optional[List[Dict[str, Any]]] = None query: Optional[List[Dict[str, Any]]] = None body: Optional[Dict[str, Any]] = None @dataclass class Page: """页面信息""" page_id: str page_title: str cat_id: str author_uid: str = "" author_username: str = "" api_info: Optional[ApiDefinition] = None ext_info: Optional[Dict[str, Any]] = None # 原始 page_content 解析后的完整数据 raw_content: Optional[Dict[str, Any]] = None @dataclass class Category: """分类节点(支持嵌套)""" cat_id: str cat_name: str item_id: str parent_cat_id: str level: int s_number: str = "" pages: List[Page] = field(default_factory=list) children: List['Category'] = field(default_factory=list) # 子分类 @dataclass class ItemInfo: """文档项目信息""" item_id: str item_name: str item_domain: str = "" is_archived: str = "0" default_page_id: Optional[str] = None default_cat_id2: Optional[str] = None default_cat_id3: Optional[str] = None default_cat_id4: Optional[str] = None @dataclass class ApiTree: """完整的接口树结构""" item_info: ItemInfo categories: List[Category] = field(default_factory=list) def to_dict(self) -> Dict[str, Any]: """转换为字典格式""" def category_to_dict(cat: Category) -> Dict[str, Any]: return { "cat_id": cat.cat_id, "cat_name": cat.cat_name, "level": cat.level, "parent_cat_id": cat.parent_cat_id, "pages": [ { "page_id": page.page_id, "page_title": page.page_title, "api_info": { "method": page.api_info.method, "url": page.api_info.url, "title": page.api_info.title, "description": page.api_info.description, "request": page.api_info.request, "response": page.api_info.response, } if page.api_info else None } for page in cat.pages ], "children": [category_to_dict(child) for child in cat.children] } return { "item_info": { "item_id": self.item_info.item_id, "item_name": self.item_info.item_name, }, "categories": [category_to_dict(cat) for cat in self.categories] }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/yfcyfc123234/showdoc_mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server