-
Notifications
You must be signed in to change notification settings - Fork 0
API 接口 | API Interface
Heran Yang edited this page Mar 7, 2024
·
15 revisions
GET
没有实际作用,可以用作 Ping。
请求中不需附加任何数据。
返回一个常量字符串 xcpc-team-reg
。
任意用户。
GET
获得以 ID 为 key 的学院列表。
请求中不需附加任何数据。
返回一个 JSON 对象,格式为:
{
"<id_1>": "<school_name_1>",
"<id_2>": "<school_name_2>"
}
其中 <id>
为学院 ID,<school_name>
为学院名称,ID 与名称一一对应,并且在服务中 ID 是学院的唯一标识。
任意用户。
GET
获得在报名的比赛详细信息。
请求中不需附加任何数据。
type ContestInfo struct {
Name string `json:"name"`
StartTime string `json:"start_time"`
EndTime string `json:"end_time"`
Note string `json:"note"`
TshirtSize []string `json:"tshirt_size"`
}
其中:
-
name
:比赛名称 -
start_time
:报名开始时间 -
end_time
:报名结束时间 -
note
:注意事项 -
tshirt_size
:T 恤衫尺码
任意用户。
POST
验证用户邮箱。
type EmailVerificationReq struct {
StuID *string `json:"stuid,omitempty"`
Email *string `json:"email,omitempty"`
Type string `json:"type"`
}
其中:
-
stuid
:要验证的学号 -
email
:要验证的邮箱 -
type
:当前操作类型,和action
对齐。注册时为register
,找回密码时为reset
返回一个常量字符串 ok
。
任意用户。
POST
用户注册。
type UserRegisterReq struct {
Name string `json:"name"`
School int `json:"school"`
Email *string `json:"email,omitempty"`
StuID *string `json:"stuid,omitempty"`
Tshirt string `json:"tshirt"`
EmailToken string `json:"email_token"`
PwdToken string `json:"pwd_token"`
Action string `json:"action"`
}
其中:
-
name
:用户真实姓名 -
school
:用户学院 ID -
email
:用户邮箱 -
stuid
:用户学号 -
tshirt
:用户 T 恤衫大小 -
email_token
:邮箱验证码,用户需要先请求一个邮箱验证码 -
pwd_token
:用户密码 -
action
:当前在进行的操作,应为一常量字符串register
返回一个常量字符串 ok
。
任意用户。
POST
用户登录。
type UserLoginReq struct {
StuID *string `json:"stuid,omitempty"`
Email *string `json:"email,omitempty"`
PwdToken string `json:"pwd_token"`
}
其中:
-
stuid
:用户学号 -
email
:用户邮箱 -
pwd_token
:用户密码
返回一个常量字符串 ok
。同时后端会在此 Session 中保留 Session cookie,前端并无感知。
任意未登录的用户。
POST
用户重置密码。
type UserResetPwdReq struct {
StuID *string `json:"stuid,omitempty"`
Email *string `json:"email,omitempty"`
EmailToken string `json:"email_token"`
PwdToken string `json:"pwd_token"`
Action string `json:"action"`
}
其中:
-
stuid
:用户学号 -
email
:用户邮箱 -
email_token
:邮箱验证码,用户需要先请求一个邮箱验证码 -
pwd_token
:用户密码 -
action
:当前在进行的操作,应为一常量字符串reset
返回一个常量字符串 ok
。
任意未登录的用户。
POST
用户登出。
请求中不需附加任何数据。
返回一个常量字符串 ok
。
任意登录的用户。
GET
查看用户信息。
请求中不需附加任何数据。
type UserInfo struct {
Name string `json:"name"`
School int `json:"school"`
StuID string `json:"stuid"`
BelongTeam int64 `json:"teamid"`
Tshirt string `json:"tshirt"`
IsUESTCStu int `json:"is_uestc_stu"`
}
其中:
-
name
:用户真实姓名 -
school
:用户所属学院 -
stuid
:用户学号 -
teamid
:用户所属队伍编号,0
为未加入任何队伍 -
tshirt
:用户 T 恤衫大小 -
is_uestc_stu
:是否使用学号注册,1
表示是,0
表示不是
任意登录的用户。
GET
查看用户所属队伍信息。
请求中不需附加任何数据。
type TeamInfo struct {
TeamID int64 `json:"team_id"`
TeamName string `json:"team_name"`
TeamAccount string `json:"account"`
TeamPassword string `json:"password"`
InviteToken string `json:"invite_token"`
TeamMember []UserInfo `json:"member"`
MemberCnt int `json:"mem_cnt"`
TeamAffiliation string `json:"affiliation"`
}
其中:
-
team_id
:队伍 ID -
team_name
:队伍名称 -
account
:队伍账号 -
password
:队伍密码 -
invite_token
:队伍邀请码 -
member
:队伍中所有队员的信息 -
mem_cnt
:队伍中队员总数 -
affiliation
:队伍所属组织
任意登录的用户。
POST
用户修改个人信息。
type UserInfoModifyReq struct {
Name *string `gorm:"column:user_name" json:"name,omitempty"`
School *int `gorm:"column:school" json:"school,omitempty"`
Tshirt *string `gorm:"column:tshirt" json:"tshirt,omitempty"`
}
其中:
-
name
:用户真实姓名 -
school
:用户学院 -
tshirt
:用户 T 恤衫大小
返回一个常量字符串 ok
。
任意登录的用户。
POST
用户修改所属队伍信息。
type TeamInfoModifyReq struct {
TeamName *string `gorm:"column:team_name" json:"team_name,omitempty"`
TeamAffiliation *string `gorm:"column:team_affiliation" json:"team_affiliation,omitempty"`
}
其中:
-
team_name
:队伍名称 -
team_affiliation
:队伍组织
返回一个常量字符串 ok
。
任意登录的用户。
POST
用户新建一个队伍,并称为新队伍中的一个成员。
type TeamInfoModifyReq struct {
TeamName *string `gorm:"column:team_name" json:"team_name,omitempty"`
TeamAffiliation *string `gorm:"column:team_affiliation" json:"team_affiliation,omitempty"`
}
其中:
-
team_name
:队伍名称 -
team_affiliation
:队伍组织
返回如下类型的 JSON 数据:
type JoinTeamReq struct {
TeamID string `json:"team_id"`
InviteToken string `json:"invite_token"`
}
其中:
-
team_id
:新创建队伍的 ID -
invite_token
:新创建队伍的邀请码
任意登录的用户。
POST
用户加入某个队伍。
type JoinTeamRequest struct {
TeamID int64 `json:"team_id"`
InviteToken string `json:"invite_token"`
}
其中:
-
team_id
:要加入的队伍 ID -
invite_token
:加入队伍的邀请码
返回一个常量字符串 ok
。
任意登录的用户。
POST
用户退出自己所属的队伍。
请求中不需附加任何数据。
返回一个常量字符串 ok
。
任意登录的用户。