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

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