2024-10-16 006_學寫API_關於應用程式怎麼知道是開發環境_launchSettings-json

2024-10-16 006_學寫API_關於應用程式怎麼知道是開發環境_launchSettings-json

應用程序知道是開發環境是因為 ASP.NET Core 的**環境變數 ASPNETCORE_ENVIRONMENT**設定為了特定的值,例如 "Development""Production""Staging"。這個變數用於告訴應用程序目前所處的運行環境,以便針對不同環境配置不同的行為。

在程序中,app.Environment 屬性包含了當前環境的資訊。當你啟動應用程式時,ASP.NET Core 通常會自動檢查環境變數 ASPNETCORE_ENVIRONMENT,並據此設置 app.Environment

在程式碼中這樣寫:

1
2
3
4
5
if (app.Environment.IsDevelopment()) // 如果是開發環境
{
app.UseSwagger(); // 使用 Swagger 中間件來生成文檔
app.UseSwaggerUI(); // 使用 Swagger UI 中間件來提供可視化界面
}

這段程式碼會檢查當前環境是不是 "Development",如果是的話,就會使用 Swagger 來生成文檔和提供可視化界面。

怎麼知道當前環境是開發環境?

  • 在 Visual Studio 或 Visual Studio Code 等開發工具中運行應用時,默認會設置 ASPNETCORE_ENVIRONMENT"Development"
  • launchSettings.json 文件中,你可以看到這樣的設置,來告訴應用是開發環境:
1
2
3
4
5
6
7
8
9
10
11
12
"profiles": {
"http": {
"commandName": "Project",
"dotnetRunMessages": true,
"launchBrowser": true,
"launchUrl": "weatherforecast",
"applicationUrl": "http://localhost:5036",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
}

這裡的 "ASPNETCORE_ENVIRONMENT": "Development" 就是告訴應用程序在運行時是處於開發環境。這個環境變數可以根據不同的部署需求來變更,例如設置為 "Production" 來表示生產環境。

使用環境變數的好處

  1. 配置不同的行為

    • 開發環境中,你可以啟用更多的調試工具(例如 Swagger),或者顯示更加詳細的錯誤信息。
    • 生產環境中,你可以關閉這些開發工具,從而提高安全性和性能。
  2. 靈活性

    • 你可以根據不同的環境來配置不同的連接字串(例如開發環境連接本地數據庫,而生產環境連接正式的雲端數據庫)。

通過設置 ASPNETCORE_ENVIRONMENT,你的應用可以根據不同的運行環境提供適合的行為和配置。