Получение конфигурации
Контракт 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 — идентификатор проекта из панели.
| Параметр | Значение |
|---|---|
projectId | UUID проекта |
platform | ios или 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 доступны приложению. Не храните в них пароли и другие секреты.