← 回航站楼

🛠 API 接入说明

用程序上传任务、查询任务和下载附件。所有接口都在 https://task.mywattdance.com/api/v1 下,返回 JSON。

大壮空姐

🔑 认证 每个请求都要

在请求头里带上您的登机口令,二选一:

X-Passphrase: 您的口令
# 或者
Authorization: Bearer 您的口令

口令不对会返回 401:{"detail": "我不认识你", "code": "unknown"}。 多次输错会被暂时拒绝(429)。请像保管密码一样保管口令。

🛫 上传任务

POST/api/v1/tasks
表单字段说明
name任务名称,必填
text发送文本,必填
files附件,可多个、可没有
curl -X POST https://task.mywattdance.com/api/v1/tasks \
  -H "X-Passphrase: $PASS" \
  -F "name=季度数据清洗" \
  -F "text=请清洗附件里的数据,输出标准格式" \
  -F "files=@report.xlsx" -F "files=@notes.pdf"

成功返回这个任务(字段见下文)。被拒绝时返回 409(登机被拒绝); 附件太重返回 413(超过最大起飞重量)。

大文件:分块上传(断点续传)

  1. POST/api/v1/uploads,JSON {"name": "big.zip", "size": 文件字节数},返回 id、received、chunk_size。
  2. 依次 PUT/api/v1/uploads/{id}?offset=N,请求体是文件从第 N 字节开始的原始数据(每块不超过 chunk_size),返回最新的 received。 断线后用 GET/api/v1/uploads/{id} 查到 received 再接着传。
  3. POST/api/v1/tasks,JSON {"name": "…", "text": "…", "upload_ids": ["id1", "id2"]}。

不想要的上传可以 DELETE/api/v1/uploads/{id}。

📋 查询任务列表

GET/api/v1/tasks?scope=mine&status=起飞,巡航
参数说明
scopemine 我的任务(默认)· company 本企业的任务 · all 所有企业的任务
status状态,可多选:起飞 巡航 失事 降落,逗号分隔或重复传;不传表示全部
company指定企业,配合 scope=all 使用,可重复传:company=企业A&company=企业B
limit / offset分页
curl -G https://task.mywattdance.com/api/v1/tasks \
  -H "X-Passphrase: $PASS" \
  --data-urlencode "scope=company" --data-urlencode "status=巡航,降落"

返回 {"total": …, "items": [...]}。没有权限的查询返回 403。

🔍 查询任务详情

GET/api/v1/tasks/detail?ids=编号1,编号2
GET/api/v1/tasks/{编号}

编号就是任务列表里每个任务的 id,可以一次查多个。查不到的编号放在 missing 里。

下载附件

GET/api/v1/files/{附件 id}
curl -OJ -H "X-Passphrase: $PASS" https://task.mywattdance.com/api/v1/files/附件id

🧾 任务字段

字段说明
id任务编号,查询详情时使用
no本企业的第几个任务
customer客户的名字(name)与企业(company)
status起飞 / 巡航 / 失事 / 降落
name任务名称
countdown倒计时(秒),没有时为 null
send_text · send_files发送文本、发送附件(仅详情)
reply_text · reply_files回复文本、回复附件(仅详情)

附件是 {"id", "name", "size"},id 用来下载。

⚠️ 错误

出错时返回 {"detail": "说明", "code": "代码"}:

HTTPcode含义
400bad_request bad_param empty_field …参数不对、必填项为空
401unknown我不认识你(口令不对)
403forbidden没有权限
404no_task no_file不存在
409rejected登机被拒绝
413overweight超过最大起飞重量
429too_many_attempts试错太多次了,请稍后再试

🐍 Python 示例

import requests

BASE = "https://task.mywattdance.com/api/v1"
s = requests.Session()
s.headers["X-Passphrase"] = "您的口令"

# 上传任务
with open("report.xlsx", "rb") as f:
    r = s.post(f"{BASE}/tasks", data={"name": "季度数据清洗", "text": "请清洗附件"},
               files=[("files", ("report.xlsx", f))])
print(r.status_code, r.json())

# 查自己巡航中和已降落的任务
mine = s.get(f"{BASE}/tasks", params={"scope": "mine", "status": "巡航,降落"}).json()
for t in mine["items"]:
    print(t["no"], t["status"], t["name"])

# 查详情
detail = s.get(f"{BASE}/tasks/detail", params={"ids": ",".join(t["id"] for t in mine["items"][:5])}).json()