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.
125 lines
2.2 KiB
Markdown
125 lines
2.2 KiB
Markdown
# Task Tool
|
|
|
|
一个简单的 Task 管理工具,支持 Web 界面和 API 接口。
|
|
|
|
## 功能特点
|
|
|
|
- 支持添加、更新、删除和列表查询
|
|
- 支持按标题和内容搜索
|
|
- 支持按完成状态筛选
|
|
- 支持软删除
|
|
- 支持按创建时间排序
|
|
- 数据持久化到本地文件
|
|
- 美观的 Web 界面
|
|
- 实时自动更新
|
|
|
|
## 启动服务
|
|
|
|
```bash
|
|
go run cmd/web/main.go
|
|
```
|
|
|
|
服务默认在 8080 端口启动,可以通过环境变量 `PORT` 修改:
|
|
|
|
```bash
|
|
PORT=3000 go run cmd/web/main.go
|
|
```
|
|
|
|
## API 使用示例
|
|
|
|
### 添加 Task
|
|
|
|
```bash
|
|
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
|
|
|
|
```bash
|
|
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
|
|
|
|
```bash
|
|
curl -X POST http://127.0.0.1:8080/task/api \
|
|
-H "Content-Type: application/json" \
|
|
-d '{
|
|
"action": "delete",
|
|
"task": {
|
|
"id": "task-id"
|
|
}
|
|
}'
|
|
```
|
|
|
|
### 列出所有 Task
|
|
|
|
```bash
|
|
curl -X POST http://127.0.0.1:8080/task/api \
|
|
-H "Content-Type: application/json" \
|
|
-d '{
|
|
"action": "list",
|
|
"list": {}
|
|
}'
|
|
```
|
|
|
|
### 搜索和筛选 Task
|
|
|
|
```bash
|
|
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 响应都遵循以下格式:
|
|
|
|
```json
|
|
{
|
|
"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 项,支持实时读写。 |