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