你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

如何使用 Visual Studio 向 Azure 数字孪生 API 发送请求

Visual Studio 2022 支持 .http 文件,这些文件可用于构建、存储和直接从应用程序发送 HTTP 请求。 使用 Visual Studio 的此功能是创建 HTTP 请求并将其提交给 Azure 数字孪生 REST API 的一种方法。 本文介绍如何在 Visual Studio 中设置可与 Azure 数字孪生 API 进行交互的 .http 文件。

本文包含有关以下步骤的信息:

  1. 使用代表 Azure 数字孪生实例的变量设置 Visual Studio 项目和 .http 文件。
  2. 使用 Azure CLI 获取持有者令牌,你可以使用该令牌在 Visual Studio 中发出 API 请求。
  3. 使用 Azure 数字孪生 REST API 文档作为资源,在 .http 文件中创建请求,并将其发送到 Azure 数字孪生 API。

Azure 数字孪生提供了两个可用的 API 集:数据平面和控制平面。 有关这些 API 集之间的差异的详细信息,请参阅 Azure 数字孪生 API 和 SDK。 本文包含这两个 API 集的说明。

有关 Visual Studio 中 .http 文件支持的详细信息,请参阅在 Visual Studio 2022 中使用 .http 文件

先决条件

若要使用 Visual Studio 向 Azure 数字孪生 API 发出请求,需要设置 Azure 数字孪生实例并下载 Visual Studio 2022。 本部分适用于这些步骤。

设置 Azure 数字孪生实例

若要在本文中使用 Azure 数字孪生,你需要有一个 Azure 数字孪生实例,还需具备使用它所必需的权限。 如果你已设置了一个 Azure 数字孪生实例,则可以使用该实例并跳到下一部分。 如果没有,请按照设置实例和身份验证中的说明操作。 该说明中包含可帮助你验证是否已成功完成每个步骤的信息。

设置实例后,记下实例的主机名。 可以在 Azure 门户中找到该主机名

下载 Visual Studio 2022

接下来,下载 Visual Studio 2022。 请确保在安装中包含 ASP.NET 和 Web 开发工作负载

设置 Visual Studio 项目

在本部分中,将在 Visual Studio 中设置用于创建 HTTP 请求的项目。

在计算机上打开 Visual Studio,并创建一个新项目。 使用 ASP.NET Core 空项目模板

Visual Studio 中 ASP.NET Core 空项目模板的屏幕截图。

按照创建 .http 文件中的说明在项目中创建新的 .http 文件。

添加变量

接下来,在 .http 文件的顶部添加一些变量,该文件将用于连接到 Azure 数字孪生资源。

所需的变量集取决于使用的 API 集,因此请使用下面的选项卡在数据平面控制平面 API 之间进行选择。

为数据平面请求添加以下变量。 Azure 数字孪生实例的主机名有一个占位符(以 digitaltwins.azure.net 结尾)。

@hostName=<host-name-of-your-Azure-Digital-Twins-instance>
@DPversion=2023-10-31

添加持有者令牌

现在,你已设置 Azure 数字孪生实例和 Visual Studio 项目,接下来需要获取持有者令牌,HTTP 请求可使用该令牌向 Azure 数字孪生 API 授权。

有多种方法可以获取此令牌。 本文使用 Azure CLI 登录到 Azure 帐户,并以这种方式获取令牌。

如果已在本地安装 Azure CLI,可在计算机上启动命令提示符来运行以下命令。 否则,可以在浏览器中打开 Azure Cloud Shell 窗口,并在其中运行命令。

  1. 首先,请通过运行以下命令来确保你已使用正确的凭据登录到 Azure:

    az login
    
  2. 接下来,使用 az account get-access-token 命令获取具有 Azure 数字孪生服务访问权限的持有者令牌。 在此命令中,传入 Azure 数字孪生服务终结点的资源 ID,以获取可访问 Azure 数字孪生资源的访问令牌。

    令牌需要的上下文取决于使用的 API 集,因此请使用下面的选项卡在数据平面控制平面 API 之间进行选择。

    如果要获取用于数据平面 API 的令牌,请为令牌上下文使用以下静态值:0b07f429-9f4b-4714-9392-cc5e8e80c8b0。 此值为 Azure 数字孪生服务终结点的资源 ID。

    az account get-access-token --resource 0b07f429-9f4b-4714-9392-cc5e8e80c8b0
    

    注意

    如果需要使用属于不同于实例的 Microsoft Entra 租户的服务主体或用户帐户来访问 Azure 数字孪生实例,则需要从 Azure 数字孪生实例的“主”租户请求令牌。 有关此过程的详细信息,请参阅编写应用身份验证代码

  3. 复制结果中 accessToken 的值。 此值是你将粘贴到 Visual Studio 以授权请求的令牌值

    控制台的屏幕截图,其中显示了 az account get-access-token 命令的结果。accessToken 字段,其中突出显示了其示例值。

