You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
337 lines
8.4 KiB
337 lines
8.4 KiB
syntax = "v1"
|
|
|
|
info (
|
|
title: "Base 统一服务"
|
|
desc: "Base 项目统一 API 接口"
|
|
author: "author@example.com"
|
|
version: "v1.0"
|
|
)
|
|
|
|
import "api/user.api"
|
|
import "api/profile.api"
|
|
import "api/dashboard.api"
|
|
import "api/file.api"
|
|
import "api/menu.api"
|
|
import "api/role.api"
|
|
import "api/organization.api"
|
|
import "api/ai.api"
|
|
|
|
// ========== 通用响应类型 ==========
|
|
type (
|
|
Response {
|
|
Code int `json:"code"` // 状态码
|
|
Message string `json:"message"` // 消息
|
|
Success bool `json:"success"` // 是否成功
|
|
Data interface{} `json:"data"` // 数据
|
|
}
|
|
// 登录响应
|
|
LoginResponse {
|
|
Code int `json:"code"` // 状态码
|
|
Message string `json:"message"` // 消息
|
|
Success bool `json:"success"` // 是否成功
|
|
Token string `json:"token"` // JWT Token
|
|
}
|
|
// 注册请求
|
|
RegisterRequest {
|
|
Username string `json:"username" validate:"required,min=3,max=32"` // 用户名
|
|
Password string `json:"password" validate:"required,min=6,max=32"` // 密码
|
|
Phone string `json:"phone" validate:"required"` // 手机号(必填)
|
|
Email string `json:"email,optional"` // 邮箱(可选)
|
|
}
|
|
// 登录请求
|
|
LoginRequest {
|
|
Account string `json:"account" validate:"required"` // 手机号或用户名
|
|
Password string `json:"password" validate:"required,min=6,max=32"` // 密码
|
|
}
|
|
// 刷新Token请求
|
|
RefreshTokenRequest {
|
|
Token string `json:"token" validate:"required"` // Token
|
|
}
|
|
)
|
|
|
|
// ========== 服务定义 ==========
|
|
@server (
|
|
prefix: /api/v1
|
|
group: auth
|
|
middleware: Cors,Log
|
|
)
|
|
service base-api {
|
|
// ========== 认证接口 ==========
|
|
// 注册
|
|
@doc "用户注册"
|
|
@handler register
|
|
post /register (RegisterRequest) returns (UserInfo)
|
|
|
|
// 登录
|
|
@doc "用户登录"
|
|
@handler login
|
|
post /login (LoginRequest) returns (LoginResponse)
|
|
|
|
// 刷新Token
|
|
@doc "刷新Token"
|
|
@handler refreshToken
|
|
post /refresh (RefreshTokenRequest) returns (LoginResponse)
|
|
}
|
|
|
|
@server (
|
|
prefix: /api/v1
|
|
group: user
|
|
middleware: Cors,Log,Auth,Authz
|
|
)
|
|
service base-api {
|
|
// ========== 用户管理接口 ==========
|
|
// 创建用户
|
|
@doc "创建用户"
|
|
@handler createUser
|
|
post /user (CreateUserRequest) returns (UserInfo)
|
|
|
|
// 获取用户列表
|
|
@doc "获取用户列表"
|
|
@handler getUserList
|
|
get /users (UserListRequest) returns (UserListResponse)
|
|
|
|
// 获取用户详情
|
|
@doc "获取用户详情"
|
|
@handler getUser
|
|
get /user/:id (GetUserRequest) returns (UserInfo)
|
|
|
|
// 更新用户
|
|
@doc "更新用户信息"
|
|
@handler updateUser
|
|
put /user/:id (UpdateUserRequest) returns (UserInfo)
|
|
|
|
// 删除用户
|
|
@doc "删除用户"
|
|
@handler deleteUser
|
|
delete /user/:id (DeleteUserRequest) returns (Response)
|
|
}
|
|
|
|
@server (
|
|
prefix: /api/v1
|
|
group: profile
|
|
middleware: Cors,Log,Auth,Authz
|
|
)
|
|
service base-api {
|
|
// ========== 个人中心接口 ==========
|
|
// 获取个人信息
|
|
@doc "获取个人信息"
|
|
@handler getProfile
|
|
get /profile/me returns (GetProfileResponse)
|
|
|
|
// 更新个人资料
|
|
@doc "更新个人资料"
|
|
@handler updateProfile
|
|
put /profile/me (UpdateProfileRequest) returns (GetProfileResponse)
|
|
|
|
// 修改密码
|
|
@doc "修改密码"
|
|
@handler changePassword
|
|
post /profile/password (ChangePasswordRequest) returns (Response)
|
|
|
|
@doc "获取我的机构列表"
|
|
@handler getUserOrgs
|
|
get /profile/orgs returns (UserOrgsResponse)
|
|
|
|
@doc "切换当前机构"
|
|
@handler switchOrg
|
|
put /profile/current-org (SwitchOrgRequest) returns (SwitchOrgResponse)
|
|
}
|
|
|
|
@server (
|
|
prefix: /api/v1
|
|
group: dashboard
|
|
middleware: Cors,Log,Auth,Authz
|
|
)
|
|
service base-api {
|
|
// ========== 仪表盘接口 ==========
|
|
// 获取仪表盘统计数据
|
|
@doc "获取仪表盘统计数据"
|
|
@handler getDashboardStats
|
|
get /dashboard/stats returns (DashboardStatsResponse)
|
|
|
|
// 获取最近活动
|
|
@doc "获取最近活动列表"
|
|
@handler getRecentActivities
|
|
get /dashboard/activities (RecentActivitiesRequest) returns (RecentActivitiesResponse)
|
|
}
|
|
|
|
@server (
|
|
prefix: /api/v1
|
|
group: file
|
|
middleware: Cors,Log,Auth,Authz
|
|
)
|
|
service base-api {
|
|
// ========== 文件管理接口 ==========
|
|
@doc "上传文件"
|
|
@handler uploadFile
|
|
post /file/upload returns (FileInfo)
|
|
|
|
@doc "获取文件列表"
|
|
@handler getFileList
|
|
get /files (FileListRequest) returns (FileListResponse)
|
|
|
|
@doc "获取文件详情"
|
|
@handler getFile
|
|
get /file/:id (GetFileRequest) returns (FileInfo)
|
|
|
|
@doc "获取文件访问URL"
|
|
@handler getFileUrl
|
|
get /file/:id/url (GetFileRequest) returns (FileUrlResponse)
|
|
|
|
@doc "更新文件信息"
|
|
@handler updateFile
|
|
put /file/:id (UpdateFileRequest) returns (FileInfo)
|
|
|
|
@doc "删除文件"
|
|
@handler deleteFile
|
|
delete /file/:id (DeleteFileRequest) returns (Response)
|
|
}
|
|
|
|
// ========== 菜单管理(当前用户菜单,只需登录) ==========
|
|
@server (
|
|
prefix: /api/v1
|
|
group: menu
|
|
middleware: Cors,Log,Auth
|
|
)
|
|
service base-api {
|
|
@doc "获取当前用户可见菜单"
|
|
@handler getCurrentMenus
|
|
get /menus/current returns (MenuListResponse)
|
|
}
|
|
|
|
// ========== 菜单管理(管理端,需授权) ==========
|
|
@server (
|
|
prefix: /api/v1
|
|
group: menu
|
|
middleware: Cors,Log,Auth,Authz
|
|
)
|
|
service base-api {
|
|
@doc "获取全部菜单列表"
|
|
@handler getMenuList
|
|
get /menus returns (MenuListResponse)
|
|
|
|
@doc "创建菜单"
|
|
@handler createMenu
|
|
post /menu (CreateMenuRequest) returns (MenuItem)
|
|
|
|
@doc "更新菜单"
|
|
@handler updateMenu
|
|
put /menu/:id (UpdateMenuRequest) returns (MenuItem)
|
|
|
|
@doc "删除菜单"
|
|
@handler deleteMenu
|
|
delete /menu/:id (DeleteMenuRequest) returns (Response)
|
|
}
|
|
|
|
// ========== 角色管理 ==========
|
|
@server (
|
|
prefix: /api/v1
|
|
group: role
|
|
middleware: Cors,Log,Auth,Authz
|
|
)
|
|
service base-api {
|
|
@doc "获取角色列表"
|
|
@handler getRoleList
|
|
get /roles returns (RoleListResponse)
|
|
|
|
@doc "创建角色"
|
|
@handler createRole
|
|
post /role (CreateRoleRequest) returns (RoleInfo)
|
|
|
|
@doc "更新角色"
|
|
@handler updateRole
|
|
put /role/:id (UpdateRoleRequest) returns (RoleInfo)
|
|
|
|
@doc "删除角色"
|
|
@handler deleteRole
|
|
delete /role/:id (DeleteRoleRequest) returns (Response)
|
|
|
|
@doc "获取角色菜单"
|
|
@handler getRoleMenus
|
|
get /role/:id/menus (GetRoleMenusRequest) returns (RoleMenusResponse)
|
|
|
|
@doc "设置角色菜单"
|
|
@handler setRoleMenus
|
|
put /role/:id/menus (SetRoleMenusRequest) returns (Response)
|
|
}
|
|
|
|
// ========== 机构管理 ==========
|
|
@server (
|
|
prefix: /api/v1
|
|
group: organization
|
|
middleware: Cors,Log,Auth,Authz
|
|
)
|
|
service base-api {
|
|
@doc "获取机构列表"
|
|
@handler getOrganizationList
|
|
get /organizations returns (OrgListResponse)
|
|
|
|
@doc "创建机构"
|
|
@handler createOrganization
|
|
post /organization (CreateOrgRequest) returns (OrgInfo)
|
|
|
|
@doc "更新机构"
|
|
@handler updateOrganization
|
|
put /organization/:id (UpdateOrgRequest) returns (OrgInfo)
|
|
|
|
@doc "删除机构"
|
|
@handler deleteOrganization
|
|
delete /organization/:id (DeleteOrgRequest) returns (Response)
|
|
|
|
@doc "获取机构成员"
|
|
@handler getOrgMembers
|
|
get /organization/:id/members (GetOrgMembersRequest) returns (OrgMembersResponse)
|
|
|
|
@doc "添加机构成员"
|
|
@handler addOrgMember
|
|
post /organization/:id/member (AddOrgMemberRequest) returns (Response)
|
|
|
|
@doc "更新机构成员角色"
|
|
@handler updateOrgMember
|
|
put /organization/:id/member/:userId (UpdateOrgMemberRequest) returns (Response)
|
|
|
|
@doc "移除机构成员"
|
|
@handler removeOrgMember
|
|
delete /organization/:id/member/:userId (RemoveOrgMemberRequest) returns (Response)
|
|
}
|
|
|
|
// ========== AI 智能对话 ==========
|
|
@server (
|
|
prefix: /api/v1
|
|
group: ai
|
|
middleware: Cors,Log,Auth
|
|
)
|
|
service base-api {
|
|
@doc "AI 对话补全"
|
|
@handler AiChatCompletions
|
|
post /ai/chat/completions (AIChatCompletionRequest)
|
|
|
|
@doc "获取对话列表"
|
|
@handler AiConversationList
|
|
get /ai/conversations (AIConversationListRequest) returns (AIConversationListResponse)
|
|
|
|
@doc "创建对话"
|
|
@handler AiConversationCreate
|
|
post /ai/conversation (AIConversationCreateRequest) returns (AIConversationInfo)
|
|
|
|
@doc "获取对话详情"
|
|
@handler AiConversationGet
|
|
get /ai/conversation/:id (AIConversationGetRequest) returns (AIConversationDetailResponse)
|
|
|
|
@doc "更新对话"
|
|
@handler AiConversationUpdate
|
|
put /ai/conversation/:id (AIConversationUpdateRequest) returns (AIConversationInfo)
|
|
|
|
@doc "删除对话"
|
|
@handler AiConversationDelete
|
|
delete /ai/conversation/:id (AIConversationDeleteRequest) returns (Response)
|
|
|
|
@doc "获取模型列表"
|
|
@handler AiModelList
|
|
get /ai/models returns (AIModelListResponse)
|
|
|
|
@doc "获取我的配额"
|
|
@handler AiQuotaMe
|
|
get /ai/quota/me returns (AIQuotaInfo)
|
|
}
|
|
|
|
|