Files
vscode-workbench/.trae/specs/air-quality-api/tasks.md
T

50 lines
2.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Tasks
## 后端实现
- [x] Task 1: 创建 air_quality Django应用
- [x] SubTask 1.1: 创建 `air_quality/` 目录结构(`__init__.py`, `apps.py`, `views.py`, `urls.py`, `tests.py`, `admin.py`, `models.py`, `migrations/`)
- [x] SubTask 1.2: 配置 `apps.py` 应用元数据
- [x] Task 2: 实现空气质量查询API视图
- [x] SubTask 2.1: 实现 `AirQualityView` 类(GET和POST方法)
- [x] SubTask 2.2: 实现城市名称地理编码(复用 Open-Meteo Geocoding API)
- [x] SubTask 2.3: 调用 Open-Meteo 空气质量API获取数据
- [x] SubTask 2.4: 解析并格式化AQI数据(PM2.5, PM10, O3, NO2, SO2, CO, 等级)
- [x] SubTask 2.5: 添加参数校验和错误处理
- [x] SubTask 2.6: 添加Swagger文档装饰器
- [x] Task 3: 注册URL路由和应用
- [x] SubTask 3.1: 配置 `air_quality/urls.py` 路由
- [x] SubTask 3.2: 在 `api/urls.py` 中添加 `path('air-quality/', include('air_quality.urls'))`
- [x] SubTask 3.3: 在 `settings.py` 的 `INSTALLED_APPS` 中添加 `air_quality`
## 前端实现
- [x] Task 4: 创建AQIDetails页面组件
- [x] SubTask 4.1: 创建 `pages/AQIDetails/` 目录
- [x] SubTask 4.2: 实现 `AQIDetails.tsx` 桌面端页面(Hero + Tabs + 文档 + 测试)
- [x] SubTask 4.3: 实现 `AQIDetailsMobile.tsx` 移动端页面
- [x] SubTask 4.4: 创建 `AQIDetails.css` 样式文件(复用ApiDetail设计风格)
- [x] Task 5: 添加路由和翻译
- [x] SubTask 5.1: 在 `App.tsx` 中添加 `/api/air-quality-details` 路由
- [x] SubTask 5.2: 在 `locales/zh.json` 中添加中文翻译键
- [x] SubTask 5.3: 在 `locales/en.json` 中添加英文翻译键
- [x] SubTask 5.4: 在 `locales/ja.json`, `locales/ko.json`, `locales/zh-TW.json`, `locales/ru.json` 中添加翻译
## 集成与验证
- [x] Task 6: 端到端测试
- [x] SubTask 6.1: 验证后端API可通过 `/api/air-quality/?city=北京` 访问
- [x] SubTask 6.2: 验证Swagger文档包含新API
- [x] SubTask 6.3: 验证前端页面可通过 `/api/air-quality-details` 访问
- [x] SubTask 6.4: 验证前端测试功能可正确调用后端API
# Task Dependencies
- Task 2 依赖 Task 1(需要先创建应用结构)
- Task 3 依赖 Task 2(需要先实现视图)
- Task 5 依赖 Task 4(需要先实现页面)
- Task 6 依赖 Task 3 和 Task 5(需要前后端都完成)