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.
 
 
 
 
 
 

125 lines
3.0 KiB

syntax = "v1"
info (
title: "Base 统一服务"
desc: "Base 项目统一 API 接口"
author: "author@example.com"
version: "v1.0"
)
import "api/user.api"
import "api/profile.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"` // 用户名
Email string `json:"email" validate:"required,email"` // 邮箱
Password string `json:"password" validate:"required,min=6,max=32"` // 密码
Phone string `json:"phone,optional"` // 手机号
}
// 登录请求
LoginRequest {
Email string `json:"email" validate:"required,email"` // 邮箱
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
)
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
)
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)
}