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

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