Большой консолидирующий коммит после поднятия 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>
5.5 KiB
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 админ-репо.
Контакты
- Issue tracker: https://git.rublox.pro/rublox/studio/issues
- Чат:
#разработкана https://team.rublox.pro