cfgme.ru

Получение конфигурации

Контракт API cfgme.ru. Сервис готовится к запуску; примеры ниже предназначены для интеграции с вашим развёртыванием.

Один запрос — готовые параметры

Передайте UUID проекта, платформу и неотрицательный номер билда. Все три параметра обязательны.

curl --get "$CFGME_URL/api/configuration/resolve" \
  --data-urlencode "projectId=$PROJECT_ID" \
  --data-urlencode "platform=ios" \
  --data-urlencode "build=150"

CFGME_URL — адрес вашего сервиса; PROJECT_ID — идентификатор проекта из панели.

ПараметрЗначение
projectIdUUID проекта
platformios или android
buildЦелое число от 0 до 9223372036854775807

Приоритет условий

Условия проверяются в заданном вами порядке. Для каждого параметра используется первое подходящее условие, в котором задано значение этого параметра. Иначе — значение по умолчанию.

Условие задаёт платформу и, при необходимости, билд с оператором = или ≥. Точное совпадение не получает автоматического преимущества перед условием выше в списке.

Если значения нет, ключ отсутствует в ответе. Значение null сохраняется. Сохранение конфигурации сразу делает изменения активными.

Ответ и кеширование

HTTP/1.1 200 OK
ETag: "<значение из ответа>"
Cache-Control: private, no-cache

{
  "new_checkout": true,
  "welcome_text": "Добро пожаловать"
}

Пустая конфигурация возвращает 200 и {}. JSON сохраняет типы значений, а ETag зависит от результата выдачи.

В следующем запросе передайте полученный ETag в заголовке If-None-Match. Если результат тот же, сервер вернёт 304 Not Modified без тела. Используйте сохранённый ответ.

При недоступности сервиса приложение должно самостоятельно обрабатывать ошибку запроса и выбирать подходящее резервное поведение.

Ошибки

HTTPЧто произошло
400Некорректные или отсутствующие параметры запроса.
404Проект не найден в последнем успешно загруженном каталоге.
503Снимок пока не подготовлен или каталог недоступен. Повторите запрос позже.

Значения Remote Config доступны приложению. Не храните в них пароли и другие секреты.