c50ccd258f
refactor(tests): 将e2e_tests迁移到tests_suite和api_integration_tests style: 为Java类添加文档注释 docs: 更新.gitignore和配置文件 test: 添加性能测试和Playwright测试脚本 chore: 清理旧测试文件和配置
46 lines
1.5 KiB
Python
46 lines
1.5 KiB
Python
"""
|
|
菜单管理API
|
|
"""
|
|
|
|
from typing import Dict, Any, List
|
|
from httpx import AsyncClient, Response
|
|
from .base_api import BaseAPI
|
|
|
|
|
|
class MenuAPI(BaseAPI):
|
|
"""菜单管理API"""
|
|
|
|
def __init__(self, client: AsyncClient):
|
|
super().__init__(client, "/api/menus")
|
|
|
|
async def create_menu(self, menu_data: Dict[str, Any]) -> Response:
|
|
"""创建菜单"""
|
|
return await self.post("", json=menu_data)
|
|
|
|
async def get_menu_by_id(self, menu_id: int) -> Response:
|
|
"""根据ID获取菜单"""
|
|
return await self.get(f"/{menu_id}")
|
|
|
|
async def get_all_menus(self) -> Response:
|
|
"""获取所有菜单"""
|
|
return await self.get("")
|
|
|
|
async def get_menu_tree(self) -> Response:
|
|
"""获取菜单树"""
|
|
return await self.get("/tree")
|
|
|
|
async def update_menu(self, menu_id: int, menu_data: Dict[str, Any]) -> Response:
|
|
"""更新菜单"""
|
|
return await self.put(f"/{menu_id}", json=menu_data)
|
|
|
|
async def delete_menu(self, menu_id: int) -> Response:
|
|
"""删除菜单"""
|
|
return await self.delete(f"/{menu_id}")
|
|
|
|
async def get_menus_by_parent(self, parent_id: int) -> Response:
|
|
"""根据父菜单ID获取子菜单"""
|
|
return await self.get("", params={"parentId": parent_id})
|
|
|
|
async def get_menus_by_type(self, menu_type: str) -> Response:
|
|
"""根据菜单类型获取菜单"""
|
|
return await self.get("", params={"menuType": menu_type}) |