在本练习中,你将在本地运行 ASP.NET Core 最小 API,并浏览该 API 和基础代码。 您还可以将 API 发布到 Azure 应用服务。

完成本练习后,您将能够

  • 浏览记录的 API
  • 确定 HTTP 操作的终结点
  • 确定 HTTP 操作的 API 要求
  • 将应用程序发布到 Azure 应用程序服务

先决条件

要完成本练习,您需要在系统中安装以下设备:

预计练习完成时间:30 分钟

API 信息

API 与内存数据库交互,该数据库包含以下字段:

字段 类型​​ 说明
id integer 数据密钥
name string 水果名称
instock boolean 表示水果是否有库存

Swagger 文档是使用 Swashbuckle 软件包创建的。

注意: 每次启动 API 时都会创建样本数据。

下载并运行水果 API 代码

在本部分,你将执行以下操作:

  • 下载 API 代码
  • 在本地运行 API
  • 在浏览器中打开 API 文档

任务 1:下载 API 代码

  1. 右键单击以下链接并选择另存链接选项。

  2. 启动文件资源管理器并导航到文件保存的位置。

  3. 将文件解压缩到它自己的文件夹中。

任务 2:本地运行 API

  1. 启动 Visual Studio Code,在菜单栏中选择文件,然后选择打开文件夹……

  2. 导航至解压项目文件的位置,选择 FruitAPI 文件夹。

  3. 浏览器窗格中的项目结构应与以下截图类似。 如果浏览器窗格不可见,请选择查看,然后在菜单栏中选择浏览器

    显示 FruitAPI 项目结构的截图。

  4. 选择“终端”,然后选择“新建终端”,或使用键盘快捷方式 Ctrl+Shift+`,在 VS Code 中打开终端。

  5. 终端窗格中运行以下dotnet命令:

     dotnet run
    
  6. 以下是在终端窗格中看到的输出示例。 请注意Now listening on: http://localhost:5050输出中的一行。 它标识了 API 的主机和端口。

     info: Microsoft.EntityFrameworkCore.Update[30100]
           Saved 3 entities to in-memory store.
     info: Microsoft.Hosting.Lifetime[14]
           Now listening on: http://localhost:5050
     info: Microsoft.Hosting.Lifetime[0]
           Application started. Press Ctrl+C to shut down.
     info: Microsoft.Hosting.Lifetime[0]
           Hosting environment: Development
     info: Microsoft.Hosting.Lifetime[0]
           Content root path: 
           <project location>
    

任务 3:在浏览器中打开 API 文档

  1. 要查看 API,可以输入http://localhost:5050地址栏,也可以按住 Ctrl+ 点击之前显示的终端中的Now listening on: http://localhost:5050链接。 页面会显示找不到此 localhost 页面的信息。

  2. 在浏览器中用……添加 URL/swagger/swagger终结点通常是你能找到 Swagger API 文档的地方。 Swagger 文档的完整 URL 是http://localhost:5050/swagger. 现在,您的浏览器应该会显示与以下截图类似的网页:

    API 文档页面截图。

在 API 中执行操作

在本部分,你将执行以下操作:

  • 对样本数据执行若干操作
  • 确定操作的终结点和数据要求

任务 1:执行GET操作

  1. 单击 GET 操作框中的任意位置,使用 Get all fruits 描述符展开 GET 操作。

  2. 探索操作的各个部分,并注意下表中显示的信息。

    部分 说明
    终结点 显示在操作标题中。 端点显示为/fruits. 完整 URI 是 API 的基本 URL,在我们的示例中附加了指定的终结点http://localhost:5050/fruits
    Parameters 此操作不需要。
    媒体类型 指定操作将返回的媒体类型编码。
    示例值 显示操作返回的数据模式。 请注意,此操作会返回一个 JSON 数组。
  3. 选择试用按钮,然后选择执行,运行操作。

  4. 操作的响应部分已更新为新信息。 请注意以下事项:

    • 请求 URL:操作中访问的 URL。
    • 服务器响应:显示操作的成功代码,响应正文显示三条样本记录。

任务 2:执行POST操作

  1. 单击 POST 操作框中的任意位置,使用 Create a new fruit 描述符展开 POST 操作。

  2. 探索操作的各个部分,并注意下表中显示的信息。

    部分 说明
    终结点 终结点显示为 /fruits。 完整 URI 是 API 的基本 URL,在我们的示例中附加了指定的终结点http://localhost:5050/fruits
    Parameters 此操作不需要。
    请求正文 请求正文是必需的,因为 API 希望将数据添加到列表中,并且希望媒体类型为 .NETapplication/json
    示例值 显示 API 期望接收的数据模式。
  3. 要运行操作,请选择试用按钮。

  4. 请求正文部分下输入框中的 JSON 替换为以下内容:

     {
         "id": 0,
         "name": "Pear",
         "instock": true
     }
    

    注意: 添加数据时,数据库会分配自己的索引值,因此只需在id字段中有一个值即可。

  5. 操作的响应部分已更新为新信息。 请注意以下事项:

    • 请求 URL:操作中访问的 URL。
    • 服务器响应:显示操作的成功代码,响应正文显示添加到数据库的记录。
  6. 运行 Get all fruit 部分中的 GET 命令,注意现在包含 Pear 的记录。

任务 3:执行DELETE操作

  1. 单击 DELETE 操作框中的任意位置,使用 Delete a fruit by Id 描述符展开 DELETE 操作。

  2. 探索操作的各个部分,并注意下表中显示的信息。

    部分 说明
    终结点 终结点显示为 /fruits/{id}。 完整 URI 是 API 的基本 URL,并附加了指定的id删除内容。 例如,http://localhost:5050/fruits/1指向id等于1
    Parameters 要求在请求 URL 中传递记录id
  3. 要运行操作,请选择试用按钮。

  4. 参数部分的id字段中输入一个 1,然后选择执行,即可删除样本数据中的Apple记录。

  5. 操作的响应部分已更新为新信息。 请注意以下事项:

    • 请求 URL:操作中访问的 URL。
    • 响应正文:显示删除的记录。
    • 代码:显示操作的成功代码。
  6. 运行 Get all fruits 部分中的 GET 命令,注意 Apple 的记录已删除。

准备好进入下一节练习时,请执行以下操作

  • 关闭浏览器,并在运行水果 API 的终端中输入 Ctrl + C 停止该 API。

将 API 发布到 Azure 应用服务

在本部分,你将执行以下操作:

  • 使用 Azure 资源扩展连接到 Azure
  • 使用 Azure App 服务扩展将 API 发布到应用服务

任务 1:登录到 Azure

  1. 选择Azure 资源扩展打开面板。

    显示 Azure 资源扩展图标和初始选项的截图。

  2. 选择登录到 Azure……

    将打开一个浏览器窗口,提示您登录到 Azure 帐户。 完成登录后,可以关闭此窗口。

  3. 登录完成后,扩展将显示账户中可用订阅的列表。 下面的截图就是一个例子。

    登录后显示扩展面板内容的截图。

任务 2:创建新的网络应用程序

  1. 选择 Ctrl + Shift + P 打开命令面板,然后键入创建新 Web 应用程序过滤列表并选择 Azure 应用服务:创建新 Web 应用程序……(高级) 选项。

  2. 如果您的帐户有多个订阅,系统会提示您选择要用于部署的订阅。

  3. 为新 Web 应用输入全局唯一名称。 您可以尝试fruitapi-<name>用您的姓名或姓名首字母进行替换<name>

  4. 选择创建新资源组并接受默认值或输入fruitapi-rg

  5. 选择 .NET 8 (LTS) 作为运行时栈。

  6. 操作系统选择 Linux

  7. 为新资源选择一个离您较近的位置。

  8. 选择创建新的应用服务计划并接受默认值或输入其他名称。

  9. 选择免费 (F1) 免费试用 Azure 的定价层级。

  10. 当提示需要新的 Application Insights 资源时,选择暂时跳过

该工具将在 Azure 中创建必要的资源并编译代码。

任务 3:部署网络应用程序并浏览运行网站

  1. 资源创建和代码编译完成后,会弹出一个窗口提示您部署,请选择部署选项。

    系统将构建代码的发布版本,并将其部署到之前创建的资源中。

  2. 部署完成后,会弹出一个新窗口,提示浏览网站,选择浏览网站

  3. 在打开的浏览器窗口中,可能需要在 URL 结尾添加 /fruits。 将看到 API 的原始输出,其中显示所有数据。

    备注: Swagger UI 已禁用,因为它仅针对开发环境启用。 除非执行其他配置,否则部署到 App 服务被视为非开发环境。

恭喜,您已成功将 API 部署到 Azure 应用服务。

注意:从 Azure 中删除不再需要的资源是一种好的做法。 可以通过删除之前在 Azure 门户中创建的资源组来删除本节练习中创建的所有资源。

审阅

在本练习中,你了解了如何:

  • 浏览记录的 API
  • 确定 HTTP 操作的终结点
  • 确定 HTTP 操作的 API 要求
  • 将应用程序发布到 Azure 应用程序服务