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

从 Azure 逻辑应用中的工作流调用 REST API 终结点

适用范围:Azure 逻辑应用(消耗型 + 标准型)

若要从 Azure 逻辑应用中的逻辑应用工作流调用 REST API 终结点,可以使用内置的 HTTP + Swagger 操作通过 Swagger 文件调用任何 REST API 终结点。 HTTP + Swagger 触发器和操作与 HTTP 触发器和操作的功能相同,但通过公开 Swagger 文件所述的 API 结构和输出,在工作流设计器中提供更好的体验。 若要实现轮询触发器,请遵循创建用于调用逻辑应用工作流中的其他 API、服务和系统的自定义 API 中所述的轮询模式。

限制

HTTP + Swagger 内置操作当前仅支持 OpenAPI 2.0,而不支持 OpenAPI 3.0。

先决条件

  • Azure 帐户和订阅。 如果没有 Azure 订阅,请注册一个免费 Azure 帐户

  • Swagger 文件的 URL,描述要调用的目标 REST API 终结点

    通常,REST 终结点必须满足以下条件,触发器或操作才能生效:

    • Swagger 文件必须托管在可公开访问的 HTTPS URL 上。

    • Swagger 文件必须包含定义中的每个操作的 operationID 属性。 如果未包含,则连接器只显示 Swagger 文件中的最后一个操作。

    • 必须为 Swagger 文件启用跨域资源共享 (CORS)

    注意

    若要引用未托管的或不满足安全性和跨域要求的 Swagger 文件,可将 Swagger 文件上传到 Azure 存储帐户中的 Blob 容器,并在该存储帐户上启用 CORS,以便可以引用该文件。

  • 要从其中调用目标终结点的消耗或标准逻辑应用工作流。 若要开始使用 HTTP + Swagger 触发器,请创建一个具有空白工作流的逻辑应用资源。 若要使用 HTTP + Swagger 操作,请使用所需的任意触发器启动工作流。 此示例使用 HTTP + Swagger 触发器作为第一个操作。

添加 HTTP + Swagger 触发器

此内置触发器将 HTTP 请求发送到描述 REST API 的 Swagger 文件的 URL。 然后,此触发器返回一个包含该文件的内容的响应。

  1. Azure 门户的设计器中,打开逻辑应用资源和空白工作流。

  2. 根据使用的是消耗工作流还是标准工作流,按照以下常规步骤添加名为“HTTP + Swagger”的 HTTP 触发器

  3. 在“Swagger 终结点”框中,输入所需 Swagger 文件的 URL,然后选择“添加操作”

    以下示例使用非功能性 Swagger URL。 URL 可能使用其他格式。

    屏幕截图显示了工作流设计器,其中 HTTP + Swagger 触发器的“添加触发器形状和信息”窗格处于选定状态。“Swagger 终结点”属性设置为示例 URL。

  4. 当设计器显示 Swagger 文件描述的操作后,请选择要使用的操作。

  5. 提供要包含在终结点调用中的触发器参数的值(根据所选的操作而异)。

  6. 如果触发器要求指定触发计划,请指定重复周期,以确定触发器调用终结点的频率。

  7. 要添加其他可用参数,请打开“高级参数”列表,然后选择所需的参数。

    要详细了解可用于 HTTP + Swagger 的身份验证类型,请参阅向出站调用添加身份验证

  8. 使用触发器触发时要运行的操作继续构建工作流程。

  9. 完成后,保存工作流。 在设计器工具栏上选择“保存”。

添加 HTTP + Swagger 操作

此内置操作将 HTTP 请求发送到描述 REST API 的 Swagger 文件的 URL。 然后,此操作返回一个包含该文件的内容的响应。

  1. Azure 门户的设计器中,打开你的逻辑应用资源和工作流。

  2. 根据使用的是消耗工作流还是标准工作流,按照以下常规步骤添加名为“HTTP + Swagger”的 HTTP 操作

  3. 在“Swagger 终结点”框中,输入所需 Swagger 文件的 URL,然后选择“添加操作”

    以下示例使用非功能性 Swagger URL。 URL 可能使用其他格式。

    屏幕截图显示了工作流设计器,其中包含名为 Fabrikam API 的触发器以及 HTTP + Swagger 操作的“创建订单和打开信息”窗格。“Swagger 终结点”属性设置为 URL。

  4. 当设计器显示 Swagger 文件描述的操作后,请选择要使用的操作。

  5. 提供要包含在终结点调用中的操作参数的值(根据所选的操作而异)。

  6. 要添加其他可用参数,请打开“高级参数”列表,然后选择所需的参数。

    要详细了解可用于 HTTP + Swagger 的身份验证类型,请参阅向出站调用添加身份验证

  7. 继续使用你想要运行的任何其他操作构建工作流程。

  8. 完成后,保存工作流。 在设计器工具栏上选择“保存”。

在 Azure 存储中托管 Swagger

你仍然可以引用非托管的或者不符合安全要求和跨域要求的 Swagger 文件。 请将 Swagger 文件上传到 Azure 存储帐户中的 Blob 容器,并在该存储帐户中启用 CORS。 若要在 Azure 存储中创建、设置和存储 Swagger 文件,请执行以下步骤:

  1. 创建 Azure 存储帐户

  2. 现在,为 Blob 启用 CORS。 在存储帐户的菜单中选择“CORS”。 在“Blob 服务”选项卡上,指定以下值,然后选择“保存”

    属性
    允许的源 *
    允许的方法 GETHEADPUT
    允许的标头 *
    公开的标头 *
    最大期限(以秒为单位) 200

    此示例使用 Azure 门户,不过,你也可以使用 Azure 存储资源管理器之类的工具,或使用此示例 PowerShell 脚本自动配置此设置。

  3. 创建 Blob 容器。 在容器的“概述”窗格中,选择“更改访问级别”。 在“公共访问级别”列表中,选择“Blob (仅限对 Blob 进行匿名读取访问)”,然后选择“确定”。

  4. 通过 Azure 门户Azure 存储资源管理器将 Swagger 文件上传到 Blob 容器

  5. 若要在 Blob 容器中引用该文件,请从 Azure 存储资源管理器获取采用以下格式(区分大小写)的 HTTPS URL:

    https://<storage-account-name>.blob.core.windows.net/<blob-container-name>/<complete-swagger-file-name>?<query-parameters>

连接器技术参考

本部分提供有关 HTTP + Swagger 触发器和操作的输出的详细信息。

输出

HTTP + Swagger 调用返回以下信息:

属性名称 类型​​ 说明
headers 对象 请求中的标头
body 对象 包含请求中正文内容的对象
状态代码 Integer 请求中的状态代码
状态代码 说明
200 确定
202 已接受
400 错误的请求
401 未授权
403 禁止
404 未找到
500 内部服务器错误。 发生未知错误。