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"`
|
|||
|
}
|
|||
|
)
|