kwork-api/WIP.md

4.7 KiB
Raw Blame History

Work In Progress — kwork-api

📊 Статус

Параметр Значение
Проект kwork-api
Начало 2026-03-23 02:16 UTC
Прогресс 97%
Статус 🟢 В работе

📋 План

  • Структура проекта (pyproject.toml, зависимости)
  • Модели Pydantic (20+ моделей для всех ответов API)
  • API клиент (KworkClient с 45 эндпоинтами)
  • Обработка ошибок (KworkAuthError, KworkApiError, etc.)
  • Тесты unit (46 тестов, 92% coverage)
  • Документация (README + docs/)
  • Аудит эндпоинтов — все 33 endpoint протестированы
  • Автогенерация документации — pre-commit hook
  • Добавить /kworks endpoint (альтернатива каталогу)
  • Добавить /api/validation/checktext (валидация текста)
  • Тесты integration (шаблон готов, нужны реальные credentials)
  • CI/CD pipeline (Gitea Actions)
  • Публикация на internal PyPI

🔨 Сейчас в работе

Текущая задача: Добавление endpoint /kworks и /api/validation/checktext

Следующий шаг:

  1. Реализовать /kworks endpoint
  2. Реализовать /api/validation/checktext endpoint
  3. CI/CD pipeline (Gitea Actions)

📝 Заметки

Автогенерация документации (2026-03-23 03:26)

Структура:

docs/
├── index.md          # Quick start
├── api-reference.md  # Auto-generated from docstrings
└── examples.md       # Usage examples

Pre-commit hook:

# Автоматически генерирует docs/api-reference.md при каждом коммите
.git/hooks/pre-commit → python3 scripts/generate_docs.py

Если документация изменилась — автоматически добавляется в коммит.

Аудит эндпоинтов (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 HAR дамп: 45 эндпоинтов проанализировано

Решения:

  • Rate limiting на стороне пользователя (не в библиотеке)
  • Только библиотека (без CLI)
  • Pydantic модели для всех ответов
  • Автогенерация документации из докстрингов

🚧 Блокеры

Нет


📅 История

  • 03:26 — Автогенерация документации настроена (pre-commit hook)
  • 03:20 — Создана docs/ структура (index.md, api-reference.md, examples.md)
  • 03:17 — WIP.md восстановлен после rebase
  • 03:14 — Анализ пропущенных эндпоинтов: /kworks и /api/validation/checktext рекомендуются к добавлению
  • 03:08 — Аудит завершён: 33/33 endpoint протестированы (92% coverage)
  • 02:48Все unit тесты пройдены (13/13)
  • 02:45 — Исправлены ошибки в тестах
  • 02:35 — Завершён этап "API клиент"
  • 02:30 — Завершён этап "Модели Pydantic"
  • 02:20 — Завершён этап "Структура проекта"
  • 02:16 — Начат проект