Skip to content
Эта страница создана и переведена с помощью ИИ. Если вы заметили неточности, помогите нам улучшить её. Редактировать на GitHub

REST API

Fenfa предоставляет REST API для автоматизации всех операций. API используется как CI/CD-системами для загрузки артефактов, так и инструментами администратора для управления контентом.

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

Все API-запросы используют аутентификацию по токену через заголовок X-Auth-Token:

bash
curl https://dist.example.com/admin/api/products \
  -H "X-Auth-Token: YOUR_TOKEN"

Скоупы токенов

СкоупПеременная окруженияДоступ
uploadFENFA_UPLOAD_TOKENЗагрузка релизов через Upload API
adminFENFA_ADMIN_TOKENПолный доступ ко всем операциям

Токены с правами admin также принимаются на Upload API-эндпоинтах.

Формат ответа

Все ответы API возвращаются в JSON в унифицированном формате:

Успешный ответ

json
{
  "ok": true,
  "data": { ... }
}

Ответ с ошибкой

json
{
  "ok": false,
  "error": {
    "code": "NOT_FOUND",
    "message": "Product not found"
  }
}

Коды ошибок

КодHTTP-статусОписание
UNAUTHORIZED401Отсутствующий или неверный токен
FORBIDDEN403Токен не имеет нужного скоупа
NOT_FOUND404Ресурс не найден
VALIDATION_ERROR422Неверные параметры запроса
INTERNAL_ERROR500Внутренняя ошибка сервера

Обзор эндпоинтов

Upload API (/upload/api/)

Требует токен с правами upload или admin.

МетодПутьОписание
POST/upload/api/variants/{id}/releasesЗагрузить новый релиз

Admin API (/admin/api/)

Требует токен с правами admin.

Продукты:

МетодПутьОписание
GET/admin/api/productsСписок продуктов
POST/admin/api/productsСоздать продукт
GET/admin/api/products/{id}Получить продукт
PUT/admin/api/products/{id}Обновить продукт
DELETE/admin/api/products/{id}Удалить продукт

Варианты:

МетодПутьОписание
GET/admin/api/products/{id}/variantsСписок вариантов
POST/admin/api/products/{id}/variantsСоздать вариант
PUT/admin/api/products/{id}/variants/{id}Обновить вариант
DELETE/admin/api/products/{id}/variants/{id}Удалить вариант

Релизы:

МетодПутьОписание
GET/admin/api/variants/{id}/releasesСписок релизов
PUT/admin/api/releases/{id}Обновить релиз (active, changelog)
DELETE/admin/api/releases/{id}Удалить релиз

iOS устройства:

МетодПутьОписание
GET/admin/api/ios/devicesСписок зарегистрированных устройств
POST/admin/api/ios/syncСинхронизировать с Apple Developer

Настройки:

МетодПутьОписание
GET/admin/api/settingsПолучить настройки
PUT/admin/api/settingsОбновить настройки

Следующие шаги

Released under the Apache-2.0 License.