1721 lines
59 KiB
Go
1721 lines
59 KiB
Go
|
|
// Package docs Code generated by swaggo/swag. DO NOT EDIT
|
|||
|
|
package docs
|
|||
|
|
|
|||
|
|
import "github.com/swaggo/swag"
|
|||
|
|
|
|||
|
|
const docTemplate = `{
|
|||
|
|
"schemes": {{ marshal .Schemes }},
|
|||
|
|
"swagger": "2.0",
|
|||
|
|
"info": {
|
|||
|
|
"description": "{{escape .Description}}",
|
|||
|
|
"title": "{{.Title}}",
|
|||
|
|
"contact": {},
|
|||
|
|
"version": "{{.Version}}"
|
|||
|
|
},
|
|||
|
|
"host": "{{.Host}}",
|
|||
|
|
"basePath": "{{.BasePath}}",
|
|||
|
|
"paths": {
|
|||
|
|
"/api/v1/auth/login": {
|
|||
|
|
"post": {
|
|||
|
|
"description": "用户登录获取JWT Token,支持用户名或邮箱登录",
|
|||
|
|
"consumes": [
|
|||
|
|
"application/json"
|
|||
|
|
],
|
|||
|
|
"produces": [
|
|||
|
|
"application/json"
|
|||
|
|
],
|
|||
|
|
"tags": [
|
|||
|
|
"auth"
|
|||
|
|
],
|
|||
|
|
"summary": "用户登录",
|
|||
|
|
"parameters": [
|
|||
|
|
{
|
|||
|
|
"description": "登录信息(username字段支持用户名或邮箱)",
|
|||
|
|
"name": "request",
|
|||
|
|
"in": "body",
|
|||
|
|
"required": true,
|
|||
|
|
"schema": {
|
|||
|
|
"$ref": "#/definitions/carrotskin_internal_types.LoginRequest"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"responses": {
|
|||
|
|
"200": {
|
|||
|
|
"description": "登录成功",
|
|||
|
|
"schema": {
|
|||
|
|
"allOf": [
|
|||
|
|
{
|
|||
|
|
"$ref": "#/definitions/carrotskin_internal_model.Response"
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"type": "object",
|
|||
|
|
"properties": {
|
|||
|
|
"data": {
|
|||
|
|
"$ref": "#/definitions/carrotskin_internal_types.LoginResponse"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
]
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"400": {
|
|||
|
|
"description": "请求参数错误",
|
|||
|
|
"schema": {
|
|||
|
|
"$ref": "#/definitions/carrotskin_internal_model.ErrorResponse"
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"401": {
|
|||
|
|
"description": "登录失败",
|
|||
|
|
"schema": {
|
|||
|
|
"$ref": "#/definitions/carrotskin_internal_model.ErrorResponse"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"/api/v1/auth/register": {
|
|||
|
|
"post": {
|
|||
|
|
"description": "注册新用户账号",
|
|||
|
|
"consumes": [
|
|||
|
|
"application/json"
|
|||
|
|
],
|
|||
|
|
"produces": [
|
|||
|
|
"application/json"
|
|||
|
|
],
|
|||
|
|
"tags": [
|
|||
|
|
"auth"
|
|||
|
|
],
|
|||
|
|
"summary": "用户注册",
|
|||
|
|
"parameters": [
|
|||
|
|
{
|
|||
|
|
"description": "注册信息",
|
|||
|
|
"name": "request",
|
|||
|
|
"in": "body",
|
|||
|
|
"required": true,
|
|||
|
|
"schema": {
|
|||
|
|
"$ref": "#/definitions/carrotskin_internal_types.RegisterRequest"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"responses": {
|
|||
|
|
"200": {
|
|||
|
|
"description": "注册成功",
|
|||
|
|
"schema": {
|
|||
|
|
"$ref": "#/definitions/carrotskin_internal_model.Response"
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"400": {
|
|||
|
|
"description": "请求参数错误",
|
|||
|
|
"schema": {
|
|||
|
|
"$ref": "#/definitions/carrotskin_internal_model.ErrorResponse"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"/api/v1/auth/reset-password": {
|
|||
|
|
"post": {
|
|||
|
|
"description": "通过邮箱验证码重置密码",
|
|||
|
|
"consumes": [
|
|||
|
|
"application/json"
|
|||
|
|
],
|
|||
|
|
"produces": [
|
|||
|
|
"application/json"
|
|||
|
|
],
|
|||
|
|
"tags": [
|
|||
|
|
"auth"
|
|||
|
|
],
|
|||
|
|
"summary": "重置密码",
|
|||
|
|
"parameters": [
|
|||
|
|
{
|
|||
|
|
"description": "重置密码请求",
|
|||
|
|
"name": "request",
|
|||
|
|
"in": "body",
|
|||
|
|
"required": true,
|
|||
|
|
"schema": {
|
|||
|
|
"$ref": "#/definitions/carrotskin_internal_types.ResetPasswordRequest"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"responses": {
|
|||
|
|
"200": {
|
|||
|
|
"description": "重置成功",
|
|||
|
|
"schema": {
|
|||
|
|
"$ref": "#/definitions/carrotskin_internal_model.Response"
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"400": {
|
|||
|
|
"description": "请求参数错误",
|
|||
|
|
"schema": {
|
|||
|
|
"$ref": "#/definitions/carrotskin_internal_model.ErrorResponse"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"/api/v1/auth/send-code": {
|
|||
|
|
"post": {
|
|||
|
|
"description": "发送邮箱验证码(注册/重置密码/更换邮箱)",
|
|||
|
|
"consumes": [
|
|||
|
|
"application/json"
|
|||
|
|
],
|
|||
|
|
"produces": [
|
|||
|
|
"application/json"
|
|||
|
|
],
|
|||
|
|
"tags": [
|
|||
|
|
"auth"
|
|||
|
|
],
|
|||
|
|
"summary": "发送验证码",
|
|||
|
|
"parameters": [
|
|||
|
|
{
|
|||
|
|
"description": "发送验证码请求",
|
|||
|
|
"name": "request",
|
|||
|
|
"in": "body",
|
|||
|
|
"required": true,
|
|||
|
|
"schema": {
|
|||
|
|
"$ref": "#/definitions/carrotskin_internal_types.SendVerificationCodeRequest"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"responses": {
|
|||
|
|
"200": {
|
|||
|
|
"description": "发送成功",
|
|||
|
|
"schema": {
|
|||
|
|
"$ref": "#/definitions/carrotskin_internal_model.Response"
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"400": {
|
|||
|
|
"description": "请求参数错误",
|
|||
|
|
"schema": {
|
|||
|
|
"$ref": "#/definitions/carrotskin_internal_model.ErrorResponse"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"/api/v1/profile": {
|
|||
|
|
"get": {
|
|||
|
|
"security": [
|
|||
|
|
{
|
|||
|
|
"BearerAuth": []
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"description": "获取当前用户的所有档案",
|
|||
|
|
"consumes": [
|
|||
|
|
"application/json"
|
|||
|
|
],
|
|||
|
|
"produces": [
|
|||
|
|
"application/json"
|
|||
|
|
],
|
|||
|
|
"tags": [
|
|||
|
|
"profile"
|
|||
|
|
],
|
|||
|
|
"summary": "获取档案列表",
|
|||
|
|
"responses": {
|
|||
|
|
"200": {
|
|||
|
|
"description": "获取成功",
|
|||
|
|
"schema": {
|
|||
|
|
"$ref": "#/definitions/carrotskin_internal_model.Response"
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"401": {
|
|||
|
|
"description": "未授权",
|
|||
|
|
"schema": {
|
|||
|
|
"$ref": "#/definitions/carrotskin_internal_model.ErrorResponse"
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"500": {
|
|||
|
|
"description": "服务器错误",
|
|||
|
|
"schema": {
|
|||
|
|
"$ref": "#/definitions/carrotskin_internal_model.ErrorResponse"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"post": {
|
|||
|
|
"security": [
|
|||
|
|
{
|
|||
|
|
"BearerAuth": []
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"description": "创建新的Minecraft角色档案,UUID由后端自动生成",
|
|||
|
|
"consumes": [
|
|||
|
|
"application/json"
|
|||
|
|
],
|
|||
|
|
"produces": [
|
|||
|
|
"application/json"
|
|||
|
|
],
|
|||
|
|
"tags": [
|
|||
|
|
"profile"
|
|||
|
|
],
|
|||
|
|
"summary": "创建Minecraft档案",
|
|||
|
|
"parameters": [
|
|||
|
|
{
|
|||
|
|
"description": "档案信息(仅需提供角色名)",
|
|||
|
|
"name": "request",
|
|||
|
|
"in": "body",
|
|||
|
|
"required": true,
|
|||
|
|
"schema": {
|
|||
|
|
"$ref": "#/definitions/carrotskin_internal_types.CreateProfileRequest"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"responses": {
|
|||
|
|
"200": {
|
|||
|
|
"description": "创建成功,返回完整档案信息(含自动生成的UUID)",
|
|||
|
|
"schema": {
|
|||
|
|
"allOf": [
|
|||
|
|
{
|
|||
|
|
"$ref": "#/definitions/carrotskin_internal_model.Response"
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"type": "object",
|
|||
|
|
"properties": {
|
|||
|
|
"data": {
|
|||
|
|
"$ref": "#/definitions/carrotskin_internal_types.ProfileInfo"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
]
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"400": {
|
|||
|
|
"description": "请求参数错误或已达档案数量上限",
|
|||
|
|
"schema": {
|
|||
|
|
"$ref": "#/definitions/carrotskin_internal_model.ErrorResponse"
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"401": {
|
|||
|
|
"description": "未授权",
|
|||
|
|
"schema": {
|
|||
|
|
"$ref": "#/definitions/carrotskin_internal_model.ErrorResponse"
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"500": {
|
|||
|
|
"description": "服务器错误",
|
|||
|
|
"schema": {
|
|||
|
|
"$ref": "#/definitions/carrotskin_internal_model.ErrorResponse"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"/api/v1/profile/{uuid}": {
|
|||
|
|
"get": {
|
|||
|
|
"description": "根据UUID获取档案详细信息",
|
|||
|
|
"consumes": [
|
|||
|
|
"application/json"
|
|||
|
|
],
|
|||
|
|
"produces": [
|
|||
|
|
"application/json"
|
|||
|
|
],
|
|||
|
|
"tags": [
|
|||
|
|
"profile"
|
|||
|
|
],
|
|||
|
|
"summary": "获取档案详情",
|
|||
|
|
"parameters": [
|
|||
|
|
{
|
|||
|
|
"type": "string",
|
|||
|
|
"description": "档案UUID",
|
|||
|
|
"name": "uuid",
|
|||
|
|
"in": "path",
|
|||
|
|
"required": true
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"responses": {
|
|||
|
|
"200": {
|
|||
|
|
"description": "获取成功",
|
|||
|
|
"schema": {
|
|||
|
|
"$ref": "#/definitions/carrotskin_internal_model.Response"
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"404": {
|
|||
|
|
"description": "档案不存在",
|
|||
|
|
"schema": {
|
|||
|
|
"$ref": "#/definitions/carrotskin_internal_model.ErrorResponse"
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"500": {
|
|||
|
|
"description": "服务器错误",
|
|||
|
|
"schema": {
|
|||
|
|
"$ref": "#/definitions/carrotskin_internal_model.ErrorResponse"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"put": {
|
|||
|
|
"security": [
|
|||
|
|
{
|
|||
|
|
"BearerAuth": []
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"description": "更新档案信息",
|
|||
|
|
"consumes": [
|
|||
|
|
"application/json"
|
|||
|
|
],
|
|||
|
|
"produces": [
|
|||
|
|
"application/json"
|
|||
|
|
],
|
|||
|
|
"tags": [
|
|||
|
|
"profile"
|
|||
|
|
],
|
|||
|
|
"summary": "更新档案",
|
|||
|
|
"parameters": [
|
|||
|
|
{
|
|||
|
|
"type": "string",
|
|||
|
|
"description": "档案UUID",
|
|||
|
|
"name": "uuid",
|
|||
|
|
"in": "path",
|
|||
|
|
"required": true
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"description": "更新信息",
|
|||
|
|
"name": "request",
|
|||
|
|
"in": "body",
|
|||
|
|
"required": true,
|
|||
|
|
"schema": {
|
|||
|
|
"$ref": "#/definitions/carrotskin_internal_types.UpdateProfileRequest"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"responses": {
|
|||
|
|
"200": {
|
|||
|
|
"description": "更新成功",
|
|||
|
|
"schema": {
|
|||
|
|
"$ref": "#/definitions/carrotskin_internal_model.Response"
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"400": {
|
|||
|
|
"description": "请求参数错误",
|
|||
|
|
"schema": {
|
|||
|
|
"$ref": "#/definitions/carrotskin_internal_model.ErrorResponse"
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"401": {
|
|||
|
|
"description": "未授权",
|
|||
|
|
"schema": {
|
|||
|
|
"$ref": "#/definitions/carrotskin_internal_model.ErrorResponse"
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"403": {
|
|||
|
|
"description": "无权操作",
|
|||
|
|
"schema": {
|
|||
|
|
"$ref": "#/definitions/carrotskin_internal_model.ErrorResponse"
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"404": {
|
|||
|
|
"description": "档案不存在",
|
|||
|
|
"schema": {
|
|||
|
|
"$ref": "#/definitions/carrotskin_internal_model.ErrorResponse"
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"500": {
|
|||
|
|
"description": "服务器错误",
|
|||
|
|
"schema": {
|
|||
|
|
"$ref": "#/definitions/carrotskin_internal_model.ErrorResponse"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"delete": {
|
|||
|
|
"security": [
|
|||
|
|
{
|
|||
|
|
"BearerAuth": []
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"description": "删除指定的Minecraft档案",
|
|||
|
|
"consumes": [
|
|||
|
|
"application/json"
|
|||
|
|
],
|
|||
|
|
"produces": [
|
|||
|
|
"application/json"
|
|||
|
|
],
|
|||
|
|
"tags": [
|
|||
|
|
"profile"
|
|||
|
|
],
|
|||
|
|
"summary": "删除档案",
|
|||
|
|
"parameters": [
|
|||
|
|
{
|
|||
|
|
"type": "string",
|
|||
|
|
"description": "档案UUID",
|
|||
|
|
"name": "uuid",
|
|||
|
|
"in": "path",
|
|||
|
|
"required": true
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"responses": {
|
|||
|
|
"200": {
|
|||
|
|
"description": "删除成功",
|
|||
|
|
"schema": {
|
|||
|
|
"$ref": "#/definitions/carrotskin_internal_model.Response"
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"401": {
|
|||
|
|
"description": "未授权",
|
|||
|
|
"schema": {
|
|||
|
|
"$ref": "#/definitions/carrotskin_internal_model.ErrorResponse"
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"403": {
|
|||
|
|
"description": "无权操作",
|
|||
|
|
"schema": {
|
|||
|
|
"$ref": "#/definitions/carrotskin_internal_model.ErrorResponse"
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"404": {
|
|||
|
|
"description": "档案不存在",
|
|||
|
|
"schema": {
|
|||
|
|
"$ref": "#/definitions/carrotskin_internal_model.ErrorResponse"
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"500": {
|
|||
|
|
"description": "服务器错误",
|
|||
|
|
"schema": {
|
|||
|
|
"$ref": "#/definitions/carrotskin_internal_model.ErrorResponse"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"/api/v1/profile/{uuid}/activate": {
|
|||
|
|
"post": {
|
|||
|
|
"security": [
|
|||
|
|
{
|
|||
|
|
"BearerAuth": []
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"description": "将指定档案设置为活跃状态",
|
|||
|
|
"consumes": [
|
|||
|
|
"application/json"
|
|||
|
|
],
|
|||
|
|
"produces": [
|
|||
|
|
"application/json"
|
|||
|
|
],
|
|||
|
|
"tags": [
|
|||
|
|
"profile"
|
|||
|
|
],
|
|||
|
|
"summary": "设置活跃档案",
|
|||
|
|
"parameters": [
|
|||
|
|
{
|
|||
|
|
"type": "string",
|
|||
|
|
"description": "档案UUID",
|
|||
|
|
"name": "uuid",
|
|||
|
|
"in": "path",
|
|||
|
|
"required": true
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"responses": {
|
|||
|
|
"200": {
|
|||
|
|
"description": "设置成功",
|
|||
|
|
"schema": {
|
|||
|
|
"$ref": "#/definitions/carrotskin_internal_model.Response"
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"401": {
|
|||
|
|
"description": "未授权",
|
|||
|
|
"schema": {
|
|||
|
|
"$ref": "#/definitions/carrotskin_internal_model.ErrorResponse"
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"403": {
|
|||
|
|
"description": "无权操作",
|
|||
|
|
"schema": {
|
|||
|
|
"$ref": "#/definitions/carrotskin_internal_model.ErrorResponse"
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"404": {
|
|||
|
|
"description": "档案不存在",
|
|||
|
|
"schema": {
|
|||
|
|
"$ref": "#/definitions/carrotskin_internal_model.ErrorResponse"
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"500": {
|
|||
|
|
"description": "服务器错误",
|
|||
|
|
"schema": {
|
|||
|
|
"$ref": "#/definitions/carrotskin_internal_model.ErrorResponse"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"/api/v1/system/config": {
|
|||
|
|
"get": {
|
|||
|
|
"description": "获取公开的系统配置信息",
|
|||
|
|
"consumes": [
|
|||
|
|
"application/json"
|
|||
|
|
],
|
|||
|
|
"produces": [
|
|||
|
|
"application/json"
|
|||
|
|
],
|
|||
|
|
"tags": [
|
|||
|
|
"system"
|
|||
|
|
],
|
|||
|
|
"summary": "获取系统配置",
|
|||
|
|
"responses": {
|
|||
|
|
"200": {
|
|||
|
|
"description": "获取成功",
|
|||
|
|
"schema": {
|
|||
|
|
"$ref": "#/definitions/carrotskin_internal_model.Response"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"/api/v1/texture": {
|
|||
|
|
"get": {
|
|||
|
|
"description": "根据关键词和类型搜索材质",
|
|||
|
|
"consumes": [
|
|||
|
|
"application/json"
|
|||
|
|
],
|
|||
|
|
"produces": [
|
|||
|
|
"application/json"
|
|||
|
|
],
|
|||
|
|
"tags": [
|
|||
|
|
"texture"
|
|||
|
|
],
|
|||
|
|
"summary": "搜索材质",
|
|||
|
|
"parameters": [
|
|||
|
|
{
|
|||
|
|
"type": "string",
|
|||
|
|
"description": "关键词",
|
|||
|
|
"name": "keyword",
|
|||
|
|
"in": "query"
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"type": "string",
|
|||
|
|
"description": "材质类型(SKIN/CAPE)",
|
|||
|
|
"name": "type",
|
|||
|
|
"in": "query"
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"type": "boolean",
|
|||
|
|
"description": "只看公开材质",
|
|||
|
|
"name": "public_only",
|
|||
|
|
"in": "query"
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"type": "integer",
|
|||
|
|
"default": 1,
|
|||
|
|
"description": "页码",
|
|||
|
|
"name": "page",
|
|||
|
|
"in": "query"
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"type": "integer",
|
|||
|
|
"default": 20,
|
|||
|
|
"description": "每页数量",
|
|||
|
|
"name": "page_size",
|
|||
|
|
"in": "query"
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"responses": {
|
|||
|
|
"200": {
|
|||
|
|
"description": "搜索成功",
|
|||
|
|
"schema": {
|
|||
|
|
"$ref": "#/definitions/carrotskin_internal_model.PaginationResponse"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"post": {
|
|||
|
|
"security": [
|
|||
|
|
{
|
|||
|
|
"BearerAuth": []
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"description": "文件上传完成后,创建材质记录到数据库",
|
|||
|
|
"consumes": [
|
|||
|
|
"application/json"
|
|||
|
|
],
|
|||
|
|
"produces": [
|
|||
|
|
"application/json"
|
|||
|
|
],
|
|||
|
|
"tags": [
|
|||
|
|
"texture"
|
|||
|
|
],
|
|||
|
|
"summary": "创建材质记录",
|
|||
|
|
"parameters": [
|
|||
|
|
{
|
|||
|
|
"description": "创建材质请求",
|
|||
|
|
"name": "request",
|
|||
|
|
"in": "body",
|
|||
|
|
"required": true,
|
|||
|
|
"schema": {
|
|||
|
|
"$ref": "#/definitions/carrotskin_internal_types.CreateTextureRequest"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"responses": {
|
|||
|
|
"200": {
|
|||
|
|
"description": "创建成功",
|
|||
|
|
"schema": {
|
|||
|
|
"$ref": "#/definitions/carrotskin_internal_model.Response"
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"400": {
|
|||
|
|
"description": "请求参数错误",
|
|||
|
|
"schema": {
|
|||
|
|
"$ref": "#/definitions/carrotskin_internal_model.ErrorResponse"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"/api/v1/texture/favorites": {
|
|||
|
|
"get": {
|
|||
|
|
"security": [
|
|||
|
|
{
|
|||
|
|
"BearerAuth": []
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"description": "获取当前用户收藏的所有材质",
|
|||
|
|
"consumes": [
|
|||
|
|
"application/json"
|
|||
|
|
],
|
|||
|
|
"produces": [
|
|||
|
|
"application/json"
|
|||
|
|
],
|
|||
|
|
"tags": [
|
|||
|
|
"texture"
|
|||
|
|
],
|
|||
|
|
"summary": "获取用户收藏的材质列表",
|
|||
|
|
"parameters": [
|
|||
|
|
{
|
|||
|
|
"type": "integer",
|
|||
|
|
"default": 1,
|
|||
|
|
"description": "页码",
|
|||
|
|
"name": "page",
|
|||
|
|
"in": "query"
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"type": "integer",
|
|||
|
|
"default": 20,
|
|||
|
|
"description": "每页数量",
|
|||
|
|
"name": "page_size",
|
|||
|
|
"in": "query"
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"responses": {
|
|||
|
|
"200": {
|
|||
|
|
"description": "获取成功",
|
|||
|
|
"schema": {
|
|||
|
|
"$ref": "#/definitions/carrotskin_internal_model.PaginationResponse"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"/api/v1/texture/my": {
|
|||
|
|
"get": {
|
|||
|
|
"security": [
|
|||
|
|
{
|
|||
|
|
"BearerAuth": []
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"description": "获取当前用户上传的所有材质",
|
|||
|
|
"consumes": [
|
|||
|
|
"application/json"
|
|||
|
|
],
|
|||
|
|
"produces": [
|
|||
|
|
"application/json"
|
|||
|
|
],
|
|||
|
|
"tags": [
|
|||
|
|
"texture"
|
|||
|
|
],
|
|||
|
|
"summary": "获取用户上传的材质列表",
|
|||
|
|
"parameters": [
|
|||
|
|
{
|
|||
|
|
"type": "integer",
|
|||
|
|
"default": 1,
|
|||
|
|
"description": "页码",
|
|||
|
|
"name": "page",
|
|||
|
|
"in": "query"
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"type": "integer",
|
|||
|
|
"default": 20,
|
|||
|
|
"description": "每页数量",
|
|||
|
|
"name": "page_size",
|
|||
|
|
"in": "query"
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"responses": {
|
|||
|
|
"200": {
|
|||
|
|
"description": "获取成功",
|
|||
|
|
"schema": {
|
|||
|
|
"$ref": "#/definitions/carrotskin_internal_model.PaginationResponse"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"/api/v1/texture/upload-url": {
|
|||
|
|
"post": {
|
|||
|
|
"security": [
|
|||
|
|
{
|
|||
|
|
"BearerAuth": []
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"description": "生成预签名URL用于上传材质文件",
|
|||
|
|
"consumes": [
|
|||
|
|
"application/json"
|
|||
|
|
],
|
|||
|
|
"produces": [
|
|||
|
|
"application/json"
|
|||
|
|
],
|
|||
|
|
"tags": [
|
|||
|
|
"texture"
|
|||
|
|
],
|
|||
|
|
"summary": "生成材质上传URL",
|
|||
|
|
"parameters": [
|
|||
|
|
{
|
|||
|
|
"description": "上传URL请求",
|
|||
|
|
"name": "request",
|
|||
|
|
"in": "body",
|
|||
|
|
"required": true,
|
|||
|
|
"schema": {
|
|||
|
|
"$ref": "#/definitions/carrotskin_internal_types.GenerateTextureUploadURLRequest"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"responses": {
|
|||
|
|
"200": {
|
|||
|
|
"description": "生成成功",
|
|||
|
|
"schema": {
|
|||
|
|
"$ref": "#/definitions/carrotskin_internal_model.Response"
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"400": {
|
|||
|
|
"description": "请求参数错误",
|
|||
|
|
"schema": {
|
|||
|
|
"$ref": "#/definitions/carrotskin_internal_model.ErrorResponse"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"/api/v1/texture/{id}": {
|
|||
|
|
"get": {
|
|||
|
|
"description": "根据ID获取材质详细信息",
|
|||
|
|
"consumes": [
|
|||
|
|
"application/json"
|
|||
|
|
],
|
|||
|
|
"produces": [
|
|||
|
|
"application/json"
|
|||
|
|
],
|
|||
|
|
"tags": [
|
|||
|
|
"texture"
|
|||
|
|
],
|
|||
|
|
"summary": "获取材质详情",
|
|||
|
|
"parameters": [
|
|||
|
|
{
|
|||
|
|
"type": "integer",
|
|||
|
|
"description": "材质ID",
|
|||
|
|
"name": "id",
|
|||
|
|
"in": "path",
|
|||
|
|
"required": true
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"responses": {
|
|||
|
|
"200": {
|
|||
|
|
"description": "获取成功",
|
|||
|
|
"schema": {
|
|||
|
|
"$ref": "#/definitions/carrotskin_internal_model.Response"
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"404": {
|
|||
|
|
"description": "材质不存在",
|
|||
|
|
"schema": {
|
|||
|
|
"$ref": "#/definitions/carrotskin_internal_model.ErrorResponse"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"put": {
|
|||
|
|
"security": [
|
|||
|
|
{
|
|||
|
|
"BearerAuth": []
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"description": "更新材质信息(仅上传者可操作)",
|
|||
|
|
"consumes": [
|
|||
|
|
"application/json"
|
|||
|
|
],
|
|||
|
|
"produces": [
|
|||
|
|
"application/json"
|
|||
|
|
],
|
|||
|
|
"tags": [
|
|||
|
|
"texture"
|
|||
|
|
],
|
|||
|
|
"summary": "更新材质",
|
|||
|
|
"parameters": [
|
|||
|
|
{
|
|||
|
|
"type": "integer",
|
|||
|
|
"description": "材质ID",
|
|||
|
|
"name": "id",
|
|||
|
|
"in": "path",
|
|||
|
|
"required": true
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"description": "更新材质请求",
|
|||
|
|
"name": "request",
|
|||
|
|
"in": "body",
|
|||
|
|
"required": true,
|
|||
|
|
"schema": {
|
|||
|
|
"$ref": "#/definitions/carrotskin_internal_types.UpdateTextureRequest"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"responses": {
|
|||
|
|
"200": {
|
|||
|
|
"description": "更新成功",
|
|||
|
|
"schema": {
|
|||
|
|
"$ref": "#/definitions/carrotskin_internal_model.Response"
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"403": {
|
|||
|
|
"description": "无权操作",
|
|||
|
|
"schema": {
|
|||
|
|
"$ref": "#/definitions/carrotskin_internal_model.ErrorResponse"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"delete": {
|
|||
|
|
"security": [
|
|||
|
|
{
|
|||
|
|
"BearerAuth": []
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"description": "删除材质(软删除,仅上传者可操作)",
|
|||
|
|
"consumes": [
|
|||
|
|
"application/json"
|
|||
|
|
],
|
|||
|
|
"produces": [
|
|||
|
|
"application/json"
|
|||
|
|
],
|
|||
|
|
"tags": [
|
|||
|
|
"texture"
|
|||
|
|
],
|
|||
|
|
"summary": "删除材质",
|
|||
|
|
"parameters": [
|
|||
|
|
{
|
|||
|
|
"type": "integer",
|
|||
|
|
"description": "材质ID",
|
|||
|
|
"name": "id",
|
|||
|
|
"in": "path",
|
|||
|
|
"required": true
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"responses": {
|
|||
|
|
"200": {
|
|||
|
|
"description": "删除成功",
|
|||
|
|
"schema": {
|
|||
|
|
"$ref": "#/definitions/carrotskin_internal_model.Response"
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"403": {
|
|||
|
|
"description": "无权操作",
|
|||
|
|
"schema": {
|
|||
|
|
"$ref": "#/definitions/carrotskin_internal_model.ErrorResponse"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"/api/v1/texture/{id}/favorite": {
|
|||
|
|
"post": {
|
|||
|
|
"security": [
|
|||
|
|
{
|
|||
|
|
"BearerAuth": []
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"description": "收藏或取消收藏材质",
|
|||
|
|
"consumes": [
|
|||
|
|
"application/json"
|
|||
|
|
],
|
|||
|
|
"produces": [
|
|||
|
|
"application/json"
|
|||
|
|
],
|
|||
|
|
"tags": [
|
|||
|
|
"texture"
|
|||
|
|
],
|
|||
|
|
"summary": "切换收藏状态",
|
|||
|
|
"parameters": [
|
|||
|
|
{
|
|||
|
|
"type": "integer",
|
|||
|
|
"description": "材质ID",
|
|||
|
|
"name": "id",
|
|||
|
|
"in": "path",
|
|||
|
|
"required": true
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"responses": {
|
|||
|
|
"200": {
|
|||
|
|
"description": "切换成功",
|
|||
|
|
"schema": {
|
|||
|
|
"$ref": "#/definitions/carrotskin_internal_model.Response"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"/api/v1/user/avatar": {
|
|||
|
|
"put": {
|
|||
|
|
"security": [
|
|||
|
|
{
|
|||
|
|
"BearerAuth": []
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"description": "上传完成后更新用户的头像URL到数据库",
|
|||
|
|
"consumes": [
|
|||
|
|
"application/json"
|
|||
|
|
],
|
|||
|
|
"produces": [
|
|||
|
|
"application/json"
|
|||
|
|
],
|
|||
|
|
"tags": [
|
|||
|
|
"user"
|
|||
|
|
],
|
|||
|
|
"summary": "更新头像URL",
|
|||
|
|
"parameters": [
|
|||
|
|
{
|
|||
|
|
"type": "string",
|
|||
|
|
"description": "头像URL",
|
|||
|
|
"name": "avatar_url",
|
|||
|
|
"in": "query",
|
|||
|
|
"required": true
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"responses": {
|
|||
|
|
"200": {
|
|||
|
|
"description": "更新成功",
|
|||
|
|
"schema": {
|
|||
|
|
"$ref": "#/definitions/carrotskin_internal_model.Response"
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"400": {
|
|||
|
|
"description": "请求参数错误",
|
|||
|
|
"schema": {
|
|||
|
|
"$ref": "#/definitions/carrotskin_internal_model.ErrorResponse"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"/api/v1/user/avatar/upload-url": {
|
|||
|
|
"post": {
|
|||
|
|
"security": [
|
|||
|
|
{
|
|||
|
|
"BearerAuth": []
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"description": "生成预签名URL用于上传用户头像",
|
|||
|
|
"consumes": [
|
|||
|
|
"application/json"
|
|||
|
|
],
|
|||
|
|
"produces": [
|
|||
|
|
"application/json"
|
|||
|
|
],
|
|||
|
|
"tags": [
|
|||
|
|
"user"
|
|||
|
|
],
|
|||
|
|
"summary": "生成头像上传URL",
|
|||
|
|
"parameters": [
|
|||
|
|
{
|
|||
|
|
"description": "文件名",
|
|||
|
|
"name": "request",
|
|||
|
|
"in": "body",
|
|||
|
|
"required": true,
|
|||
|
|
"schema": {
|
|||
|
|
"$ref": "#/definitions/carrotskin_internal_types.GenerateAvatarUploadURLRequest"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"responses": {
|
|||
|
|
"200": {
|
|||
|
|
"description": "生成成功",
|
|||
|
|
"schema": {
|
|||
|
|
"$ref": "#/definitions/carrotskin_internal_model.Response"
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"400": {
|
|||
|
|
"description": "请求参数错误",
|
|||
|
|
"schema": {
|
|||
|
|
"$ref": "#/definitions/carrotskin_internal_model.ErrorResponse"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"/api/v1/user/change-email": {
|
|||
|
|
"post": {
|
|||
|
|
"security": [
|
|||
|
|
{
|
|||
|
|
"BearerAuth": []
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"description": "通过验证码更换用户邮箱",
|
|||
|
|
"consumes": [
|
|||
|
|
"application/json"
|
|||
|
|
],
|
|||
|
|
"produces": [
|
|||
|
|
"application/json"
|
|||
|
|
],
|
|||
|
|
"tags": [
|
|||
|
|
"user"
|
|||
|
|
],
|
|||
|
|
"summary": "更换邮箱",
|
|||
|
|
"parameters": [
|
|||
|
|
{
|
|||
|
|
"description": "更换邮箱请求",
|
|||
|
|
"name": "request",
|
|||
|
|
"in": "body",
|
|||
|
|
"required": true,
|
|||
|
|
"schema": {
|
|||
|
|
"$ref": "#/definitions/carrotskin_internal_types.ChangeEmailRequest"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"responses": {
|
|||
|
|
"200": {
|
|||
|
|
"description": "更换成功",
|
|||
|
|
"schema": {
|
|||
|
|
"allOf": [
|
|||
|
|
{
|
|||
|
|
"$ref": "#/definitions/carrotskin_internal_model.Response"
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"type": "object",
|
|||
|
|
"properties": {
|
|||
|
|
"data": {
|
|||
|
|
"$ref": "#/definitions/carrotskin_internal_types.UserInfo"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
]
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"400": {
|
|||
|
|
"description": "请求参数错误",
|
|||
|
|
"schema": {
|
|||
|
|
"$ref": "#/definitions/carrotskin_internal_model.ErrorResponse"
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"401": {
|
|||
|
|
"description": "未授权",
|
|||
|
|
"schema": {
|
|||
|
|
"$ref": "#/definitions/carrotskin_internal_model.ErrorResponse"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"/api/v1/user/profile": {
|
|||
|
|
"get": {
|
|||
|
|
"security": [
|
|||
|
|
{
|
|||
|
|
"BearerAuth": []
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"description": "获取当前登录用户的详细信息",
|
|||
|
|
"consumes": [
|
|||
|
|
"application/json"
|
|||
|
|
],
|
|||
|
|
"produces": [
|
|||
|
|
"application/json"
|
|||
|
|
],
|
|||
|
|
"tags": [
|
|||
|
|
"user"
|
|||
|
|
],
|
|||
|
|
"summary": "获取用户信息",
|
|||
|
|
"responses": {
|
|||
|
|
"200": {
|
|||
|
|
"description": "获取成功",
|
|||
|
|
"schema": {
|
|||
|
|
"$ref": "#/definitions/carrotskin_internal_model.Response"
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"401": {
|
|||
|
|
"description": "未授权",
|
|||
|
|
"schema": {
|
|||
|
|
"$ref": "#/definitions/carrotskin_internal_model.ErrorResponse"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"put": {
|
|||
|
|
"security": [
|
|||
|
|
{
|
|||
|
|
"BearerAuth": []
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"description": "更新当前登录用户的头像和密码(修改邮箱请使用 /change-email 接口)",
|
|||
|
|
"consumes": [
|
|||
|
|
"application/json"
|
|||
|
|
],
|
|||
|
|
"produces": [
|
|||
|
|
"application/json"
|
|||
|
|
],
|
|||
|
|
"tags": [
|
|||
|
|
"user"
|
|||
|
|
],
|
|||
|
|
"summary": "更新用户信息",
|
|||
|
|
"parameters": [
|
|||
|
|
{
|
|||
|
|
"description": "更新信息(修改密码时需同时提供old_password和new_password)",
|
|||
|
|
"name": "request",
|
|||
|
|
"in": "body",
|
|||
|
|
"required": true,
|
|||
|
|
"schema": {
|
|||
|
|
"$ref": "#/definitions/carrotskin_internal_types.UpdateUserRequest"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"responses": {
|
|||
|
|
"200": {
|
|||
|
|
"description": "更新成功",
|
|||
|
|
"schema": {
|
|||
|
|
"allOf": [
|
|||
|
|
{
|
|||
|
|
"$ref": "#/definitions/carrotskin_internal_model.Response"
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"type": "object",
|
|||
|
|
"properties": {
|
|||
|
|
"data": {
|
|||
|
|
"$ref": "#/definitions/carrotskin_internal_types.UserInfo"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
]
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"400": {
|
|||
|
|
"description": "请求参数错误",
|
|||
|
|
"schema": {
|
|||
|
|
"$ref": "#/definitions/carrotskin_internal_model.ErrorResponse"
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"401": {
|
|||
|
|
"description": "未授权",
|
|||
|
|
"schema": {
|
|||
|
|
"$ref": "#/definitions/carrotskin_internal_model.ErrorResponse"
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"404": {
|
|||
|
|
"description": "用户不存在",
|
|||
|
|
"schema": {
|
|||
|
|
"$ref": "#/definitions/carrotskin_internal_model.ErrorResponse"
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"500": {
|
|||
|
|
"description": "服务器错误",
|
|||
|
|
"schema": {
|
|||
|
|
"$ref": "#/definitions/carrotskin_internal_model.ErrorResponse"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"/health": {
|
|||
|
|
"get": {
|
|||
|
|
"description": "检查服务是否正常运行",
|
|||
|
|
"consumes": [
|
|||
|
|
"application/json"
|
|||
|
|
],
|
|||
|
|
"produces": [
|
|||
|
|
"application/json"
|
|||
|
|
],
|
|||
|
|
"tags": [
|
|||
|
|
"system"
|
|||
|
|
],
|
|||
|
|
"summary": "健康检查",
|
|||
|
|
"responses": {
|
|||
|
|
"200": {
|
|||
|
|
"description": "成功",
|
|||
|
|
"schema": {
|
|||
|
|
"type": "object",
|
|||
|
|
"additionalProperties": true
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"definitions": {
|
|||
|
|
"carrotskin_internal_model.ErrorResponse": {
|
|||
|
|
"type": "object",
|
|||
|
|
"properties": {
|
|||
|
|
"code": {
|
|||
|
|
"type": "integer"
|
|||
|
|
},
|
|||
|
|
"error": {
|
|||
|
|
"description": "详细错误信息(仅开发环境)",
|
|||
|
|
"type": "string"
|
|||
|
|
},
|
|||
|
|
"message": {
|
|||
|
|
"type": "string"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"carrotskin_internal_model.PaginationResponse": {
|
|||
|
|
"type": "object",
|
|||
|
|
"properties": {
|
|||
|
|
"code": {
|
|||
|
|
"type": "integer"
|
|||
|
|
},
|
|||
|
|
"data": {},
|
|||
|
|
"message": {
|
|||
|
|
"type": "string"
|
|||
|
|
},
|
|||
|
|
"page": {
|
|||
|
|
"description": "当前页码",
|
|||
|
|
"type": "integer"
|
|||
|
|
},
|
|||
|
|
"per_page": {
|
|||
|
|
"description": "每页数量",
|
|||
|
|
"type": "integer"
|
|||
|
|
},
|
|||
|
|
"total": {
|
|||
|
|
"description": "总记录数",
|
|||
|
|
"type": "integer"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"carrotskin_internal_model.Response": {
|
|||
|
|
"type": "object",
|
|||
|
|
"properties": {
|
|||
|
|
"code": {
|
|||
|
|
"description": "业务状态码",
|
|||
|
|
"type": "integer"
|
|||
|
|
},
|
|||
|
|
"data": {
|
|||
|
|
"description": "响应数据"
|
|||
|
|
},
|
|||
|
|
"message": {
|
|||
|
|
"description": "响应消息",
|
|||
|
|
"type": "string"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"carrotskin_internal_types.ChangeEmailRequest": {
|
|||
|
|
"type": "object",
|
|||
|
|
"required": [
|
|||
|
|
"new_email",
|
|||
|
|
"verification_code"
|
|||
|
|
],
|
|||
|
|
"properties": {
|
|||
|
|
"new_email": {
|
|||
|
|
"type": "string",
|
|||
|
|
"example": "newemail@example.com"
|
|||
|
|
},
|
|||
|
|
"verification_code": {
|
|||
|
|
"type": "string",
|
|||
|
|
"example": "123456"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"carrotskin_internal_types.CreateProfileRequest": {
|
|||
|
|
"type": "object",
|
|||
|
|
"required": [
|
|||
|
|
"name"
|
|||
|
|
],
|
|||
|
|
"properties": {
|
|||
|
|
"name": {
|
|||
|
|
"type": "string",
|
|||
|
|
"maxLength": 16,
|
|||
|
|
"minLength": 1,
|
|||
|
|
"example": "PlayerName"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"carrotskin_internal_types.CreateTextureRequest": {
|
|||
|
|
"type": "object",
|
|||
|
|
"required": [
|
|||
|
|
"hash",
|
|||
|
|
"name",
|
|||
|
|
"size",
|
|||
|
|
"type",
|
|||
|
|
"url"
|
|||
|
|
],
|
|||
|
|
"properties": {
|
|||
|
|
"description": {
|
|||
|
|
"type": "string",
|
|||
|
|
"maxLength": 500,
|
|||
|
|
"example": "A very cool skin"
|
|||
|
|
},
|
|||
|
|
"hash": {
|
|||
|
|
"type": "string",
|
|||
|
|
"example": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
|
|||
|
|
},
|
|||
|
|
"is_public": {
|
|||
|
|
"type": "boolean",
|
|||
|
|
"example": true
|
|||
|
|
},
|
|||
|
|
"is_slim": {
|
|||
|
|
"description": "Alex模型(细臂)为true,Steve模型(粗臂)为false",
|
|||
|
|
"type": "boolean",
|
|||
|
|
"example": false
|
|||
|
|
},
|
|||
|
|
"name": {
|
|||
|
|
"type": "string",
|
|||
|
|
"maxLength": 100,
|
|||
|
|
"minLength": 1,
|
|||
|
|
"example": "My Cool Skin"
|
|||
|
|
},
|
|||
|
|
"size": {
|
|||
|
|
"type": "integer",
|
|||
|
|
"minimum": 1,
|
|||
|
|
"example": 2048
|
|||
|
|
},
|
|||
|
|
"type": {
|
|||
|
|
"enum": [
|
|||
|
|
"SKIN",
|
|||
|
|
"CAPE"
|
|||
|
|
],
|
|||
|
|
"allOf": [
|
|||
|
|
{
|
|||
|
|
"$ref": "#/definitions/carrotskin_internal_types.TextureType"
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"example": "SKIN"
|
|||
|
|
},
|
|||
|
|
"url": {
|
|||
|
|
"type": "string",
|
|||
|
|
"example": "https://rustfs.example.com/textures/user_1/skin/xxx.png"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"carrotskin_internal_types.GenerateAvatarUploadURLRequest": {
|
|||
|
|
"type": "object",
|
|||
|
|
"required": [
|
|||
|
|
"file_name"
|
|||
|
|
],
|
|||
|
|
"properties": {
|
|||
|
|
"file_name": {
|
|||
|
|
"type": "string",
|
|||
|
|
"example": "avatar.png"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"carrotskin_internal_types.GenerateTextureUploadURLRequest": {
|
|||
|
|
"type": "object",
|
|||
|
|
"required": [
|
|||
|
|
"file_name",
|
|||
|
|
"texture_type"
|
|||
|
|
],
|
|||
|
|
"properties": {
|
|||
|
|
"file_name": {
|
|||
|
|
"type": "string",
|
|||
|
|
"example": "skin.png"
|
|||
|
|
},
|
|||
|
|
"texture_type": {
|
|||
|
|
"enum": [
|
|||
|
|
"SKIN",
|
|||
|
|
"CAPE"
|
|||
|
|
],
|
|||
|
|
"allOf": [
|
|||
|
|
{
|
|||
|
|
"$ref": "#/definitions/carrotskin_internal_types.TextureType"
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"example": "SKIN"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"carrotskin_internal_types.LoginRequest": {
|
|||
|
|
"type": "object",
|
|||
|
|
"required": [
|
|||
|
|
"password",
|
|||
|
|
"username"
|
|||
|
|
],
|
|||
|
|
"properties": {
|
|||
|
|
"password": {
|
|||
|
|
"type": "string",
|
|||
|
|
"maxLength": 128,
|
|||
|
|
"minLength": 6,
|
|||
|
|
"example": "password123"
|
|||
|
|
},
|
|||
|
|
"username": {
|
|||
|
|
"description": "支持用户名或邮箱",
|
|||
|
|
"type": "string",
|
|||
|
|
"example": "testuser"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"carrotskin_internal_types.LoginResponse": {
|
|||
|
|
"type": "object",
|
|||
|
|
"properties": {
|
|||
|
|
"token": {
|
|||
|
|
"type": "string"
|
|||
|
|
},
|
|||
|
|
"user_info": {
|
|||
|
|
"$ref": "#/definitions/carrotskin_internal_types.UserInfo"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"carrotskin_internal_types.ProfileInfo": {
|
|||
|
|
"type": "object",
|
|||
|
|
"properties": {
|
|||
|
|
"cape_id": {
|
|||
|
|
"type": "integer",
|
|||
|
|
"example": 2
|
|||
|
|
},
|
|||
|
|
"created_at": {
|
|||
|
|
"type": "string",
|
|||
|
|
"example": "2025-10-01T10:00:00Z"
|
|||
|
|
},
|
|||
|
|
"is_active": {
|
|||
|
|
"type": "boolean",
|
|||
|
|
"example": true
|
|||
|
|
},
|
|||
|
|
"last_used_at": {
|
|||
|
|
"type": "string",
|
|||
|
|
"example": "2025-10-01T12:00:00Z"
|
|||
|
|
},
|
|||
|
|
"name": {
|
|||
|
|
"type": "string",
|
|||
|
|
"example": "PlayerName"
|
|||
|
|
},
|
|||
|
|
"skin_id": {
|
|||
|
|
"type": "integer",
|
|||
|
|
"example": 1
|
|||
|
|
},
|
|||
|
|
"updated_at": {
|
|||
|
|
"type": "string",
|
|||
|
|
"example": "2025-10-01T10:00:00Z"
|
|||
|
|
},
|
|||
|
|
"user_id": {
|
|||
|
|
"type": "integer",
|
|||
|
|
"example": 1
|
|||
|
|
},
|
|||
|
|
"uuid": {
|
|||
|
|
"type": "string",
|
|||
|
|
"example": "550e8400-e29b-41d4-a716-446655440000"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"carrotskin_internal_types.RegisterRequest": {
|
|||
|
|
"type": "object",
|
|||
|
|
"required": [
|
|||
|
|
"email",
|
|||
|
|
"password",
|
|||
|
|
"username",
|
|||
|
|
"verification_code"
|
|||
|
|
],
|
|||
|
|
"properties": {
|
|||
|
|
"avatar": {
|
|||
|
|
"description": "可选,用户自定义头像",
|
|||
|
|
"type": "string",
|
|||
|
|
"example": "https://rustfs.example.com/avatars/user_1/avatar.png"
|
|||
|
|
},
|
|||
|
|
"email": {
|
|||
|
|
"type": "string",
|
|||
|
|
"example": "user@example.com"
|
|||
|
|
},
|
|||
|
|
"password": {
|
|||
|
|
"type": "string",
|
|||
|
|
"maxLength": 128,
|
|||
|
|
"minLength": 6,
|
|||
|
|
"example": "password123"
|
|||
|
|
},
|
|||
|
|
"username": {
|
|||
|
|
"type": "string",
|
|||
|
|
"maxLength": 50,
|
|||
|
|
"minLength": 3,
|
|||
|
|
"example": "newuser"
|
|||
|
|
},
|
|||
|
|
"verification_code": {
|
|||
|
|
"description": "邮箱验证码",
|
|||
|
|
"type": "string",
|
|||
|
|
"example": "123456"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"carrotskin_internal_types.ResetPasswordRequest": {
|
|||
|
|
"type": "object",
|
|||
|
|
"required": [
|
|||
|
|
"email",
|
|||
|
|
"new_password",
|
|||
|
|
"verification_code"
|
|||
|
|
],
|
|||
|
|
"properties": {
|
|||
|
|
"email": {
|
|||
|
|
"type": "string",
|
|||
|
|
"example": "user@example.com"
|
|||
|
|
},
|
|||
|
|
"new_password": {
|
|||
|
|
"type": "string",
|
|||
|
|
"maxLength": 128,
|
|||
|
|
"minLength": 6,
|
|||
|
|
"example": "newpassword123"
|
|||
|
|
},
|
|||
|
|
"verification_code": {
|
|||
|
|
"type": "string",
|
|||
|
|
"example": "123456"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"carrotskin_internal_types.SendVerificationCodeRequest": {
|
|||
|
|
"type": "object",
|
|||
|
|
"required": [
|
|||
|
|
"email",
|
|||
|
|
"type"
|
|||
|
|
],
|
|||
|
|
"properties": {
|
|||
|
|
"email": {
|
|||
|
|
"type": "string",
|
|||
|
|
"example": "user@example.com"
|
|||
|
|
},
|
|||
|
|
"type": {
|
|||
|
|
"description": "类型: register/reset_password/change_email",
|
|||
|
|
"type": "string",
|
|||
|
|
"enum": [
|
|||
|
|
"register",
|
|||
|
|
"reset_password",
|
|||
|
|
"change_email"
|
|||
|
|
],
|
|||
|
|
"example": "register"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"carrotskin_internal_types.TextureType": {
|
|||
|
|
"type": "string",
|
|||
|
|
"enum": [
|
|||
|
|
"SKIN",
|
|||
|
|
"CAPE"
|
|||
|
|
],
|
|||
|
|
"x-enum-varnames": [
|
|||
|
|
"TextureTypeSkin",
|
|||
|
|
"TextureTypeCape"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
"carrotskin_internal_types.UpdateProfileRequest": {
|
|||
|
|
"type": "object",
|
|||
|
|
"properties": {
|
|||
|
|
"cape_id": {
|
|||
|
|
"type": "integer",
|
|||
|
|
"example": 2
|
|||
|
|
},
|
|||
|
|
"name": {
|
|||
|
|
"type": "string",
|
|||
|
|
"maxLength": 16,
|
|||
|
|
"minLength": 1,
|
|||
|
|
"example": "NewPlayerName"
|
|||
|
|
},
|
|||
|
|
"skin_id": {
|
|||
|
|
"type": "integer",
|
|||
|
|
"example": 1
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"carrotskin_internal_types.UpdateTextureRequest": {
|
|||
|
|
"type": "object",
|
|||
|
|
"properties": {
|
|||
|
|
"description": {
|
|||
|
|
"type": "string",
|
|||
|
|
"maxLength": 500,
|
|||
|
|
"example": "A cool skin"
|
|||
|
|
},
|
|||
|
|
"is_public": {
|
|||
|
|
"type": "boolean",
|
|||
|
|
"example": true
|
|||
|
|
},
|
|||
|
|
"name": {
|
|||
|
|
"type": "string",
|
|||
|
|
"maxLength": 100,
|
|||
|
|
"minLength": 1,
|
|||
|
|
"example": "My Skin"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"carrotskin_internal_types.UpdateUserRequest": {
|
|||
|
|
"type": "object",
|
|||
|
|
"properties": {
|
|||
|
|
"avatar": {
|
|||
|
|
"type": "string",
|
|||
|
|
"example": "https://example.com/new-avatar.png"
|
|||
|
|
},
|
|||
|
|
"new_password": {
|
|||
|
|
"description": "新密码",
|
|||
|
|
"type": "string",
|
|||
|
|
"maxLength": 128,
|
|||
|
|
"minLength": 6,
|
|||
|
|
"example": "newpassword123"
|
|||
|
|
},
|
|||
|
|
"old_password": {
|
|||
|
|
"description": "修改密码时必需",
|
|||
|
|
"type": "string",
|
|||
|
|
"maxLength": 128,
|
|||
|
|
"minLength": 6,
|
|||
|
|
"example": "oldpassword123"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"carrotskin_internal_types.UserInfo": {
|
|||
|
|
"type": "object",
|
|||
|
|
"properties": {
|
|||
|
|
"avatar": {
|
|||
|
|
"type": "string",
|
|||
|
|
"example": "https://example.com/avatar.png"
|
|||
|
|
},
|
|||
|
|
"created_at": {
|
|||
|
|
"type": "string",
|
|||
|
|
"example": "2025-10-01T10:00:00Z"
|
|||
|
|
},
|
|||
|
|
"email": {
|
|||
|
|
"type": "string",
|
|||
|
|
"example": "test@example.com"
|
|||
|
|
},
|
|||
|
|
"id": {
|
|||
|
|
"type": "integer",
|
|||
|
|
"example": 1
|
|||
|
|
},
|
|||
|
|
"last_login_at": {
|
|||
|
|
"type": "string",
|
|||
|
|
"example": "2025-10-01T12:00:00Z"
|
|||
|
|
},
|
|||
|
|
"points": {
|
|||
|
|
"type": "integer",
|
|||
|
|
"example": 100
|
|||
|
|
},
|
|||
|
|
"role": {
|
|||
|
|
"type": "string",
|
|||
|
|
"example": "user"
|
|||
|
|
},
|
|||
|
|
"status": {
|
|||
|
|
"type": "integer",
|
|||
|
|
"example": 1
|
|||
|
|
},
|
|||
|
|
"updated_at": {
|
|||
|
|
"type": "string",
|
|||
|
|
"example": "2025-10-01T10:00:00Z"
|
|||
|
|
},
|
|||
|
|
"username": {
|
|||
|
|
"type": "string",
|
|||
|
|
"example": "testuser"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}`
|
|||
|
|
|
|||
|
|
// SwaggerInfo holds exported Swagger Info so clients can modify it
|
|||
|
|
var SwaggerInfo = &swag.Spec{
|
|||
|
|
Version: "",
|
|||
|
|
Host: "",
|
|||
|
|
BasePath: "",
|
|||
|
|
Schemes: []string{},
|
|||
|
|
Title: "",
|
|||
|
|
Description: "",
|
|||
|
|
InfoInstanceName: "swagger",
|
|||
|
|
SwaggerTemplate: docTemplate,
|
|||
|
|
LeftDelim: "{{",
|
|||
|
|
RightDelim: "}}",
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
func init() {
|
|||
|
|
swag.Register(SwaggerInfo.InstanceName(), SwaggerInfo)
|
|||
|
|
}
|