共用方式為


從 Azure Logic Apps 中的工作流程呼叫 REST API 端點

適用於:Azure Logic Apps (使用量 + 標準)

若要從 Azure Logic Apps 中的邏輯應用程式工作流程呼叫 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 + SwaggerHTTP 動作。

  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 服務 ] 索引標籤上,指定這些值,然後選取 [ 儲存]。

    屬性
    允許的原始來源 *
    允許的方法 GET、 、 HEADPUT
    允許的標頭 *
    公開的標頭 *
    存留期上限 (秒) 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 Object 要求的標頭
body Object 具有來自要求之本文內容的物件
狀態碼 整數 要求的狀態碼
狀態碼 描述
200 確定
202 已接受
400 錯誤要求
401 未經授權
403 禁止
404 找不到
500 內部伺服器錯誤。 發生未知錯誤。