kwork-api/WIP.md
2026-03-23 04:21:18 +00:00

4.7 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 протестированы
  • Автогенерация документации — pydoc-markdown
  • Добавить /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 04:19)

Инструмент: pydoc-markdown

Структура:

docs/
├── index.md              # Quick start (ручной)
├── api_reference.md      # Auto-generated from docstrings
└── examples.md           # Usage examples (ручной)

Конфигурация:

  • pydoc-markdown.yml — единственная конфигурация для генерации

Команды:

# Ручная генерация (если нужно)
pydoc-markdown > docs/api_reference.md

# Pre-commit hook автоматически генерирует при каждом коммите

Аудит эндпоинтов (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 — Начат проект