由 馬特·蘇庫普
在本教學課程中,您將瞭解如何使用 Visual Studio 建立 ASP.NET Core Web API 專案、確定其具有 OpenAPI 支援,然後將 Web API 發佈至 Azure App Service 和 Azure API 管理。
設定
若要完成本教學課程,您需要 Azure 帳戶。
- 如果您沒有 Azure 帳戶,請 免費 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 路由
變更 WeatherForecastController
的 Get
動作所需存取的 URL 結構。 完成下列步驟:
開啟
WeatherForecastController.cs
檔案。使用
[Route("/")]
取代[Route("[controller]")]
類別層級屬性。 更新的類別定義:[ApiController] [Route("/")] public class WeatherForecastController : ControllerBase
將 Web API 發佈至 Azure App Service
完成下列步驟,將 ASP.NET Core Web API 發佈至 Azure API 管理:
- 將 API 應用程式發佈至 Azure App Service。
- 將 ASP.NET Core Web API 應用程式發佈至 Azure API 管理服務實例。
將 API 應用程式發佈至 Azure App Service
完成下列步驟,將 ASP.NET Core Web API 發佈至 Azure API 管理:
在 [方案總管]中,以滑鼠右鍵按一下專案,然後選取 [發佈]。
在 [發佈] 對話框中,選取 [Azure],然後選取 [下一步] 按鈕。
選取 [Azure App Service (Windows)],然後選取 [下一步] 按鈕。
選取 [建立新的 Azure App Service。
[建立 App Service] 對話框出現。 應用程式名稱、資源群組和 App Service 方案 項目欄位已填入。 您可以保留這些名稱或加以變更。
選取 [建立] 按鈕。
建立應用程式服務之後,請選取 [下一步] 按鈕。
選取 [建立新的 API 管理服務。
建立 API 管理服務 對話框出現。 您可以保留 API 名稱、訂用帳戶名稱,以及 資源群組 的輸入欄位不變。 選取 新的 按鈕,位於 API 管理服務 條目旁,然後在該對話框中輸入必要的欄位。
選取 [確定] 按鈕以建立 API 管理服務。
選取 [[建立] 按鈕,以繼續進行 API 管理服務的建立。 此步驟可能需要幾分鐘的時間才能完成。
完成後,請選取 [完成] 按鈕。
對話框隨即關閉,摘要畫面隨即出現,其中包含發佈的相關信息。 選擇 發佈 按鈕。
Web API 會同時發佈至 Azure App Service 和 Azure API 管理。 新的瀏覽器視窗隨即出現,並顯示在 Azure App Service 中執行的 API。 您可以關閉該視窗。
在網頁瀏覽器中開啟 Azure 入口網站,並流覽至您所建立的 API 管理實例。
從左側功能表中選取 [API] 選項。
選取您在上述步驟中建立的 API。 現在已經充滿了,您可以盡情探索。
設定已發佈的 API 名稱
請注意,API 的名稱會命名為 weatherAPI ;不過,我們想要將其稱為 天氣預報。 完成下列步驟以更新名稱:
在
services.AddSwaggerGen();
之後立即將下列內容新增至Program.cs
builder.Services.ConfigureSwaggerGen(setup => { setup.SwaggerDoc("v1", new Microsoft.OpenApi.Models.OpenApiInfo { Title = "Weather Forecasts", Version = "v1" }); });
重新發佈 ASP.NET Core Web API,並在 Azure 入口網站中開啟 Azure API 管理實例。
重新整理瀏覽器中的頁面。 您會看到 API 的名稱現在正確了。
確認 Web API 正常運作
您可以從 Azure 入口網站測試 Azure API 管理中已部署的 ASP.NET Core Web API,並執行下列步驟:
- 開啟 測試 索引標籤。
- 選取 [/] 或 [取得 作業]。
- 選取 送出。
清理
當您完成應用程式測試之後,請移至 azure 入口網站 並刪除應用程式。
選取 資源群組,然後選取您建立的資源群組。
在 [資源群組] 頁面中,選取 [刪除]。
輸入資源群組的名稱,然後選取 [刪除]
。 您的應用程式和在本教學課程中建立的所有其他資源現在都會從 Azure 中刪除。