公共工具 API

1. 附件上传

POST /api/v1/upload
Content-Type: multipart/form-data

返回:

{
  "code": 0,
  "message": "success",
  "data": { "url": "/media/uploads/<uuid>.<ext>" }
}

说明:

  • 支持两种后端:本地磁盘与 S3 兼容对象存储,可通过环境变量 FILE_STORAGE_BACKENDlocal/s3)切换。

  • 本地模式默认将文件保存到服务器的 /var/www/classroom-manager/uploads/,可用 LOCAL_UPLOAD_DIRLOCAL_UPLOAD_URL_PREFIX 覆盖存储路径与访问前缀。

  • S3 模式需要提供 S3_BUCKET_NAMES3_ACCESS_KEY_IDS3_SECRET_ACCESS_KEY,可选 S3_ENDPOINT_URLS3_BASE_URL 用于自定义访问域名(适配任意 S3 兼容服务)。

  • 需要登录(Authorization: Bearer <token>)。

  • 当前实现为本地磁盘上传,返回值为站内可访问的相对路径。

2. 获取系统配置

GET /api/v1/config

权限:需要登录。

返回:

{
  "code": 0,
  "message": "success",
  "data": {
    "season": "winter",
    "season_display": "冬季作息",
    "semester_start_date": "2026-02-17",
    "updated_at": "2026-01-20T10:00:00+08:00"
  }
}

3. 设置季节作息(仅 superadmin)

POST /api/v1/config/season

Body:

{ "season": "winter" }

返回:与获取系统配置相同。