Тема
API для студий
С API ваши скрипты и CI сами загружают моды, выпускают версии и выдают доступ игрокам — без ручной работы в кабинете.
Ключ
Ключ создаёт владелец студии: кабинет → API-ключи. Ключ показывается один раз, храните его как пароль. Дайте ключу только нужные права:
| Право | Что можно |
|---|---|
builds:read | читать сборки, версии и доступы |
builds:write | создавать и менять версии |
files:write | загружать моды и файлы |
licenses:write | выдавать и отзывать доступ игрокам |
Ключ действует от имени того, кто его создал, и в пределах его роли в студии. Удалять сборки, менять цены и управлять командой через API нельзя. Все действия ключа видны в журнале студии.
Каждый запрос отправляйте с заголовком:
Authorization: Bearer rp_live_…Адрес API: https://app.rift.plus/v1/partner.
Сборки и версии
bash
# Ваши сборки
curl -H "Authorization: Bearer $RIFT_KEY" https://app.rift.plus/v1/partner/builds
# Версии сборки
curl -H "Authorization: Bearer $RIFT_KEY" https://app.rift.plus/v1/partner/builds/<id>/versionsЗагрузить мод или файл
Файл отправляется телом запроса как есть.
bash
# Мод — попадёт в mods/, будет защищён
curl -X POST -H "Authorization: Bearer $RIFT_KEY" \
-H "Content-Type: application/octet-stream" \
--data-binary @build/libs/mymod-1.2.0.jar \
"https://app.rift.plus/v1/partner/files?filename=mymod-1.2.0.jar"
# Файл по пути в сборке (конфиг, скрипт)
curl -X POST -H "Authorization: Bearer $RIFT_KEY" \
-H "Content-Type: application/octet-stream" \
--data-binary @config/mymod.toml \
"https://app.rift.plus/v1/partner/files?path=config/mymod.toml"В ответе будут url и sha1 — их вы укажете в версии. Размер файла — до 80 МБ.
Выпустить версию
bash
curl -X POST -H "Authorization: Bearer $RIFT_KEY" -H "Content-Type: application/json" \
https://app.rift.plus/v1/partner/builds/<id>/versions -d '{
"name": "1.2.0",
"mcVersion": "1.21.1",
"loader": "NEOFORGE",
"loaderVersion": "21.1.251",
"changelog": "Новые данжи",
"files": [
{ "path": "mods/mymod-1.2.0.jar", "url": "<url из ответа загрузки>", "sha1": "<sha1>" }
]
}'Изменить версию: PATCH /v1/partner/versions/<id> с любыми из этих полей.
В версии можно указывать только свои загруженные файлы и файлы с Modrinth / CurseForge.
Доступ игрокам
bash
# Кто имеет доступ
curl -H "Authorization: Bearer $RIFT_KEY" https://app.rift.plus/v1/partner/builds/<id>/licenses
# Выдать: навсегда, на дни или на часы игры
curl -X POST -H "Authorization: Bearer $RIFT_KEY" -H "Content-Type: application/json" \
https://app.rift.plus/v1/partner/builds/<id>/licenses \
-d '{ "players": "nick1, nick2", "permanent": true, "note": "бета-тест" }'
# Отозвать
curl -X DELETE -H "Authorization: Bearer $RIFT_KEY" https://app.rift.plus/v1/partner/licenses/<licenseId>Ошибки
| Код | Что значит |
|---|---|
| 401 | нет ключа, ключ неверный или отозван |
| 403 | ключу не хватает права, это не ваша сборка или не ваш файл |
| 400 | в запросе чего-то не хватает — текст в поле error |
| 429 | слишком много запросов — подождите минуту |