跳至主要內容

备忘录后台接口说明

周子力2025年10月1日大约 3 分钟教学文档HarmonyOSTypeScript

BaseURL

目前只能通过校园网访问,外网无法访问。

http://10.31.25.81:5000/api


📋 任务管理 API 接口文档

Base URL: /tasks(所有接口路径均基于此)

所有接口返回统一格式的 JSON 响应:

{
  "success": true|false,
  "data": { ... },        // 成功时返回数据(部分接口无 data)
  "message": "描述信息"
}

1. 获取所有任务(支持搜索)

  • URL: GET /tasks
  • 查询参数(可选):
    • title (string): 按标题模糊搜索任务
  • 示例:
    GET /tasks?title=homework
    
  • 成功响应 (200):
    {
      "success": true,
      "data": [
        { "id": "1", "title": "homework", "isCompleted": false, "created_at": "2024-06-01T10:00:00" },
        ...
      ],
      "message": "Tasks retrieved successfully"
    }
    

2. 根据 ID 获取单个任务

  • URL: GET /tasks
  • 查询参数(必需):
    • task_id (string): 任务唯一 ID
  • 示例:
    GET /tasks?task_id=123
    
  • 成功响应 (200):
    {
      "success": true,
      "data": { "id": "123", "title": "Buy milk", "isCompleted": false, ... },
      "message": "Task retrieved successfully"
    }
    
  • 错误情况:
    • 400: 缺少 task_id
    • 404: 任务不存在

3. 创建新任务

  • URL: POST /tasks
  • 请求头:
    • Content-Type: application/json
  • 请求体(JSON):
    {
      "title": "New task",          // 必需
      "description": "Optional",    // 可选
      "isCompleted": false            // 可选,默认 false
    }
    
  • 示例:
    axios.post('/tasks', { title: 'Read book' })
    
  • 成功响应 (201):
    {
      "success": true,
      "data": { "id": "456", "title": "Read book", "isCompleted": false, ... },
      "message": "Task created successfully"
    }
    
  • 错误情况:
    • 400: 缺少 title

4. 更新任务

  • URL: PUT /tasks
  • 查询参数(必需):
    • task_id (string): 要更新的任务 ID
  • 请求体(JSON):
    {
      "title": "Updated title",
      "isCompleted": true
    }
    
  • 示例:
    PUT /tasks?task_id=123
    
    { "title": "Finish report", "isCompleted": true }
    
  • 成功响应 (200):
    {
      "success": true,
      "data": { "id": "123", "title": "Finish report", "isCompleted": true, ... },
      "message": "Task updated successfully"
    }
    
  • 错误情况:
    • 400: 缺少 task_id 或请求体为空
    • 404: 任务不存在

5. 删除单个任务

  • URL: DELETE /tasks
  • 查询参数(必需):
    • task_id (string): 要删除的任务 ID
  • 示例:
    DELETE /tasks?task_id=123
    
  • 成功响应 (200):
    {
      "success": true,
      "message": "Task deleted successfully"
    }
    
  • 错误情况:
    • 400: 缺少 task_id
    • 404: 任务不存在

6. 切换单个任务完成状态

  • URL: PUT /tasks/toggle
  • 查询参数(必需):
    • task_id (string): 任务 ID
  • 示例:
    PUT /tasks/toggle?task_id=123
    
  • 行为: 将 isCompleted 字段取反(true ↔ false)
  • 成功响应 (200):
    {
      "success": true,
      "data": { "id": "123", "title": "...", "isCompleted": true, ... },
      "message": "Task status toggled successfully"
    }
    
  • 错误情况:
    • 400: 缺少 task_id
    • 404: 任务不存在

7. 批量删除任务

  • URL: DELETE /tasks/batch/delete
  • 请求头:
    • Content-Type: application/json
  • 请求体(JSON):
    {
      "taskIds": ["1", "2", "3"]   // 必需,ID 数组
    }
    
  • 示例:
    axios.delete('/tasks/batch/delete', {  { taskIds: ['1','2'] } })
    
  • 成功响应 (200):
    {
      "success": true,
      "data": {
        "deletedCount": 2,
        "requestedCount": 2
      },
      "message": "2 tasks deleted successfully"
    }
    
  • 错误情况:
    • 400: taskIds 为空或缺失

8. 批量切换任务完成状态

  • URL: PUT /tasks/batch/toggle
  • 请求头:
    • Content-Type: application/json
  • 请求体(JSON):
    {
      "taskIds": ["1", "2"],       // 必需
      "isCompleted": true            // 可选:true/false 表示设为完成/未完成;若省略,则切换每个任务的当前状态
    }
    
  • 示例(切换状态):
    { "taskIds": ["1", "2"] }
    
  • 示例(统一设为完成):
    { "taskIds": ["1", "2"], "isCompleted": true }
    
  • 成功响应 (200):
    {
      "success": true,
      "data": {
        "updatedCount": 2,
        "requestedCount": 2,
        "action": "toggled"  // 或 "set to isCompleted" / "set to not isCompleted"
      },
      "message": "2 tasks toggled successfully"
    }
    
  • 错误情况:
    • 400: taskIds 为空或缺失

📌 注意事项

  1. task_id 传递方式
    单个操作(GET/PUT/DELETE/toggle)均通过 查询参数?task_id=xxx)传递 ID,不是路径参数(如 /tasks/123)。

  2. 批量操作
    使用 JSON 请求体 传递 taskIds 数组。

  3. 错误处理
    所有接口均捕获异常并返回 500 错误,前端应检查 success 字段。

  4. ID 类型
    假设 task_id 为字符串类型(如 UUID 或字符串 ID),若使用数字 ID,前端仍需传字符串(因 request.args.get() 返回字符串)。


✅ 此文档可直接用于团队协作、前端调用或 Postman 测试。

上次编辑于: 2025/10/1 06:45:01
贡献者: zilizhou