Бекенд на C# Web Api

To Kaiten

Настройки окружения (Dev, Prod)

Файл appsettings.json

В C# Web API файл appsettings.json используется для хранения конфигурационных настроек приложения в формате JSON. Этот файл обычно содержит параметры, такие как строки подключения к базе данных, настройки логирования, API ключи и другие параметры.

Мы можем захотеть настроить разные параметры для разных сред выполнения. Например, какие-то разные настройки для среды разработки и среды продакшна. Для этого необходимо создать два дополнительных файла:

  • appsettings.Development.json

  • appsettings.Production.json

В проекте Visual Studio эти файлы будут дочерними от appsettings.json. Таким образом, в дочерних файлах можно переопределить настройки из базового appsettings.json или создать новые настройки.

Как переключиться в dev или prod

При запуске приложения, .NET Core автоматически загружает конфигурацию в зависимости от установленной среды. Это можно указать через переменную окружения ASPNETCORE_ENVIRONMENT. Например, для запуска в режиме разработки можно установить:

set ASPNETCORE_ENVIRONMENT=Development

Таким образом, будут применены настройки из appsettings.Development.json, и они могут переопределять настройки из appsettings.json.

Однако, поскольку для развертывания приложения мы будем использовать Docker, эта настройка переменной окружения будет задаваться в конфигурационном файле докера.

Как получить настройки из appsettings.json

Для чтения настроек используется интерфейс 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


Автор документа: Артём Ветик