| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454 |
- syntax = "v1"
- info (
- title: "Permission System API"
- desc: "权限管理系统"
- version: "1.0"
- )
- // ==================== Common ====================
- type PageResp {
- Total int64 `json:"total"`
- List interface{} `json:"list"`
- }
- // ==================== Auth ====================
- type (
- LoginReq {
- Username string `json:"username"`
- Password string `json:"password"`
- ProductCode string `json:"productCode"`
- }
- AdminLoginReq {
- Username string `json:"username"`
- Password string `json:"password"`
- ManagementKey string `json:"managementKey"`
- }
- LoginResp {
- AccessToken string `json:"accessToken"`
- RefreshToken string `json:"refreshToken"`
- Expires int64 `json:"expires"`
- UserInfo UserInfo `json:"userInfo"`
- }
- UserInfo {
- UserId int64 `json:"userId"`
- Username string `json:"username"`
- Nickname string `json:"nickname"`
- Avatar string `json:"avatar"`
- Email string `json:"email"`
- Phone string `json:"phone"`
- IsSuperAdmin int64 `json:"isSuperAdmin"`
- MustChangePassword int64 `json:"mustChangePassword"`
- MemberType string `json:"memberType"`
- Perms []string `json:"perms"`
- }
- RefreshTokenReq {
- Authorization string `header:"Authorization"`
- ProductCode string `json:"productCode,optional"`
- }
- ChangePasswordReq {
- OldPassword string `json:"oldPassword"`
- NewPassword string `json:"newPassword"`
- }
- )
- // ==================== Product ====================
- type (
- CreateProductReq {
- Code string `json:"code"`
- Name string `json:"name"`
- Remark string `json:"remark,optional"`
- }
- CreateProductResp {
- Id int64 `json:"id"`
- Code string `json:"code"`
- AppKey string `json:"appKey"`
- AppSecret string `json:"appSecret"`
- AdminUser string `json:"adminUser"`
- AdminPassword string `json:"adminPassword"`
- }
- UpdateProductReq {
- Id int64 `json:"id"`
- Name string `json:"name"`
- Remark string `json:"remark,optional"`
- Status int64 `json:"status,optional"`
- }
- ProductListReq {
- Page int64 `json:"page,optional"`
- PageSize int64 `json:"pageSize,optional"`
- }
- ProductDetailReq {
- Id int64 `json:"id"`
- }
- ProductItem {
- Id int64 `json:"id"`
- Code string `json:"code"`
- Name string `json:"name"`
- AppKey string `json:"appKey"`
- Remark string `json:"remark"`
- Status int64 `json:"status"`
- CreateTime int64 `json:"createTime"`
- }
- )
- // ==================== Perm ====================
- type (
- PermListReq {
- ProductCode string `json:"productCode"`
- Page int64 `json:"page,optional"`
- PageSize int64 `json:"pageSize,optional"`
- }
- PermItem {
- Id int64 `json:"id"`
- ProductCode string `json:"productCode"`
- Name string `json:"name"`
- Code string `json:"code"`
- Remark string `json:"remark"`
- Status int64 `json:"status"`
- CreateTime int64 `json:"createTime"`
- }
- SyncPermItem {
- Code string `json:"code"`
- Name string `json:"name"`
- Remark string `json:"remark,optional"`
- }
- SyncPermsReq {
- AppKey string `json:"appKey"`
- AppSecret string `json:"appSecret"`
- Perms []SyncPermItem `json:"perms"`
- }
- SyncPermsResp {
- Added int64 `json:"added"`
- Updated int64 `json:"updated"`
- Disabled int64 `json:"disabled"`
- }
- )
- // ==================== Role ====================
- type (
- CreateRoleReq {
- ProductCode string `json:"productCode"`
- Name string `json:"name"`
- Remark string `json:"remark,optional"`
- PermsLevel int64 `json:"permsLevel"`
- }
- UpdateRoleReq {
- Id int64 `json:"id"`
- Name string `json:"name"`
- Remark string `json:"remark,optional"`
- PermsLevel int64 `json:"permsLevel"`
- Status int64 `json:"status,optional"`
- }
- DeleteRoleReq {
- Id int64 `json:"id"`
- }
- RoleListReq {
- ProductCode string `json:"productCode"`
- Page int64 `json:"page,optional"`
- PageSize int64 `json:"pageSize,optional"`
- }
- RoleDetailReq {
- Id int64 `json:"id"`
- }
- RoleItem {
- Id int64 `json:"id"`
- ProductCode string `json:"productCode"`
- Name string `json:"name"`
- Remark string `json:"remark"`
- Status int64 `json:"status"`
- PermsLevel int64 `json:"permsLevel"`
- PermIds []int64 `json:"permIds,omitempty"`
- CreateTime int64 `json:"createTime"`
- }
- BindPermsReq {
- RoleId int64 `json:"roleId"`
- PermIds []int64 `json:"permIds"`
- }
- )
- // ==================== Dept ====================
- type (
- CreateDeptReq {
- ParentId int64 `json:"parentId"`
- Name string `json:"name"`
- Sort int64 `json:"sort,optional"`
- DeptType string `json:"deptType,optional"`
- Remark string `json:"remark,optional"`
- }
- UpdateDeptReq {
- Id int64 `json:"id"`
- Name string `json:"name"`
- Sort int64 `json:"sort,optional"`
- DeptType string `json:"deptType,optional"`
- Remark string `json:"remark,optional"`
- Status int64 `json:"status,optional"`
- }
- DeleteDeptReq {
- Id int64 `json:"id"`
- }
- DeptItem {
- Id int64 `json:"id"`
- ParentId int64 `json:"parentId"`
- Name string `json:"name"`
- Path string `json:"path"`
- Sort int64 `json:"sort"`
- DeptType string `json:"deptType"`
- Remark string `json:"remark"`
- Status int64 `json:"status"`
- CreateTime int64 `json:"createTime"`
- Children []*DeptItem `json:"children"`
- }
- )
- // ==================== User ====================
- type (
- CreateUserReq {
- Username string `json:"username"`
- Password string `json:"password"`
- Nickname string `json:"nickname,optional"`
- Email string `json:"email,optional"`
- Phone string `json:"phone,optional"`
- Remark string `json:"remark,optional"`
- DeptId int64 `json:"deptId,optional"`
- }
- UpdateUserReq {
- Id int64 `json:"id"`
- Nickname *string `json:"nickname,optional"`
- Email *string `json:"email,optional"`
- Phone *string `json:"phone,optional"`
- Remark *string `json:"remark,optional"`
- DeptId *int64 `json:"deptId,optional"`
- Status int64 `json:"status,optional"`
- }
- UserListReq {
- ProductCode string `json:"productCode,optional"`
- Page int64 `json:"page,optional"`
- PageSize int64 `json:"pageSize,optional"`
- }
- UserDetailReq {
- Id int64 `json:"id"`
- }
- UserItem {
- Id int64 `json:"id"`
- Username string `json:"username"`
- Nickname string `json:"nickname"`
- Avatar string `json:"avatar"`
- Email string `json:"email"`
- Phone string `json:"phone"`
- Remark string `json:"remark"`
- DeptId int64 `json:"deptId"`
- Status int64 `json:"status"`
- MemberType string `json:"memberType,omitempty"`
- RoleIds []int64 `json:"roleIds,omitempty"`
- Perms []string `json:"perms,omitempty"`
- CreateTime int64 `json:"createTime"`
- }
- BindRolesReq {
- UserId int64 `json:"userId"`
- RoleIds []int64 `json:"roleIds"`
- }
- UserPermItem {
- PermId int64 `json:"permId"`
- Effect string `json:"effect"`
- }
- SetPermsReq {
- UserId int64 `json:"userId"`
- Perms []UserPermItem `json:"perms"`
- }
- UpdateUserStatusReq {
- Id int64 `json:"id"`
- Status int64 `json:"status"`
- }
- )
- // ==================== Product Member ====================
- type (
- AddMemberReq {
- ProductCode string `json:"productCode"`
- UserId int64 `json:"userId"`
- MemberType string `json:"memberType"`
- }
- UpdateMemberReq {
- Id int64 `json:"id"`
- MemberType string `json:"memberType"`
- Status int64 `json:"status,optional"`
- }
- RemoveMemberReq {
- Id int64 `json:"id"`
- }
- MemberListReq {
- ProductCode string `json:"productCode"`
- Page int64 `json:"page,optional"`
- PageSize int64 `json:"pageSize,optional"`
- }
- MemberItem {
- Id int64 `json:"id"`
- ProductCode string `json:"productCode"`
- UserId int64 `json:"userId"`
- Username string `json:"username"`
- Nickname string `json:"nickname"`
- MemberType string `json:"memberType"`
- Status int64 `json:"status"`
- CreateTime int64 `json:"createTime"`
- }
- )
- // ==================== Common Response ====================
- type IdResp {
- Id int64 `json:"id"`
- }
- // ==================== Routes ====================
- // 公开接口(无需鉴权)
- @server (
- prefix: /api
- group: pub
- )
- service perm-api {
- @handler Login
- post /auth/login (LoginReq) returns (LoginResp)
- @handler AdminLogin
- post /auth/adminLogin (AdminLoginReq) returns (LoginResp)
- @handler RefreshToken
- post /auth/refreshToken (RefreshTokenReq) returns (LoginResp)
- @handler SyncPerms
- post /perm/sync (SyncPermsReq) returns (SyncPermsResp)
- }
- // 需要鉴权的接口
- @server (
- prefix: /api
- group: auth
- middleware: JwtAuth
- )
- service perm-api {
- @handler UserInfoHandler
- post /auth/userInfo returns (UserInfo)
- @handler ChangePassword
- post /auth/changePassword (ChangePasswordReq)
- }
- @server (
- prefix: /api/product
- group: product
- middleware: JwtAuth
- )
- service perm-api {
- @handler CreateProduct
- post /create (CreateProductReq) returns (CreateProductResp)
- @handler UpdateProduct
- post /update (UpdateProductReq)
- @handler ProductList
- post /list (ProductListReq) returns (PageResp)
- @handler ProductDetail
- post /detail (ProductDetailReq) returns (ProductItem)
- }
- @server (
- prefix: /api/dept
- group: dept
- middleware: JwtAuth
- )
- service perm-api {
- @handler CreateDept
- post /create (CreateDeptReq) returns (IdResp)
- @handler UpdateDept
- post /update (UpdateDeptReq)
- @handler DeleteDept
- post /delete (DeleteDeptReq)
- @handler DeptTree
- post /tree returns ([]*DeptItem)
- }
- @server (
- prefix: /api/perm
- group: perm
- middleware: JwtAuth
- )
- service perm-api {
- @handler PermList
- post /list (PermListReq) returns (PageResp)
- }
- @server (
- prefix: /api/role
- group: role
- middleware: JwtAuth
- )
- service perm-api {
- @handler CreateRole
- post /create (CreateRoleReq) returns (IdResp)
- @handler UpdateRole
- post /update (UpdateRoleReq)
- @handler DeleteRole
- post /delete (DeleteRoleReq)
- @handler RoleList
- post /list (RoleListReq) returns (PageResp)
- @handler RoleDetail
- post /detail (RoleDetailReq) returns (RoleItem)
- @handler BindRolePerms
- post /bindPerms (BindPermsReq)
- }
- @server (
- prefix: /api/user
- group: user
- middleware: JwtAuth
- )
- service perm-api {
- @handler CreateUser
- post /create (CreateUserReq) returns (IdResp)
- @handler UpdateUser
- post /update (UpdateUserReq)
- @handler UserList
- post /list (UserListReq) returns (PageResp)
- @handler UserDetail
- post /detail (UserDetailReq) returns (UserItem)
- @handler BindRoles
- post /bindRoles (BindRolesReq)
- @handler SetUserPerms
- post /setPerms (SetPermsReq)
- @handler UpdateUserStatus
- post /updateStatus (UpdateUserStatusReq)
- }
- @server (
- prefix: /api/member
- group: member
- middleware: JwtAuth
- )
- service perm-api {
- @handler AddMember
- post /add (AddMemberReq) returns (IdResp)
- @handler UpdateMember
- post /update (UpdateMemberReq)
- @handler RemoveMember
- post /remove (RemoveMemberReq)
- @handler MemberList
- post /list (MemberListReq) returns (PageResp)
- }
|