kwork-api/WIP.md

4.9 KiB
Raw Blame History

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
  • Добавить /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: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 — Начат проект