前端:https://github.com/arklnk/ark-admin-vuenext
后端:https://github.com/arklnk/ark-admin-zero
go-zero:https://go-zero.dev/cn
演示: http://arkadmin.si-yee.com
账号 密码 备注 demo 123456 演示账号
编写api文件
配置管理
字典管理
路径:app/core/cmd/api/desc/config/dict.api
syntax = "v1"
info(
title: "字典"
desc: "字典"
author: "Trevor"
email: "trevorlan@163.com"
)
type (
ConfigDict {
Id uint64 `json:"id"`
ParentId uint64 `json:"parentId"`
Name string `json:"name"`
Type uint64 `json:"type"`
UniqueKey string `json:"uniqueKey"`
Value string `json:"value"`
OrderNum uint64 `json:"orderNum"`
Remark string `json:"remark"`
Status uint64 `json:"status"`
}
ConfigDictListResp {
DictList []ConfigDict `json:"list"`
}
)
type (
ConfigDictPageReq {
Page uint64 `form:"page" validate:"number,gte=1"`
Limit uint64 `form:"limit" validate:"number,gte=1"`
ParentId uint64 `form:"parentId" validate:"number,gte=0"`
}
ConfigDictPagination {
Page uint64 `json:"page"`
Limit uint64 `json:"limit"`
Total uint64 `json:"total"`
}
ConfigDictPageResp {
ConfigDictList []ConfigDict `json:"list"`
Pagination ConfigDictPagination `json:"pagination"`
}
)
type (
AddConfigDictReq {
ParentId uint64 `json:"parentId" validate:"number,gte=0"`
Name string `json:"name" validate:"min=2,max=50"`
Type uint64 `json:"type" validate:"number,gte=1,lte=12"`
UniqueKey string `json:"uniqueKey" validate:"min=2,max=50"`
Value string `json:"value" validate:"max=2048"`
OrderNum uint64 `json:"orderNum" validate:"gte=0,lte=9999"`
Remark string `json:"remark" validate:"max=200"`
Status uint64 `json:"status" validate:"number,gte=0,lte=1"`
}
)
type (
DeleteConfigDictReq {
Id uint64 `json:"id" validate:"number,gte=1"`
}
)
type (
UpdateConfigDictReq {
Id uint64 `json:"id" validate:"number,gte=1"`
ParentId uint64 `json:"parentId" validate:"number,gte=0"`
Name string `json:"name" validate:"min=2,max=50"`
Type uint64 `json:"type" validate:"number,gte=1,lte=12"`
Value string `json:"value" validate:"max=2048"`
OrderNum uint64 `json:"orderNum" validate:"gte=0,lte=9999"`
Remark string `json:"remark" validate:"max=200"`
Status uint64 `json:"status" validate:"number,gte=0,lte=1"`
}
)
@server(
jwt: JwtAuth
group : config/dict
prefix : /config/dict
middleware: PermMenuAuth
)
service core-api {
@doc(
summary: "字典列表"
)
@handler GetConfigDictList
get /list returns (ConfigDictListResp)
@doc(
summary: "分页字典数据"
)
@handler GetConfigDictPage
get /data/page (ConfigDictPageReq) returns (ConfigDictPageResp)
@doc(
summary: "新增字典"
)
@handler AddConfigDict
post /add (AddConfigDictReq)
@doc(
summary: "删除字典"
)
@handler DeleteConfigDict
post /delete (DeleteConfigDictReq)
@doc(
summary: "更新字典"
)
@handler UpdateConfigDict
post /update (UpdateConfigDictReq)
}
日志管理
登录日志
路径:app/core/cmd/api/desc/log/log.api
syntax = "v1"
info(
title: "日志"
desc: "日志"
author: "Trevor"
email: "trevorlan@163.com"
)
type (
LogLogin {
Id uint64 `json:"id"`
Account string `json:"account"`
Ip string `json:"ip"`
Uri string `json:"uri"`
Status uint64 `json:"status"`
CreateTime string `json:"createTime"`
}
LogLoginPageReq {
Page uint64 `form:"page" validate:"number,gte=1"`
Limit uint64 `form:"limit" validate:"number,gte=1"`
}
LogLoginPagePagination {
Page uint64 `json:"page"`
Limit uint64 `json:"limit"`
Total uint64 `json:"total"`
}
LogLoginPageResp {
LogLoginList []LogLogin `json:"list"`
Pagination LogLoginPagePagination `json:"pagination"`
}
)
@server(
jwt: JwtAuth
group : log/login
prefix : /log/login
middleware: PermMenuAuth
)
service core-api {
@doc(
summary: "分页日志"
)
@handler GetLogLoginPage
get /page (LogLoginPageReq) returns (LogLoginPageResp)
}
系统管理
部门管理
路径:app/core/cmd/api/desc/sys/dept.api
syntax = "v1"
info(
title: "部门"
desc: "部门"
author: "Trevor"
email: "trevorlan@163.com"
)
type (
Dept {
Id uint64 `json:"id"`
ParentId uint64 `json:"parentId"`
Name string `json:"name"`
FullName string `json:"fullName"`
UniqueKey string `json:"uniqueKey"`
Type uint64 `json:"type"`
Status uint64 `json:"status"`
OrderNum uint64 `json:"orderNum"`
Remark string `json:"remark"`
}
SysDeptListResp {
DeptList []Dept `json:"list"`
}
)
type (
AddSysDeptReq {
ParentId uint64 `json:"parentId" validate:"number,gte=0"`
Name string `json:"name" validate:"min=2,max=50"`
FullName string `json:"fullName" validate:"omitempty,min=2,max=50"`
UniqueKey string `json:"uniqueKey" validate:"min=2,max=50"`
Type uint64 `json:"type" validate:"number,gte=1,lte=3"`
Status uint64 `json:"status" validate:"number,gte=0,lte=1"`
OrderNum uint64 `json:"orderNum" validate:"number,gte=0,lte=9999"`
Remark string `json:"remark" validate:"max=200"`
}
)
type (
DeleteSysDeptReq {
Id uint64 `json:"id" validate:"number,gte=1"`
}
)
type (
UpdateSysDeptReq {
Id uint64 `json:"id" validate:"number,gte=1"`
ParentId uint64 `json:"parentId" validate:"number,gte=0"`
Name string `json:"name" validate:"min=2,max=50"`
FullName string `json:"fullName" validate:"omitempty,min=2,max=50"`
UniqueKey string `json:"uniqueKey" validate:"min=2,max=50"`
Type uint64 `json:"type" validate:"number,gte=1,lte=3"`
Status uint64 `json:"status" validate:"number,gte=0,lte=1"`
OrderNum uint64 `json:"orderNum" validate:"number,gte=0,lte=9999"`
Remark string `json:"remark" validate:"max=200"`
}
)
@server(
jwt: JwtAuth
group : sys/dept
prefix : /sys/dept
middleware: PermMenuAuth
)
service core-api {
@doc(
summary: "部门列表"
)
@handler GetSysDeptList
get /list returns (SysDeptListResp)
@doc(
summary: "新增部门"
)
@handler AddSysDept
post /add (AddSysDeptReq)
@doc(
summary: "删除部门"
)
@handler DeleteSysDept
post /delete (DeleteSysDeptReq)
@doc(
summary: "更新部门"
)
@handler UpdateSysDept
post /update (UpdateSysDeptReq)
}
岗位管理
路径:app/core/cmd/api/desc/sys/job.api
syntax = "v1"
info(
title: "岗位"
desc: "岗位"
author: "Trevor"
email: "trevorlan@163.com"
)
type (
Job {
Id uint64 `json:"id"`
Name string `json:"name"`
Status uint64 `json:"status"`
OrderNum uint64 `json:"orderNum"`
}
SysJobPageReq {
Page uint64 `form:"page" validate:"number,gte=1"`
Limit uint64 `form:"limit" validate:"number,gte=1"`
}
SysJobPagePagination {
Page uint64 `json:"page"`
Limit uint64 `json:"limit"`
Total uint64 `json:"total"`
}
SysJobPageResp {
JobList []Job `json:"list"`
Pagination SysJobPagePagination `json:"pagination"`
}
)
type (
AddSysJobReq {
Name string `json:"name" validate:"min=2,max=50"`
Status uint64 `json:"status" validate:"number,gte=0,lte=1"`
OrderNum uint64 `json:"orderNum" validate:"number,gte=0,lte=9999"`
}
)
type (
DeleteSysJobReq {
Id uint64 `json:"id" validate:"number,gte=1"`
}
)
type (
UpdateSysJobReq {
Id uint64 `json:"id" validate:"number,gte=1"`
Name string `json:"name" validate:"min=2,max=50"`
Status uint64 `json:"status" validate:"number,gte=0,lte=1"`
OrderNum uint64 `json:"orderNum" validate:"number,gte=0,lte=9999"`
}
)
@server(
jwt: JwtAuth
group : sys/job
prefix : /sys/job
middleware: PermMenuAuth
)
service core-api {
@doc(
summary: "分页岗位"
)
@handler GetSysJobPage
get /page (SysJobPageReq) returns (SysJobPageResp)
@doc(
summary: "新增岗位"
)
@handler AddSysJob
post /add (AddSysJobReq)
@doc(
summary: "删除岗位"
)
@handler DeleteSysJob
post /delete (DeleteSysJobReq)
@doc(
summary: "更新岗位"
)
@handler UpdateSysJob
post /update (UpdateSysJobReq)
}
菜单管理
路径:app/core/cmd/api/desc/sys/menu.api
syntax = "v1"
info(
title: "权限菜单"
desc: "权限菜单"
author: "Trevor"
email: "trevorlan@163.com"
)
type (
PermMenu {
Id uint64 `json:"id"`
ParentId uint64 `json:"parentId"`
Name string `json:"name"`
Router string `json:"router"`
Perms []string `json:"perms"`
Type uint64 `json:"type"`
Icon string `json:"icon"`
OrderNum uint64 `json:"orderNum"`
ViewPath string `json:"viewPath"`
IsShow uint64 `json:"isShow"`
ActiveRouter string `json:"activeRouter"`
Has uint64 `json:"has"`
}
SysPermMenuListResp {
PermMenuList []PermMenu `json:"list"`
}
)
type (
AddSysPermMenuReq {
ParentId uint64 `json:"parentId" validate:"number,gte=0"`
Name string `json:"name" validate:"min=2,max=50"`
Router string `json:"router" validate:"omitempty,max=1024"`
Perms []string `json:"perms" validate:"omitempty,unique"`
Type uint64 `json:"type" validate:"number,gte=0,lte=2"`
Icon string `json:"icon" validate:"omitempty,max=200"`
OrderNum uint64 `json:"orderNum" validate:"number,gte=0,lte=9999"`
ViewPath string `json:"viewPath" validate:"omitempty,max=1024"`
IsShow uint64 `json:"isShow" validate:"number,gte=0,lte=1"`
ActiveRouter string `json:"activeRouter" validate:"omitempty,max=1024"`
}
)
type (
DeleteSysPermMenuReq {
Id uint64 `json:"id" validate:"number,gte=1"`
}
)
type (
UpdateSysPermMenuReq {
Id uint64 `json:"id" validate:"number,gte=1"`
ParentId uint64 `json:"parentId" validate:"number,gte=0"`
Name string `json:"name" validate:"min=2,max=50"`
Router string `json:"router" validate:"omitempty,max=1024"`
Perms []string `json:"perms" validate:"omitempty,unique"`
Type uint64 `json:"type" validate:"number,gte=0,lte=2"`
Icon string `json:"icon" validate:"omitempty,max=200"`
OrderNum uint64 `json:"orderNum" validate:"number,gte=0,lte=9999"`
ViewPath string `json:"viewPath" validate:"omitempty,max=1024"`
IsShow uint64 `json:"isShow" validate:"number,gte=0,lte=1"`
ActiveRouter string `json:"activeRouter" validate:"omitempty,max=1024"`
}
)
@server(
jwt: JwtAuth
group : sys/menu
prefix : /sys/perm/menu
middleware: PermMenuAuth
)
service core-api {
@doc(
summary: "权限菜单列表"
)
@handler GetSysPermMenuList
get /list returns (SysPermMenuListResp)
@doc(
summary: "新增权限菜单"
)
@handler AddSysPermMenu
post /add (AddSysPermMenuReq)
@doc(
summary: "删除权限菜单"
)
@handler DeleteSysPermMenu
post /delete (DeleteSysPermMenuReq)
@doc(
summary: "更新权限菜单"
)
@handler UpdateSysPermMenu
post /update (UpdateSysPermMenuReq)
}
职称管理
路径:app/core/cmd/api/desc/sys/profession.api
syntax = "v1"
info(
title: "职称"
desc: "职称"
author: "Trevor"
email: "trevorlan@163.com"
)
type (
Profession {
Id uint64 `json:"id"`
Name string `json:"name"`
Status uint64 `json:"status"`
OrderNum uint64 `json:"orderNum"`
}
SysProfessionPageReq {
Page uint64 `form:"page" validate:"number,gte=1"`
Limit uint64 `form:"limit" validate:"number,gte=1"`
}
ProfessionPagePagination {
Page uint64 `json:"page"`
Limit uint64 `json:"limit"`
Total uint64 `json:"total"`
}
SysProfessionPageResp {
ProfessionList []Profession `json:"list"`
Pagination ProfessionPagePagination `json:"pagination"`
}
)
type (
AddSysProfessionReq {
Name string `json:"name" validate:"min=2,max=50"`
Status uint64 `json:"status" validate:"number,gte=0,lte=1"`
OrderNum uint64 `json:"orderNum" validate:"number,gte=0,lte=9999"`
}
)
type (
DeleteSysProfessionReq {
Id uint64 `json:"id" validate:"number,gte=1"`
}
)
type (
UpdateSysProfessionReq {
Id uint64 `json:"id" validate:"number,gte=1"`
Name string `json:"name" validate:"min=2,max=50"`
Status uint64 `json:"status" validate:"number,gte=0,lte=1"`
OrderNum uint64 `json:"orderNum" validate:"number,gte=0,lte=9999"`
}
)
@server(
jwt: JwtAuth
group : sys/profession
prefix : /sys/profession
middleware: PermMenuAuth
)
service core-api {
@doc(
summary: "分页职称"
)
@handler GetSysProfessionPage
get /page (SysProfessionPageReq) returns (SysProfessionPageResp)
@doc(
summary: "新增职称"
)
@handler AddSysProfession
post /add (AddSysProfessionReq)
@doc(
summary: "删除职称"
)
@handler DeleteSysProfession
post /delete (DeleteSysProfessionReq)
@doc(
summary: "更新职称"
)
@handler UpdateSysProfession
post /update (UpdateSysProfessionReq)
}
角色管理
路径:app/core/cmd/api/desc/sys/role.api
syntax = "v1"
info(
title: "角色"
desc: "角色"
author: "Trevor"
email: "trevorlan@163.com"
)
type (
Role {
Id uint64 `json:"id"`
ParentId uint64 `json:"parentId"`
Name string `json:"name"`
UniqueKey string `json:"uniqueKey"`
PermMenuIds []uint64 `json:"permMenuIds"`
Remark string `json:"remark"`
Status uint64 `json:"status"`
OrderNum uint64 `json:"orderNum"`
}
SysRoleListResp {
RoleList []Role `json:"list"`
}
)
type (
AddSysRoleReq {
ParentId uint64 `json:"parentId" validate:"number,gte=0"`
Name string `json:"name" validate:"min=2,max=50"`
UniqueKey string `json:"uniqueKey" validate:"min=2,max=50"`
PermMenuIds []uint64 `json:"permMenuIds" validate:"omitempty,unique"`
Remark string `json:"remark" validate:"max=200"`
Status uint64 `json:"status" validate:"number,gte=0,lte=1"`
OrderNum uint64 `json:"orderNum" validate:"number,gte=0,lte=9999"`
}
)
type (
DeleteSysRoleReq {
Id uint64 `json:"id" validate:"number,gte=2"`
}
)
type (
UpdateSysRoleReq {
Id uint64 `json:"id" validate:"number,gte=1"`
ParentId uint64 `json:"parentId" validate:"number,gte=0"`
UniqueKey string `json:"uniqueKey" validate:"min=2,max=50"`
Name string `json:"name" validate:"min=2,max=50"`
PermMenuIds []uint64 `json:"permMenuIds" validate:"omitempty,unique"`
Remark string `json:"remark" validate:"max=200"`
Status uint64 `json:"status" validate:"number,gte=0,lte=1"`
OrderNum uint64 `json:"orderNum" validate:"number,gte=0,lte=9999"`
}
)
@server(
jwt: JwtAuth
group : sys/role
prefix : /sys/role
middleware: PermMenuAuth
)
service core-api {
@doc(
summary: "角色列表"
)
@handler GetSysRoleList
get /list returns (SysRoleListResp)
@doc(
summary: "新增角色"
)
@handler AddSysRole
post /add (AddSysRoleReq)
@doc(
summary: "删除角色"
)
@handler DeleteSysRole
post /delete (DeleteSysRoleReq)
@doc(
summary: "更新角色"
)
@handler UpdateSysRole
post /update (UpdateSysRoleReq)
}
用户管理
路径:app/core/cmd/api/desc/sys/user.api
syntax = "v1"
info(
title: "用户"
desc: "用户"
author: "Trevor"
email: "trevorlan@163.com"
)
type (
UserProfession {
Id uint64 `json:"id"`
Name string `json:"name"`
}
UserJob {
Id uint64 `json:"id"`
Name string `json:"name"`
}
UserDept {
Id uint64 `json:"id"`
Name string `json:"name"`
}
UserRole {
Id uint64 `json:"id"`
Name string `json:"name"`
}
User {
Id uint64 `json:"id"`
Account string `json:"account"`
Username string `json:"username"`
Nickname string `json:"nickname"`
Gender uint64 `json:"gender"`
Email string `json:"email"`
Mobile string `json:"mobile"`
Profession UserProfession `json:"profession"`
Job UserJob `json:"job"`
Dept UserDept `json:"dept"`
Roles []UserRole `json:"roles"`
Status uint64 `json:"status"`
OrderNum uint64 `json:"orderNum"`
Remark string `json:"remark"`
}
SysUserPageReq {
Page uint64 `form:"page" validate:"number,gte=1"`
Limit uint64 `form:"limit" validate:"number,gte=1"`
DeptId uint64 `form:"deptId" validate:"number,gte=0"`
}
UserPagePagination {
Page uint64 `json:"page"`
Limit uint64 `json:"limit"`
Total uint64 `json:"total"`
}
SysUserPageResp {
UserList []User `json:"list"`
Pagination UserPagePagination `json:"pagination"`
}
)
type (
AddSysUserReq {
Account string `json:"account" validate:"min=4,max=50"`
Username string `json:"username" validate:"min=2,max=50"`
Nickname string `json:"nickname" validate:"omitempty,min=2,max=50"`
Gender uint64 `json:"gender" validate:"number,gte=0,lte=2"`
Email string `json:"email" validate:"omitempty,email"`
Mobile string `json:"mobile" validate:"omitempty,min=11"`
ProfessionId uint64 `json:"professionId" validate:"number,gte=1"`
JobId uint64 `json:"jobId" validate:"number,gte=1"`
DeptId uint64 `json:"deptId" validate:"number,gte=1"`
RoleIds []uint64 `json:"roleIds" validate:"unique"`
Status uint64 `json:"status" validate:"number,gte=0,lte=1"`
OrderNum uint64 `json:"orderNum" validate:"number,gte=0,lte=9999"`
Remark string `json:"remark" validate:"max=200"`
}
)
type (
DeleteSysUserReq {
Id uint64 `json:"id" validate:"number,gte=2"`
}
)
type (
UpdateSysUserReq {
Id uint64 `json:"id" validate:"number,gte=2"`
Username string `json:"username" validate:"min=2,max=50"`
Nickname string `json:"nickname" validate:"omitempty,min=2,max=50"`
Gender uint64 `json:"gender" validate:"number,gte=0,lte=2"`
Email string `json:"email" validate:"omitempty,email"`
Mobile string `json:"mobile" validate:"omitempty,min=11"`
ProfessionId uint64 `json:"professionId" validate:"number,gte=1"`
JobId uint64 `json:"jobId" validate:"number,gte=1"`
DeptId uint64 `json:"deptId" validate:"number,gte=1"`
RoleIds []uint64 `json:"roleIds" validate:"unique"`
Status uint64 `json:"status" validate:"number,gte=0,lte=1"`
OrderNum uint64 `json:"orderNum" validate:"number,gte=0,lte=9999"`
Remark string `json:"remark" validate:"max=200"`
}
)
type (
UpdateSysUserPasswordReq {
Id uint64 `json:"id" validate:"number,gte=2"`
Password string `json:"password" validate:"min=6,max=12"`
}
)
type (
GetSysUserRdpjInfoReq {
UserId uint64 `form:"userId" validate:"number,gte=0"`
}
Rdpj {
Id uint64 `json:"id"`
Name string `json:"name"`
}
DeptTree {
Id uint64 `json:"id"`
ParentId uint64 `json:"parentId"`
Name string `json:"name"`
}
RoleTree {
Id uint64 `json:"id"`
ParentId uint64 `json:"parentId"`
Name string `json:"name"`
Has uint64 `json:"has"`
}
GetSysUserRdpjInfoResp {
Role []RoleTree `json:"role"`
Dept []DeptTree `json:"dept"`
Profession []Rdpj `json:"profession"`
Job []Rdpj `json:"job"`
}
)
@server(
jwt: JwtAuth
group : sys/user
prefix : /sys/user
middleware: PermMenuAuth
)
service core-api {
@doc(
summary: "分页用户"
)
@handler GetSysUserPage
get /page (SysUserPageReq) returns (SysUserPageResp)
@doc(
summary: "新增用户"
)
@handler AddSysUser
post /add (AddSysUserReq)
@doc(
summary: "删除用户"
)
@handler DeleteSysUser
post /delete (DeleteSysUserReq)
@doc(
summary: "更新用户"
)
@handler UpdateSysUser
post /update (UpdateSysUserReq)
@doc(
summary: "更新用户密码"
)
@handler UpdateSysUserPassword
post /password/update (UpdateSysUserPasswordReq)
@doc(
summary: "角色部门职称岗位信息"
)
@handler GetSysUserRdpjInfo
get /rdpj/info (GetSysUserRdpjInfoReq) returns (GetSysUserRdpjInfoResp)
}
用户模块
通用操作
路径:app/core/cmd/api/desc/user/user.api
syntax = "v1"
info(
title: "个人中心"
desc: "个人中心"
author: "Trevor"
email: "trevorlan@163.com"
)
type (
LoginReq {
CaptchaId string `json:"captchaId"`
VerifyCode string `json:"verifyCode"`
Account string `json:"account"`
Password string `json:"password"`
}
LoginResp {
Token string `json:"token"`
}
)
type (
UserInfoResp {
Username string `json:"username"`
Avatar string `json:"avatar"`
}
)
type (
UserProfileInfoResp {
Username string `json:"username"`
Nickname string `json:"nickname"`
Gender uint64 `json:"gender"`
Email string `json:"email"`
Mobile string `json:"mobile"`
Remark string `json:"remark"`
Avatar string `json:"avatar"`
}
)
type (
UpdateProfileReq {
Username string `json:"username" validate:"required,min=2,max=12"`
Nickname string `json:"nickname" validate:"omitempty,min=2,max=12"`
Gender uint64 `json:"gender" validate:"gte=0,lte=2"`
Email string `json:"email" validate:"omitempty,email"`
Mobile string `json:"mobile" validate:"omitempty,len=11"`
Avatar string `json:"avatar" validate:"required,url"`
}
)
type (
Menu {
Id uint64 `json:"id"`
ParentId uint64 `json:"parentId"`
Name string `json:"name"`
Router string `json:"router"`
Type uint64 `json:"type"`
Icon string `json:"icon"`
OrderNum uint64 `json:"orderNum"`
ViewPath string `json:"viewPath"`
IsShow uint64 `json:"isShow"`
ActiveRouter string `json:"activeRouter"`
}
UserPermMenuResp {
Menus []Menu `json:"menus"`
Perms []string `json:"perms"`
}
)
type (
UpdatePasswordReq {
OldPassword string `json:"oldPassword" validate:"min=6,max=12"`
NewPassword string `json:"newPassword" validate:"min=6,max=12"`
}
)
type (
LoginCaptchaResp {
CaptchaId string `json:"captchaId"`
VerifyCode string `json:"verifyCode"`
}
)
type (
GenerateAvatarResp {
AvatarUrl string `json:"avatarUrl"`
}
)
@server(
group : user
prefix : /user
)
service core-api {
@doc(
summary: "登录"
)
@handler Login
post /login (LoginReq) returns (LoginResp)
@doc(
summary: "登录验证码"
)
@handler GetLoginCaptcha
get /login/captcha returns (LoginCaptchaResp)
@doc(
summary: "退出"
)
@handler Logout
post /logout
}
@server(
jwt: JwtAuth
group : user
prefix : /user
)
service core-api {
@doc(
summary: "登录信息"
)
@handler GetUserInfo
get /info returns (UserInfoResp)
@doc(
summary: "权限菜单"
)
@handler GetUserPermMenu
get /permmenu returns (UserPermMenuResp)
@doc(
summary: "用户资料"
)
@handler GetUserProfileInfo
get /profile/info returns (UserProfileInfoResp)
@doc(
summary: "更新用户资料"
)
@handler UpdateUserProfile
post /profile/update (UpdateProfileReq)
@doc(
summary: "更新密码"
)
@handler UpdateUserPassword
post /password/update (UpdatePasswordReq)
@doc(
summary: "生成头像"
)
@handler GetGenerateAvatar
get /avatar/generate returns (GenerateAvatarResp)
}
生成api
由于自定义了goctl模板,所以在使用goctl生成api时,请指定goctl模板路径为:dev/goctl
例如(在项目根目录下执行)
goctl api go -api app/core/cmd/api/core.api -dir app/core/cmd/api -home ./dev/goctl
编写业务逻辑
业务逻辑篇幅过长,详细请参考:
前端:https://github.com/arklnk/ark-admin-vuenext
后端:https://github.com/arklnk/ark-admin-zero
go-zero:https://go-zero.dev/cn
演示: http://arkadmin.si-yee.com
账号 密码 备注 demo 123456 演示账号