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