作者:Matt Soucoup
本教程介绍如何使用 Visual Studio 创建 ASP.NET 核心 Web API 项目,确保它具有 OpenAPI 支持,然后将 Web API 发布到 Azure 应用服务和 Azure API 管理。
设置
若要完成本教程,需要一个 Azure 帐户。
- 如果没有免费 Azure 帐户,请开设一个。
创建 ASP.NET 核心 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("[controller]")]
类级属性替换为[Route("/")]
。 更新后的类定义:[ApiController] [Route("/")] public class WeatherForecastController : ControllerBase
将 Web API 发布到 Azure 应用服务
完成以下步骤,将 ASP.NET Core Web API 发布到 Azure API 管理:
- 将 API 应用发布到 Azure 应用服务。
- 将 ASP.NET 核心 Web API 应用发布到 Azure API 管理服务实例。
将 API 应用发布到 Azure 应用服务
完成以下步骤,将 ASP.NET Core Web API 发布到 Azure API 管理:
在 解决方案资源管理器中,右键单击项目并选择 发布。
在“发布”对话框中,选择“Azure”,然后选择“下一步”按钮。
选择 Azure 应用程序服务 (Windows),然后选择下一步按钮。
选择“创建新的 Azure 应用服务。
此时会显示创建应用程序服务对话框。 应用名称、资源组和 应用服务计划 输入字段已填充。 可以保留这些名称或更改这些名称。
选择“创建”按钮。
创建应用服务后,选择“下一步”按钮。
选择 创建新的 API 管理服务。
“创建 API 管理服务”对话框会显示。 可以保留 API 名称、订阅名称和 资源组 输入字段。 选择“API 管理服务”条目旁边的“新建”按钮,然后从该对话框中输入必填字段。
选择 确定 按钮以创建 API 管理服务。
选择 “创建”按钮以继续创建 API 管理服务。 此步骤可能需要几分钟才能完成。
完成后,选择“完成”按钮。
该对话框关闭并显示一个摘要屏幕,提供有关发布的信息。 选择发布按钮。
Web API 同时发布到 Azure 应用服务和 Azure API 管理。 将出现一个新的浏览器窗口,并显示 Azure 应用服务中运行的 API。 可以关闭该窗口。
在 Web 浏览器中打开 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 核心 Web API 并在 Azure 门户中打开 Azure API 管理实例。
在浏览器中刷新页面。 此时会看到 API 的名称正确。
验证 Web API 是否正常工作
可以通过以下步骤在 Azure 门户中测试 Azure API 管理中部署的 ASP.NET Core Web API:
- 打开测试选项卡。
- 选择 / 或 Get 操作。
- 选择 发送。
清理
选择 资源组,然后选择创建的资源组。
在 资源组 页中,选择 删除。
输入资源组的名称,然后选择“删除”。 本教程中创建的应用和所有其他资源现已从 Azure 中删除。