- 从服务器拉取完整代码 - 按框架规范整理项目结构 - 配置 Drone CI 测试环境部署 - 包含后端(FastAPI)、前端(Vue3)、管理端 技术栈: Vue3 + TypeScript + FastAPI + MySQL
123 lines
2.7 KiB
YAML
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]
|
|
|