Konfiguracja aplikacji ASP.NET Core jest kluczowym aspektem tworzenia aplikacji internetowych. Obejmuje ona różne aspekty, takie jak ustawienia aplikacji, połączenia do baz danych, dostęp do usług, obsługę błędów i wiele innych. Poniżej znajdziesz podstawowe informacje na temat konfiguracji aplikacji ASP.NET Core.
Konfiguracja w pliku appsettings.json:
W pliku appsettings.json przechowujesz ustawienia konfiguracyjne Twojej aplikacji. Możesz zdefiniować różne sekcje i klucze, aby przechowywać dane konfiguracyjne. Na przykład, możesz ustawić połączenie do bazy danych, adresy serwerów, klucze API i wiele innych rzeczy.
Przykład appsettings.json:
{
"ConnectionStrings": {
"DefaultConnection": "Server=localhost;Database=mydatabase;User=sa;Password=mypassword;"
},
"AppSettings": {
"ApiKey": "myapikey",
"LogLevel": "Information"
}
}
Ładowanie konfiguracji w Startup.cs:
W klasie Startup.cs możesz wczytać ustawienia z pliku appsettings.json i dostosować zachowanie aplikacji w oparciu o te ustawienia. Aby to zrobić, dodajemy następujący kod w metodzie ConfigureServices:
public void ConfigureServices(IServiceCollection services)
{
// ...
services.Configure<AppSettings>(Configuration.GetSection("AppSettings"));
}
Przy czym AppSettings to klasa, która odpowiada strukturze sekcji "AppSettings" w pliku appsettings.json.
Dostęp do konfiguracji w kontrolerach i usługach:
Teraz możesz uzyskać dostęp do konfiguracji w kontrolerach i usługach, wstrzykując IOptions<T> do konstruktora. Na przykład:
public class MyController : ControllerBase
{
private readonly AppSettings _appSettings;
public MyController(IOptions<AppSettings> appSettings)
{
_appSettings = appSettings.Value;
}
// Teraz możesz użyć _appSettings.ApiKey i inne ustawienia w kontrolerze
}
Konfiguracja zmiennych środowiskowych:
Możesz także używać zmiennych środowiskowych do konfiguracji aplikacji. Na przykład, możesz ustawić zmienną środowiskową MyApp_ApiKey i odczytać ją w konfiguracji.
var apiKey = Environment.GetEnvironmentVariable("MyApp_ApiKey");
Różne środowiska (Development, Production, itp.):
W ASP.NET Core możesz mieć różne konfiguracje dla różnych środowisk, takich jak Development, Production itp. W pliku appsettings.json można utworzyć sekcje o nazwach odpowiadających nazwom środowisk, na przykład appsettings.Development.json, i dostosować ustawienia dla każdego z nich.
Do wyboru konkretnego środowiska używamy zmiennej ASPNETCORE_ENVIRONMENT.
Korzystanie z dostawców konfiguracji zewnętrznych:
Oprócz appsettings.json, ASP.NET Core umożliwia korzystanie z różnych dostawców konfiguracji, takich jak pliki XML, zmienne środowiskowe, pliki konfiguracyjne Azure Key Vault i wiele innych.
Przykład korzystania z Azure Key Vault:
IConfigurationBuilder builder = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddAzureKeyVault(
$"<https://mykeyvault.vault.azure.net/>",
"ClientId",
"ClientSecret");
IConfigurationRoot configuration = builder.Build();
To podstawowa konfiguracja aplikacji ASP.NET Core. Dzięki temu możesz zarządzać ustawieniami i dostosowywać zachowanie swojej aplikacji w zależności od potrzeb i środowiska.