共用方式為


使用 Visual Studio 將 ASP.NET Core Web API 發佈至 Azure API 管理

馬特·蘇庫普

在本教學課程中,您將瞭解如何使用 Visual Studio 建立 ASP.NET Core Web API 專案、確定其具有 OpenAPI 支援,然後將 Web API 發佈至 Azure App Service 和 Azure API 管理。

設定

若要完成本教學課程,您需要 Azure 帳戶。

建立 ASP.NET Core Web API

Visual Studio 可讓您輕鬆地從範本建立新的 ASP.NET Core Web API 專案。 請遵循下列指示來建立新的 ASP.NET Core Web API 專案:

  • 從 [檔案] 功能表中,選取 [新增>專案]。
  • 在搜尋方塊中輸入 Web API
  • 選取 ASP.NET Core Web API 樣本,然後選取 [下一步]
  • 在 [設定新專案] 對話框中,將專案命名為 WeatherAPI ,然後選擇 [下一步]
  • 在 [附加資訊] 對話框中:
  • 請確認框架為 .NET 6.0(長期支援)
  • 確保 [使用控制器] 的複選框已勾選(若未勾選,將使用最少 API)
  • 請確認 [啟用 OpenAPI 支援] 複選框 已被選取。
  • 選取 建立

探索程序代碼

Swagger 定義可讓 Azure API 管理讀取應用程式的 API 定義。 在應用程式建立時勾選 [啟用 OpenAPI 支援] 核取方塊,Visual Studio 會自動新增程式碼來生成 Swagger 定義。 開啟 Program.cs 檔案,其中顯示下列程式代碼:


...

builder.Services.AddSwaggerGen();

...

if (app.Environment.IsDevelopment())
{
    app.UseSwagger();
    app.UseSwaggerUI(); // Protected by if (env.IsDevelopment())
}

...

請確保 Swagger 定義始終被生成

無論應用程式的環境為何,Azure API 管理都需要一律存在 Swagger 定義。 為了確保它始終被產生,將 app.UseSwagger(); 移至 if (app.Environment.IsDevelopment()) 區塊之外。

更新的程式代碼:


...

app.UseSwagger();

if (app.Environment.IsDevelopment())
{
    app.UseSwaggerUI();
}

...

變更 API 路由

變更 WeatherForecastControllerGet 動作所需存取的 URL 結構。 完成下列步驟:

  1. 開啟 WeatherForecastController.cs 檔案。

  2. 使用 [Route("/")]取代 [Route("[controller]")] 類別層級屬性。 更新的類別定義:

    [ApiController]
    [Route("/")]
    public class WeatherForecastController : ControllerBase
    

將 Web API 發佈至 Azure App Service

完成下列步驟,將 ASP.NET Core Web API 發佈至 Azure API 管理:

  1. 將 API 應用程式發佈至 Azure App Service。
  2. 將 ASP.NET Core Web API 應用程式發佈至 Azure API 管理服務實例。

將 API 應用程式發佈至 Azure App Service

完成下列步驟,將 ASP.NET Core Web API 發佈至 Azure API 管理:

  1. [方案總管]中,以滑鼠右鍵按一下專案,然後選取 [發佈]。

  2. 在 [發佈] 對話框中,選取 [Azure],然後選取 [下一步] 按鈕。

  3. 選取 [Azure App Service (Windows)],然後選取 [下一步] 按鈕。

  4. 選取 [建立新的 Azure App Service

    [建立 App Service] 對話框出現。 應用程式名稱資源群組App Service 方案 項目欄位已填入。 您可以保留這些名稱或加以變更。

  5. 選取 [建立] 按鈕。

  6. 建立應用程式服務之後,請選取 [下一步] 按鈕。

  7. 選取 [建立新的 API 管理服務

    建立 API 管理服務 對話框出現。 您可以保留 API 名稱訂用帳戶名稱,以及 資源群組 的輸入欄位不變。 選取 新的 按鈕,位於 API 管理服務 條目旁,然後在該對話框中輸入必要的欄位。

    選取 [確定] 按鈕以建立 API 管理服務。

  8. 選取 [[建立] 按鈕,以繼續進行 API 管理服務的建立。 此步驟可能需要幾分鐘的時間才能完成。

  9. 完成後,請選取 [完成] 按鈕。

  10. 對話框隨即關閉,摘要畫面隨即出現,其中包含發佈的相關信息。 選擇 發佈 按鈕。

    Web API 會同時發佈至 Azure App Service 和 Azure API 管理。 新的瀏覽器視窗隨即出現,並顯示在 Azure App Service 中執行的 API。 您可以關閉該視窗。

  11. 在網頁瀏覽器中開啟 Azure 入口網站,並流覽至您所建立的 API 管理實例。

  12. 從左側功能表中選取 [API] 選項。

  13. 選取您在上述步驟中建立的 API。 現在已經充滿了,您可以盡情探索。

設定已發佈的 API 名稱

請注意,API 的名稱會命名為 weatherAPI ;不過,我們想要將其稱為 天氣預報。 完成下列步驟以更新名稱:

  1. services.AddSwaggerGen(); 之後立即將下列內容新增至 Program.cs

    builder.Services.ConfigureSwaggerGen(setup =>
    {
        setup.SwaggerDoc("v1", new Microsoft.OpenApi.Models.OpenApiInfo
        {
            Title = "Weather Forecasts",
            Version = "v1"
        });
    });
    
  2. 重新發佈 ASP.NET Core Web API,並在 Azure 入口網站中開啟 Azure API 管理實例。

  3. 重新整理瀏覽器中的頁面。 您會看到 API 的名稱現在正確了。

確認 Web API 正常運作

您可以從 Azure 入口網站測試 Azure API 管理中已部署的 ASP.NET Core Web API,並執行下列步驟:

  1. 開啟 測試 索引標籤。
  2. 選取 [/] 或 [取得 作業]。
  3. 選取 送出

清理

當您完成應用程式測試之後,請移至 azure 入口網站 並刪除應用程式。

  1. 選取 資源群組,然後選取您建立的資源群組。

  2. 在 [資源群組] 頁面中,選取 [刪除]

  3. 輸入資源群組的名稱,然後選取 [刪除]。 您的應用程式和在本教學課程中建立的所有其他資源現在都會從 Azure 中刪除。

其他資源