4.9 KiB
4.9 KiB
Work In Progress — kwork-api
📊 Статус
| Параметр | Значение |
|---|---|
| Проект | kwork-api |
| Начало | 2026-03-23 02:16 UTC |
| Прогресс | 98% |
| Статус | 🟢 В работе |
📋 План
- Структура проекта (pyproject.toml, зависимости)
- Модели Pydantic (20+ моделей для всех ответов API)
- API клиент (KworkClient с 45 эндпоинтами)
- Обработка ошибок (KworkAuthError, KworkApiError, etc.)
- Тесты unit (46 тестов, 92% coverage)
- Документация (README + docs/)
- Аудит эндпоинтов — все 33 endpoint протестированы ✅
- Автогенерация документации — mkdocstrings+griffe ✅
- Добавить
/kworksendpoint (альтернатива каталогу) - Добавить
/api/validation/checktext(валидация текста) - Тесты integration (шаблон готов, нужны реальные credentials)
- CI/CD pipeline (Gitea Actions)
- Публикация на internal PyPI
🔨 Сейчас в работе
Текущая задача: Добавление endpoint /kworks и /api/validation/checktext
Следующий шаг:
- Реализовать
/kworksendpoint - Реализовать
/api/validation/checktextendpoint - CI/CD pipeline (Gitea Actions)
📝 Заметки
Автогенерация документации (2026-03-23 03:44)
Инструмент: mkdocstrings + griffe
Структура:
docs/
├── index.md # Quick start
├── api-reference.md # Auto-generated from docstrings
└── examples.md # Usage examples
site/ # Generated HTML (не коммитим)
├── index.html
├── api-reference/
└── ...
Конфигурация:
mkdocs.yml— MkDocs конфигурация.git/hooks/pre-commit— автогенерация при коммите
Pre-commit hook:
# При каждом коммите:
mkdocs build --quiet
# Генерирует site/ с HTML документацией
Команды:
# Локальный просмотр
mkdocs serve
# Сборка
mkdocs build
# Деплой
mkdocs gh-deploy
Аудит эндпоинтов (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 |
- | Валидация текста | 🔴 Добавить |
| Остальные | - | Analytics/UI | ⏪ Пропустить |
Тесты:
- Unit тесты: 46 passed
- Покрытие: 92%
- Файлы:
test_client.py(13 тестов),test_all_endpoints.py(33 теста)
Аутентификация: cookies + web_auth_token (2 этапа) Стек: UV + httpx(http2) + pydantic v2 + structlog + mkdocstrings HAR дамп: 45 эндпоинтов проанализировано
Решения:
- Rate limiting на стороне пользователя (не в библиотеке)
- Только библиотека (без CLI)
- Pydantic модели для всех ответов
- Автогенерация документации через mkdocstrings+griffe
🚧 Блокеры
Нет
📅 История
- 03:44 — mkdocstrings+griffe настроен, документация генерируется
- 03:38 — Выбран mkdocstrings+griffe вместо pydoc-markdown
- 03:26 — Автогенерация документации настроена (pre-commit hook)
- 03:20 — Создана docs/ структура
- 03:17 — WIP.md восстановлен после rebase
- 03:14 — Анализ пропущенных эндпоинтов
- 03:08 — Аудит завершён: 33/33 endpoint протестированы (92% coverage)
- 02:48 — Все unit тесты пройдены (13/13)
- 02:35 — Завершён этап "API клиент"
- 02:20 — Завершён этап "Структура проекта"
- 02:16 — Начат проект