studio/API_USAGE.md
МИН 61fba4e174
Some checks failed
CI / Lint + Format (push) Failing after 32s
CI / Build (push) Failing after 37s
CI / Secret scan (push) Failing after 37s
CI / PR size check (push) Has been skipped
fix: починка билда + studio.rublox.pro инфра
Большой консолидирующий коммит после поднятия studio.rublox.pro (28 мая 2026).
Содержит изменения которые делались в процессе подготовки прод-окружения:

Фиксы импортов после выноса из minecraftia:
- Массовая замена путей ../../components → ../components (40+ файлов в src/community/, src/admin-preview/)
- Замена ../KubikonEditor/ → ../editor/, ../KubikonStudio/ → ../community/, ../AdminPreview/ → ../admin-preview/
- API.js скопирован из минки целиком (было 8 экспортов, стало 312)
- Добавлены PLAYER_URL, MyButton_1, недостающие компоненты
- Заменены require() на статические ES-imports в BabylonScene, PrimitiveManager, GameRuntime (Vite не поддерживает CJS require)

Структура ассетов:
- public/kubikon-templates/ → public/assets/kubikon-templates/
- public/kubikon-learn/ → public/assets/kubikon-learn/
- (код искал в /assets/, файлы лежали без /assets/)

Навигация роутов внутри студии:
- /kubikon-studio/docs → /docs (90+ навигационных вызовов sed-replaced)
- /kubikon-editor/X → /edit/X, /kubikon/play/X → /play/X, /kubikon/gd/X → /gd/X

UI:
- Новый компонент StudioHeader (61px, как в минке) + копия favicon
- WithHeader wrapper в App.jsx для всех страниц кроме fullscreen-редактора/плеера
- SSO ticket-flow в AuthContext (auto-redeem #ticket= при загрузке)
- Тёмная тема карточек игр в ВИКИ (фон #1c2231 вместо #fff, картинка впритык)

Документация:
- docs/ONBOARDING.md — путь нового контрибьютора от нуля до PR
- docs/TUTORIAL_ADD_SCRIPT_API.md — как добавить game.* API
- API_USAGE.md — список эндпоинтов backend
- README в подпапках engine/, engine/terrain/, engine/voxel/, engine/robloxterrain/, engine/types/

.gitignore:
- public/wiki/ исключён (73МБ PNG, будут на CDN отдельной задачей)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-28 05:01:13 +03:00

5.5 KiB
Raw Blame History

API, которые использует студия

Студия = редактор игр. Дёргает много API: загрузка моделей, сохранение проектов, публикация, ассеты, админ-функции. Этот документ — полный список.

Базовый URL

В prod: https://api.rublox.pro (alias на minecraftia-school.ru/api-storys) В dev: https://dev-api.rublox.pro (staging) Локально: http://localhost:8674 (storys-микросервис)

Эндпоинты — список

Проекты (CRUD)

Method Path Когда
GET /kubikon3d/projects/<id> при открытии проекта в редакторе
POST /kubikon3d/projects при сохранении нового проекта
PUT /kubikon3d/projects/<id> при auto-save (каждые 60с) и при manual-save
DELETE /kubikon3d/projects/<id> юзер удалил свой проект
GET /kubikon3d/my-projects страница «Мои проекты»
POST /kubikon3d/projects/<id>/publish юзер жмёт «Опубликовать»

Размер project_data JSON: обычно 100 КБ - 5 МБ. Лимит на бэке — 20 МБ (settings, может меняться). Если проект больше — split на несколько (НЕ реализовано пока).

Модели и ассеты

Method Path Когда
GET /kubikon3d/models/public при открытии редактора, список общих GLB-моделей
GET /kubikon3d/models/mine панель «Мои модели»
GET /kubikon3d/models/<id> при первом упоминании модели в проекте
POST /kubikon3d/models юзер залил свою GLB-модель
DELETE /kubikon3d/models/<id> юзер удалил свою

Лента и поиск (как в плеере)

Method Path Когда
GET /kubikon3d/feed главная редактора
GET /kubikon3d/trending главная
GET /kubikon3d/search?q=... поиск чужих проектов (для копирования идей)
GET /kubikon3d/collections секции
GET /kubikon3d/top-authors топ авторов
GET /kubikon3d/events мероприятия

Скины и аватары

Method Path Когда
GET /kubikon3d/rublox/equipped-skin/<user_id> превью аватара текущего юзера в редакторе
GET /kubikon3d/rublox/owned-skins панель «Скины»
POST /kubikon3d/rublox/equipped-skin юзер сменил скин

Материалы для дизайнера

Method Path Когда
GET /api-storys/designer/materials/list панель «Материалы» — текстуры и материалы для блоков

Чат и комментарии

Method Path Когда
POST /kubikon3d/chat/<game_id> юзер пишет сообщение в чат своей игры (preview)

Telemetry (как в плеере)

Method Path Когда
POST /kubikon3d/play/heartbeat при тесте игры через Play в редакторе
POST /kubikon3d/activity вход/выход в тестовый Play
POST /kubikon3d/perf-log при просадке FPS в тестовом Play
POST /kubikon3d/bug-reports юзер жмёт «Сообщить о баге»
POST /kubikon3d/reports репорт на чужой проект (из поиска)

Админка (для роли admin)

Все /kubikon3d/admin/* доступны только админам. Не админ → 403.

Список — см. rublox-player/API_USAGE.md#админка. Студия использует тот же набор, что и плеер.

Аутентификация

JWT в заголовке Authorization: Bearer <token>. Получение — через /api-user/auth/login (см. rublox-player/API_USAGE.md#аутентификация).

Особенности студии vs плеера

  • Студия дополнительно имеет CRUD на /projects (плеер только читает).
  • Студия загружает модели: POST /models с multipart/form-data. Лимит 50 МБ на файл.
  • Auto-save: студия каждые 60 секунд молча шлёт PUT /projects/<id>. Без этого проекты теряются при сбое браузера.
  • Conflict resolution: если двое редактируют один проект, бэк возвращает 409 на PUT. Студия показывает диалог «Кто-то открыл проект параллельно, перезагрузить?».

Изменения API

Breaking changes (изменение сигнатур, удаление полей) — объявление в #разработка за 48 часов + запись в API_CHANGELOG.md админ-репо.

Контакты