Перейти к содержанию

Mivio API

Бэкенд AI-генерации фото для мобильного приложения. Модель простая:

эффект → загрузка фото → генерация → результат от ИИ-модели.

Эта документация — для разработчиков клиента. Здесь сценарии и примеры; полный машинный контракт (все поля и схемы) — на странице API Reference, он генерируется из самого сервиса и всегда актуален.

Базовый URL и версия

Все ресурсы живут под версионным префиксом /v1:

{BASE_URL}/v1

Конкретный адрес BASE_URL (стенд / прод) выдаётся отдельно.

Дальше в примерах используется переменная BASE_URL — подставь выданный адрес:

export BASE_URL=https://api.mivio.example

Как устроен сервис

API не держит тяжёлую работу в запросе. На создание генерации он мгновенно отвечает 202 Accepted с id, ставит задачу в очередь, а готовность присылает push'ем — через SSE-стрим или уведомление на устройство. Поллинг не нужен.

 клиент                       Mivio API                  воркеры + ИИ-провайдер
   │  1. presigned POST ────────▶│
   │◀── url + fields ────────────│
   │  2. POST фото в хранилище ──────────────▶ (S3/MinIO, напрямую)
   │  3. POST /generations ─────▶│  202 {id}
   │◀── id ──────────────────────│ ──ставит в очередь──▶ submit → poll → fetch
   │  4. GET /generations/{id}/stream (SSE)             │
   │◀═══ status: processing ═════│◀──────── push ───────│
   │◀═══ status: succeeded ══════│◀──────── push ───────│
   │  5. GET /generations/{id} ─▶│  result_url (готовое фото)

Аутентификация — кратко

Защищённые эндпоинты требуют заголовок:

Authorization: Bearer <access_token>

Токен выдаёт раздел Аутентификация: короткий access + долгий refresh с ротацией. Публичны без токена только каталог (включая профиль автора — по нему ходят из шаринга) и сам раздел auth. Подробнее — Аутентификация.

Ошибки — кратко

Любая ошибка приходит единым конвертом со стабильным машиночитаемым кодом:

{ "error": { "code": "insufficient_credits", "message": "Insufficient credits" } }

Привязывайся к code, а не к тексту message. Полный список — Ошибки.

Дальше