syntax = "v1" info ( title: "菜单中心服务" desc: "菜单中心服务" author: "Liangzai" email: "2440983361@qq.com" version: "v1" ) @server ( prefix: api/v1/admin/menu group: admin_menu jwt: JwtAuth ) 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 int64 `json:"id"` // 菜单ID Pid int64 `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 int64 `path:"id"` // 菜单ID } // 详情响应 GetMenuDetailResp { Id int64 `json:"id"` // 菜单ID Pid int64 `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 int64 `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 int64 `json:"id"` // 菜单ID } // 更新请求 UpdateMenuReq { Id int64 `path:"id"` // 菜单ID Pid int64 `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 int64 `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"` } )