You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2.2 KiB

Task Tool

一个简单的 Task 管理工具,支持 Web 界面和 API 接口。

功能特点

  • 支持添加、更新、删除和列表查询
  • 支持按标题和内容搜索
  • 支持按完成状态筛选
  • 支持软删除
  • 支持按创建时间排序
  • 数据持久化到本地文件
  • 美观的 Web 界面
  • 实时自动更新

启动服务

go run cmd/web/main.go

服务默认在 8080 端口启动,可以通过环境变量 PORT 修改:

PORT=3000 go run cmd/web/main.go

API 使用示例

添加 Task

curl -X POST http://127.0.0.1:8080/task/api \
  -H "Content-Type: application/json" \
  -d '{
    "action": "add",
    "task": {
      "title": "完成作业",
      "content": "完成数学作业",
      "deadline": "2024-01-15T18:00:00Z"
    }
  }'

更新 Task

curl -X POST http://127.0.0.1:8080/task/api \
  -H "Content-Type: application/json" \
  -d '{
    "action": "update",
    "task": {
      "id": "task-id",
      "completed": true
    }
  }'

删除 Task

curl -X POST http://127.0.0.1:8080/task/api \
  -H "Content-Type: application/json" \
  -d '{
    "action": "delete",
    "task": {
      "id": "task-id"
    }
  }'

列出所有 Task

curl -X POST http://127.0.0.1:8080/task/api \
  -H "Content-Type: application/json" \
  -d '{
    "action": "list",
    "list": {}
  }'

搜索和筛选 Task

curl -X POST http://127.0.0.1:8080/task/api \
  -H "Content-Type: application/json" \
  -d '{
    "action": "list",
    "list": {
      "query": "作业",
      "is_done": false,
      "limit": 10
    }
  }'

API 响应格式

所有 API 响应都遵循以下格式:

{
  "status": "success",
  "task_list": [
    {
      "id": "uuid",
      "title": "标题",
      "content": "内容",
      "completed": false,
      "deadline": "2024-01-15T18:00:00Z",
      "created_at": "2024-01-10T10:00:00Z"
    }
  ],
  "error": ""
}
  • status: 可能的值为 "success" 或 "error"
  • task_list: Task 项列表,某些操作可能为空
  • error: 错误信息,成功时为空

数据存储

Task 数据以 JSON Lines 格式存储在 .task/tasks.jsonl 文件中。每行一个 Task 项,支持实时读写。