kwork-api/WIP.md
2026-03-23 03:17:30 +00:00

96 lines
3.8 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.

# Work In Progress — kwork-api
## 📊 Статус
| Параметр | Значение |
|----------|----------|
| **Проект** | kwork-api |
| **Начало** | 2026-03-23 02:16 UTC |
| **Прогресс** | 95% |
| **Статус** | 🟢 В работе |
---
## 📋 План
- [x] Структура проекта (pyproject.toml, зависимости)
- [x] Модели Pydantic (20+ моделей для всех ответов API)
- [x] API клиент (KworkClient с 45 эндпоинтами)
- [x] Обработка ошибок (KworkAuthError, KworkApiError, etc.)
- [x] Тесты unit (46 тестов, 92% coverage)
- [x] Документация (README с примерами)
- [x] **Аудит эндпоинтов** — все 33 endpoint протестированы ✅
- [ ] Добавить `/kworks` endpoint (альтернатива каталогу)
- [ ] Добавить `/api/validation/checktext` (валидация текста)
- [ ] Тесты integration (шаблон готов, нужны реальные credentials)
- [ ] CI/CD pipeline (Gitea Actions)
- [ ] Публикация на internal PyPI
---
## 🔨 Сейчас в работе
**Текущая задача:** Анализ пропущенных эндпоинтов
**Следующий шаг:**
1. Добавить `/kworks` endpoint
2. Добавить `/api/validation/checktext` endpoint
3. CI/CD pipeline (Gitea Actions)
---
## 📝 Заметки
### Аудит эндпоинтов (2026-03-23 03:08)
**Из HAR дампа:** 44 эндпоинта
- **Пропущено (internal/analytics):** 9
- **Реализовано:** 33/33 (100%) ✅
- **Протестировано:** 33/33 (100%) ✅
**Пропущенные эндпоинты (анализ):**
| Эндпоинт | Размер | Описание | Решение |
|----------|--------|----------|---------|
| `/signIn` | - | Авторизация | ✅ Реализовано в `login()` |
| `/getWebAuthToken` | - | Получение токена | ✅ Реализовано в `login()` |
| `/kworks` | 22KB | Список кворков | 🔴 Добавить |
| `/quick-faq/init` | 3.7MB | FAQ данные | ⏪ Опционально |
| `/api/validation/checktext` | - | Валидация текста | 🔴 Добавить |
| `/market_main_page/get_mobile_menu` | - | Мобильное меню | ⏪ Пропустить (UI) |
| `/support2/hit` | - | Телеметрия | ⏪ Пропустить |
| `/watch/*` | - | Yandex Metrica | ⏪ Пропустить |
**Тесты:**
- Unit тесты: 46 passed
- Покрытие: 92%
- Файлы: `test_client.py` (13 тестов), `test_all_endpoints.py` (33 теста)
**Аутентификация:** cookies + web_auth_token (2 этапа)
**Стек:** UV + httpx(http2) + pydantic v2 + structlog
**HAR дамп:** 45 эндпоинтов проанализировано
**Решения:**
- Rate limiting на стороне пользователя (не в библиотеке)
- Только библиотека (без CLI)
- Pydantic модели для всех ответов
---
## 🚧 Блокеры
Нет
---
## 📅 История
- **03:14** — Анализ пропущенных эндпоинтов: `/kworks` и `/api/validation/checktext` рекомендуются к добавлению
- **03:08** — Аудит завершён: 33/33 endpoint протестированы (92% coverage)
- **02:48** — Все unit тесты пройдены (13/13)
- **02:45** — Исправлены ошибки в тестах (Response cookies, Project.description)
- **02:35** — Завершён этап "API клиент"
- **02:30** — Завершён этап "Модели Pydantic"
- **02:20** — Завершён этап "Структура проекта"
- **02:16** — Начат проект