syntax = "v1" info ( title: "菜单中心服务" desc: "菜单中心服务" version: "v1" ) @server ( prefix: api/v1/admin/menu group: admin_menu middleware: AdminAuthInterceptor ) service main { @doc "获取菜单列表" @handler GetMenuList get /list (GetMenuListReq) returns ([]MenuListItem) @doc "获取菜单详情" @handler GetMenuDetail get /detail/:id (GetMenuDetailReq) returns (GetMenuDetailResp) @doc "创建菜单" @handler CreateMenu post /create (CreateMenuReq) returns (CreateMenuResp) @doc "更新菜单" @handler UpdateMenu put /update/:id (UpdateMenuReq) returns (UpdateMenuResp) @doc "删除菜单" @handler DeleteMenu delete /delete/:id (DeleteMenuReq) returns (DeleteMenuResp) @doc "获取所有菜单(树形结构)" @handler GetMenuAll get /all (GetMenuAllReq) returns ([]GetMenuAllResp) } type ( // 列表请求 GetMenuListReq { Name string `form:"name,optional"` // 菜单名称 Path string `form:"path,optional"` // 路由路径 Status int64 `form:"status,optional,default=-1"` // 状态:0-禁用,1-启用 Type string `form:"type,optional"` // 类型 } // 列表项 MenuListItem { Id string `json:"id"` // 菜单ID Pid string `json:"pid"` // 父菜单ID Name string `json:"name"` // 路由名称 Path string `json:"path"` // 路由路径 Component string `json:"component"` // 组件路径 Redirect string `json:"redirect"` // 重定向路径 Meta map[string]interface{} `json:"meta"` // 路由元数据 Status int64 `json:"status"` // 状态:0-禁用,1-启用 Type string `json:"type"` // 类型 Sort int64 `json:"sort"` // 排序 CreateTime string `json:"createTime"` // 创建时间 Children []MenuListItem `json:"children"` // 子菜单 } // 详情请求 GetMenuDetailReq { Id string `path:"id"` // 菜单ID } // 详情响应 GetMenuDetailResp { Id string `json:"id"` // 菜单ID Pid string `json:"pid"` // 父菜单ID Name string `json:"name"` // 路由名称 Path string `json:"path"` // 路由路径 Component string `json:"component"` // 组件路径 Redirect string `json:"redirect"` // 重定向路径 Meta map[string]interface{} `json:"meta"` // 路由元数据 Status int64 `json:"status"` // 状态:0-禁用,1-启用 Type string `json:"type"` // 类型 Sort int64 `json:"sort"` // 排序 CreateTime string `json:"createTime"` // 创建时间 UpdateTime string `json:"updateTime"` // 更新时间 } // 创建请求 CreateMenuReq { Pid string `json:"pid,optional"` // 父菜单ID Name string `json:"name"` // 路由名称 Path string `json:"path,optional"` // 路由路径 Component string `json:"component,optional"` // 组件路径 Redirect string `json:"redirect,optional"` // 重定向路径 Meta map[string]interface{} `json:"meta"` // 路由元数据 Status int64 `json:"status,optional,default=1"` // 状态:0-禁用,1-启用 Type string `json:"type"` // 类型 Sort int64 `json:"sort,optional"` // 排序 } // 创建响应 CreateMenuResp { Id string `json:"id"` // 菜单ID } // 更新请求 UpdateMenuReq { Id string `path:"id"` // 菜单ID Pid *string `json:"pid,optional"` // 父菜单ID Name string `json:"name"` // 路由名称 Path string `json:"path,optional"` // 路由路径 Component string `json:"component,optional"` // 组件路径 Redirect string `json:"redirect,optional"` // 重定向路径 Meta map[string]interface{} `json:"meta"` // 路由元数据 Status int64 `json:"status,optional"` // 状态:0-禁用,1-启用 Type string `json:"type"` // 类型 Sort int64 `json:"sort,optional"` // 排序 } // 更新响应 UpdateMenuResp { Success bool `json:"success"` // 是否成功 } // 删除请求 DeleteMenuReq { Id string `path:"id"` // 菜单ID } // 删除响应 DeleteMenuResp { Success bool `json:"success"` // 是否成功 } // 获取所有菜单请求 GetMenuAllReq {} // 获取所有菜单响应 GetMenuAllResp { Name string `json:"name"` Path string `json:"path"` Redirect string `json:"redirect,omitempty"` Component string `json:"component,omitempty"` Sort int64 `json:"sort"` Meta map[string]interface{} `json:"meta"` Children []GetMenuAllResp `json:"children"` } )