Публичный интерфейс библиотеки autumn-openfeature
Классы
Сводка
| Единица | Метод | Возвращает |
|---|---|---|
НастройкиФлагов | Провайдер() | Строка |
НастройкиФлагов | ПутьКФайлу() | Строка |
НастройкиФлагов | Домен() | Строка |
ФабрикаФлагов | FeatureClient() | FeatureClient |
Что попадает в контейнер
| Имя желудя | Тип | Откуда |
|---|---|---|
НастройкиФлагов | &Желудь | Секция openfeature файла autumn-properties.json |
ФабрикаФлагов | &Дуб | Конфигурация стартера |
FeatureClient | &Завязь | ФабрикаФлагов.FeatureClient() |
Прикладной код объявляет зависимость только от FeatureClient - остальное поднимает контейнер.
&Пластилин Перем FeatureClient;Тип клиента описан в библиотеке openfeature: методы ПолучитьЛогическое, ПолучитьСтроку, ПолучитьЧисло, ПолучитьОбъект и их варианты ...СДеталями.
Класс НастройкиФлагов
Желудь с прочитанной секцией openfeature файла autumn-properties.json. Значения читаются детальками при создании объекта, поэтому дальше настройки неизменны.
Исходник: src/Классы/НастройкиФлагов.os
Детальки
| Деталька | По умолчанию | Поле |
|---|---|---|
openfeature.Провайдер | memory | Провайдер() |
openfeature.ПутьКФайлу | flags.json | ПутьКФайлу() |
openfeature.Домен | "" | Домен() |
Значение провайдера приводится к нижнему регистру и очищается от пробелов: в настройках допустимы JSON, json и json.
Методы
| Метод | Возвращает | Назначение |
|---|---|---|
Провайдер | Строка | Вид провайдера |
ПутьКФайлу | Строка | Файл флагов для провайдера json |
Домен | Строка | Домен клиента |
Провайдер
Функция Провайдер() ЭкспортВид провайдера: json, memory или none.
Возвращаемое значение
Строка - идентификатор провайдера в нижнем регистре.
Неизвестное значение проверкой не отсекается: ФабрикаФлагов оставит провайдер-заглушку, как при none.
ПутьКФайлу
Функция ПутьКФайлу() ЭкспортПуть к файлу с описанием флагов. Используется только провайдером json.
Возвращаемое значение
Строка - путь к файлу.
Домен
Функция Домен() ЭкспортДомен, с которым создаётся клиент оценки.
Возвращаемое значение
Строка - имя домена либо пустая строка. Пустая строка означает клиента без домена.
Класс ФабрикаФлагов
Дуб, который регистрирует провайдера OpenFeature по настройкам и отдаёт клиента оценки завязью FeatureClient.
Исходник: src/Классы/ФабрикаФлагов.os
Зависимости
| Поле | Тип | Назначение |
|---|---|---|
НастройкиФлагов | НастройкиФлагов | Секция openfeature файла настроек |
FeatureClient
&Завязь
Функция FeatureClient() ЭкспортВозвращает клиента оценки флагов для домена из настроек.
Возвращаемое значение
FeatureClient - клиент библиотеки openfeature.
Побочный эффект
При первом вызове регистрируется провайдер:
Провайдер() | Что устанавливается |
|---|---|
json | JsonFileProvider(НастройкиФлагов.ПутьКФайлу()) |
memory | InMemoryProvider() |
none или любое другое значение | Ничего: остаётся NoopProvider |
Регистрация выполняется здесь, а не в конструкторе, потому что поле &Пластилин НастройкиФлагов к моменту конструктора ещё не заполнено. Повторный вызов провайдера не меняет: проверяется имя уже установленного, и NoopProvider считается признаком «ещё не настроен».
Из-за этой проверки провайдер, установленный приложением вручную до первого обращения к завязи, стартер не перетирает.
&Пластилин Перем FeatureClient;
Процедура Показать() Экспорт
Детали = FeatureClient.ПолучитьЛогическоеСДеталями("new-checkout", Ложь);
Сообщить(Детали.Значение); // Истина
Сообщить(Детали.Причина); // TARGETING_MATCH
КонецПроцедуры