提示

此令牌的有效期至少为五分钟,最长为 60 分钟。 如果为当前令牌分配的时间不足,则可以重复本部分中的步骤来获取新令牌。

将令牌添加到 .http 文件

在 Visual Studio 中的 .http 文件中,添加另一个保存令牌值的变量。

@token=<paste-data-plane-token>

变量现在应如下所示:

数据平面变量(包括令牌)的屏幕截图。

添加请求

现在 .http 文件已设置完毕,可将请求添加到 Azure 数字孪生 API。

首先打开 Azure 数字孪生 REST API 参考。 此文档包含 API 涵盖的所有操作的详细信息。 导航到要运行的请求的参考页。

本文将使用数据平面中的 DigitalTwins Update API 作为示例。

  1. 添加请求模板:复制参考文档中所示的 HTTP 请求。

    数字孪生 API 文档中 HTTP 请求的屏幕截图。

    在 Visual Studio 中,将请求粘贴到 .http 文件中变量下方的新行中。

  2. 添加参数:查看参考文档的“URI 参数”部分,以了解请求需要哪些参数值。 可以将某些参数值替换为之前创建的变量,并根据需要填写其他参数值。 若要引用变量,请将变量名称置于双大括号中,如 {{variable}}。 有关更多详细信息,请参阅变量

    注意

    对于数据平面请求,digitaltwins-hostname 也是一个参数。 将此参数替换为 {{hostName}},以使用主机名变量的值。

    此步骤在示例请求中如下所示:

    Visual Studio 中包含参数的请求的屏幕截图。

  3. 添加授权:在请求下方直接添加以下行(完全按照所写内容),以使用持有者令牌变量指定身份验证。

    Authorization: Bearer {{token}}
    

    此步骤在示例请求中如下所示:

    Visual Studio 中包含授权行的请求的屏幕截图。

  4. 添加其他标头:查看参考文档的“请求标头”部分,以了解请求附带哪些标头值。 你可能还想要包括传统的 HTTP 标头,如 Content-Type。 以 HeaderName: Value 格式在其自己的行上添加每个标头。 有关更多详细信息,请参阅请求标头

    此步骤在示例请求中如下所示:

    Visual Studio 中包含其他标头的请求的屏幕截图。

  5. 添加正文:查看参考文档“请求正文”部分,以了解请求可能需要哪些正文信息。 在空白行后添加请求正文。 有关更多详细信息,请参阅请求正文

    此步骤在示例请求中如下所示:Visual Studio 中包含正文的请求的屏幕截图。

  6. 请求准备就绪后,请选择请求上方的“发送请求”将其发送

    Visual Studio 中发送请求的屏幕截图。

Visual Studio 将显示一个包含响应详细信息的窗格。 请查看参考文档的“响应”部分,以解释状态代码和响应正文中的任何数据

Visual Studio 中的响应的屏幕截图。

添加其他请求

若要向 .http 文件添加更多请求,请使用 ### 作为分隔符将其分隔。

Visual Studio 中一个文件的多个请求的屏幕截图。

后续步骤

有关在 Visual Studio 中使用 .http 文件发送请求的更多详细信息,包括语法详细信息和高级方案,请参阅在 Visual Studio 2022 中使用 .http 文件

若要详细了解数字孪生 API,请阅读 Azure 数字孪生 API 和 SDK,或查看 REST API 的参考文档