Бекенд на C# Web Api
Настройки окружения (Dev, Prod)
В C# Web API файл appsettings.json используется для хранения конфигурационных настроек приложения в формате JSON. Этот файл обычно содержит параметры, такие как строки подключения к базе данных, настройки логирования, API ключи и другие параметры.
Мы можем захотеть настроить разные параметры для разных сред выполнения. Например, какие-то разные настройки для среды разработки и среды продакшна. Для этого необходимо создать два дополнительных файла:
appsettings.Development.jsonappsettings.Production.json
В проекте Visual Studio эти файлы будут дочерними от appsettings.json. Таким образом, в дочерних файлах можно переопределить настройки из базового appsettings.json или создать новые настройки.

При запуске приложения, .NET Core автоматически загружает конфигурацию в зависимости от установленной среды. Это можно указать через переменную окружения ASPNETCORE_ENVIRONMENT. Например, для запуска в режиме разработки можно установить:
set ASPNETCORE_ENVIRONMENT=DevelopmentТаким образом, будут применены настройки из appsettings.Development.json, и они могут переопределять настройки из appsettings.json.
Однако, поскольку для развертывания приложения мы будем использовать Docker, эта настройка переменной окружения будет задаваться в конфигурационном файле докера.
Для чтения настроек используется интерфейс IConfiguration, который можно получить из билдера в основном классе Program.
Пример appsettings.json:
{
...
"JwtConfig": {
"secret": "my-$uPeR-sUper-SecrEt-KeY@8421052",
"accessTokenExpirationMinutes": 5,
"refreshTokenExpirationDays": 30
},
...
}Класс Program:
var builder = WebApplication.CreateBuilder(args);
// ...
IConfiguration config = builder.Configuration;
var secretKey = config["JwtConfig:secret"];Ссылки
Microsoft — Use multiple environments in ASP.NET Core
Автор документа: Артём Ветик