149 lines
5.4 KiB
Plaintext
149 lines
5.4 KiB
Plaintext
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"`
|
||
}
|
||
) |