This project demonstrates how to manage dynamic feature flags using NATS JetStream KeyValue store and FastAPI. Feature flags are managed through a REST API, enabling real-time control over application features.
Этот пример демонстрирует, как управлять флагами функций (feature flags) с использованием хранилища NATS JetStream KeyValue и FastAPI. Конфигурации и флаги управляются динамически, предоставляя возможность изменения их состояния через API.
- NATS JetStream: Используется для хранения и управления конфигурациями.
- FastAPI: Фреймворк для построения быстрых и асинхронных веб-приложений на Python.
- Pydantic: Валидация данных и управление моделями конфигураций.
- Python 3.12+
- NATS JetStream
- FastAPI
git clone https://github.com/deus-developer/dynconf-nats.git
cd dynconf-natsНастройки приложения, такие как URL сервера NATS, задаются через переменные окружения или конфигурационный файл.
Пример файла .env:
NATS_SERVERS=nats://localhost:4222Добавляет или устанавливает новый флаг функции.
Параметры запроса:
feature(str): Название флага.
Пример тела запроса:
{
"criteria": null,
"value": true
}Обновляет существующий флаг функции, проверяя ревизию данных.
Параметры запроса:
feature(str): Название флага.
Пример тела запроса:
{
"criteria": {
"region": "US",
"user_tier": "premium"
},
"value": false
}Возвращает текущее значение флага функции. Опционально можно принудительно обновить данные из хранилища.
Параметры запроса:
feature(str): Название флага.force(bool, по умолчаниюFalse): Если установлено вtrue, данные будут получены напрямую из NATS JetStream, обходя кэш.
Пример ответа:
{
"criteria": null,
"value": true
}Для упрощения запуска приложения вы можете использовать Docker Compose, который автоматически создаст и запустит необходимые контейнеры для вашего FastAPI-приложения и сервера NATS JetStream.
-
Убедитесь, что у вас установлен Docker и Docker Compose.
-
Запустите Docker Compose:
docker-compose up --build -d
Эта команда создаст и запустит контейнеры для FastAPI и NATS JetStream. Опция
--buildгарантирует, что Docker пересоберет образы, если были внесены изменения вDockerfileили файлы проекта. -
После запуска, ваше приложение будет доступно по адресу
http://127.0.0.1:8080. Вы можете использовать его API, как указано в разделе API Эндпоинты.
Чтобы остановить и удалить контейнеры, запущенные Docker Compose, выполните команду:
docker-compose downЭто удалит все созданные контейнеры и сети, оставив только образы.
Это удалит все созданные контейнеры и сети, оставив только образы.
Этот проект распространяется под лицензией MIT. Подробности см. в файле LICENSE.