You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
109 lines
4.4 KiB
Plaintext
109 lines
4.4 KiB
Plaintext
syntax = "v1"
|
|
|
|
info(
|
|
title: "用户相关API"
|
|
desc: "用户相关"
|
|
author: "NorthLan"
|
|
email: "6995syu@163.com"
|
|
version: "v1"
|
|
)
|
|
|
|
type (
|
|
User {
|
|
Id int64 `json:"id"` // ID
|
|
Username string `json:"username"` // 用户名
|
|
PhoneNumber string `json:"phoneNumber"` // 手机号码
|
|
Email string `json:"email"` // 邮箱
|
|
Password string `json:"password"` // 密码
|
|
Status uint8 `json:"status"` // 用户状态
|
|
Name string `json:"name"` // 姓名
|
|
Nickname string `json:"nickname"` // 昵称
|
|
Gender uint8 `json:"gender"` // 性别
|
|
Birthdate string `json:"birthdate"` // 生日
|
|
Address string `json:"address"` // 地址
|
|
Age uint8 `json:"age"` // 年龄
|
|
Country string `json:"country"` // 国家
|
|
Picture string `json:"picture"` // 头像地址
|
|
SocialProfile map[string]interface{} `json:"social_profile"` // 用户社交属性
|
|
CreateTime string `json:"createTime"` // 创建时间
|
|
UpdateTime string `json:"updateTime"` // 更新时间
|
|
}
|
|
|
|
JwtToken struct {
|
|
AccessToken string `json:"access_token"`
|
|
Expire string `json:"expire"`
|
|
RefreshToken string `json:"refresh_token"`
|
|
}
|
|
)
|
|
|
|
type (
|
|
// RegisterReq 用户注册请求
|
|
RegisterReq {
|
|
Username *string `json:"username,optional"` // 用户名
|
|
PhoneNumber *string `json:"phoneNumber,optional"` // 手机号码
|
|
Email *string `json:"email,optional"` // 邮箱
|
|
Platform *string `json:"platform,optional"` // 社交平台
|
|
|
|
Password *string `json:"password,optional"` // 密码
|
|
ValidationType string `json:"validationType,default=phone"` // 验证码方式
|
|
ValidationCode *string `json:"validationCode,optional"` // 验证码
|
|
Code *string `json:"code,optional"` // 第三方平台code
|
|
}
|
|
|
|
// LoginReq 登录请求,登录主体/验证方式 后期将由专门服务进行管理,不再传递
|
|
LoginReq {
|
|
SubjectType string `json:"subjectType"` // 登录主体
|
|
ValidationType string `json:"validationType,default=password"` // 验证方式
|
|
|
|
Username *string `json:"username,optional"` // 用户名
|
|
PhoneNumber *string `json:"phoneNumber,optional"` // 手机号码
|
|
Email *string `json:"email,optional"` // 邮箱
|
|
Platform *string `json:"platform,optional"` // 社交平台
|
|
|
|
Password *string `json:"password,optional"` // 密码
|
|
ValidationCode *string `json:"validationCode,optional"` // 验证码
|
|
Code *string `json:"code,optional"` // 第三方平台code
|
|
}
|
|
|
|
// BindSocialReq 普通用户绑定社交账号请求
|
|
BindSocialReq {
|
|
Platform string `path:"platform"` // 平台类型 wechat | qq | weibo
|
|
Code string `form:"code"` // 第三方平台code
|
|
}
|
|
)
|
|
|
|
type (
|
|
RegisterResp {
|
|
*User
|
|
}
|
|
|
|
LoginResp {
|
|
*JwtToken
|
|
Id string `json:"id"`
|
|
}
|
|
)
|
|
|
|
@server(
|
|
group: user
|
|
prefix: api/user
|
|
)
|
|
service user_center-api {
|
|
@doc "用户注册"
|
|
@handler register
|
|
post /register (RegisterReq) returns (RegisterResp)
|
|
|
|
@doc "登录"
|
|
@handler login
|
|
post /login (LoginReq) returns (LoginResp)
|
|
}
|
|
|
|
@server(
|
|
jwt: Auth
|
|
group: user/admin
|
|
prefix: api/user
|
|
)
|
|
service user_center-api {
|
|
@doc "绑定社交账号"
|
|
@handler bindSocial
|
|
post /bind/:platform (BindSocialReq)
|
|
} |