Files
111 998211c483 feat: 初始化考培练系统项目
- 从服务器拉取完整代码
- 按框架规范整理项目结构
- 配置 Drone CI 测试环境部署
- 包含后端(FastAPI)、前端(Vue3)、管理端

技术栈: Vue3 + TypeScript + FastAPI + MySQL
2026-01-24 19:33:28 +08:00

123 lines
2.7 KiB
YAML

openapi: 3.0.0
info:
title: 用户管理模块API
version: 1.0.0
description: 用户与团队管理的最小契约(骨架)
paths:
/api/v1/users/me:
get:
summary: 获取当前用户信息
tags: [用户]
security:
- bearerAuth: []
responses:
200:
description: 成功
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseUser'
401:
description: 未授权
/api/v1/users:
get:
summary: 用户列表
tags: [用户]
security:
- bearerAuth: []
parameters:
- in: query
name: page
schema: { type: integer, minimum: 1, default: 1 }
- in: query
name: size
schema: { type: integer, minimum: 1, maximum: 100, default: 10 }
- in: query
name: role
schema: { type: string }
- in: query
name: is_active
schema: { type: boolean }
responses:
200:
description: 成功
403:
description: 权限不足
post:
summary: 创建用户(管理员)
tags: [用户]
security:
- bearerAuth: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UserCreate'
responses:
201:
description: 已创建
409:
description: 用户名或邮箱冲突
/api/v1/users/{id}:
get:
summary: 获取指定用户
tags: [用户]
security:
- bearerAuth: []
parameters:
- in: path
name: id
required: true
schema: { type: integer }
responses:
200:
description: 成功
404:
description: 未找到
components:
securitySchemes:
bearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
schemas:
ResponseUser:
type: object
properties:
code:
type: integer
example: 200
message:
type: string
example: success
data:
$ref: '#/components/schemas/User'
User:
type: object
properties:
id: { type: integer }
username: { type: string }
email: { type: string }
role: { type: string }
is_active: { type: boolean }
UserCreate:
type: object
required: [username, email, password]
properties:
username: { type: string, minLength: 3, maxLength: 20 }
email: { type: string, format: email }
password: { type: string, minLength: 8 }
role:
type: string
enum: [trainee, manager, admin]