從 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。 然後觸發程序就會傳回包含該檔案內容的回應。
在 Azure 入口網站 中,在設計工具中開啟邏輯應用程式資源和空白工作流程。
根據您是否有取用或標準工作流程,請遵循下列一般步驟來新增名為 HTTP + Swagger 的 HTTP 觸發程式。
在 [ Swagger 端點 ] 方塊中,輸入您想要的 Swagger 檔案 URL,然後選取 [ 新增動作]。
下列範例使用非功能性 Swagger URL。 您的 URL 可能會使用不同的格式。
設計工具顯示 Swagger 檔案所描述的作業之後,請選取您想要使用的作業。
提供觸發程序參數的值,其會根據您想要包含在端點呼叫中的所選作業而不同。
如果觸發程式要求您指定引發排程,請指定觸發程式呼叫端點的頻率週期。
若要新增其他可用參數,請開啟 [進階參數] 清單,然後選取您需要的參數。
如需適用於 HTTP + Swagger 的驗證類型詳細資訊,請參閱將驗證新增至輸出呼叫。
使用觸發程序引發時您要執行的動作來繼續建置工作流程。
完成後,請儲存您的工作流程。 在設計師工具列上選取儲存。
新增 HTTP + Swagger 動作
此內建動作會將 HTTP 要求傳送至描述 REST API 的 Swagger 檔案 URL。 然後動作就會傳回包含該檔案內容的回應。
在 Azure 入口網站中,於設計工具內開啟您的邏輯應用程式資源和工作流程。
根據您是否有取用或標準工作流程,請遵循下列一般步驟來新增名為 HTTP + Swagger 的 HTTP 動作。
在 [ Swagger 端點 ] 方塊中,輸入您想要的 Swagger 檔案 URL,然後選取 [ 新增動作]。
下列範例使用非功能性 Swagger URL。 您的 URL 可能會使用不同的格式。
設計工具顯示 Swagger 檔案所描述的作業之後,請選取您想要使用的作業。
提供動作參數的值,其會根據您想要包含在端點呼叫中的所選作業而不同。
若要新增其他可用參數,請開啟 [進階參數] 清單,然後選取您需要的參數。
如需適用於 HTTP + Swagger 的驗證類型詳細資訊,請參閱將驗證新增至輸出呼叫。
使用您要執行的任何其他動作來繼續建置您的工作流程。
完成後,請儲存您的工作流程。 在設計師工具列上選取儲存。
在 Azure 儲存體中裝載 Swagger
您仍可參考未託管或不符合安全性及跨原始來源需求的 Swagger 檔案。 將 Swagger 檔案上傳至 Azure 儲存體帳戶中的 Blob 容器,並在該儲存體帳戶上啟用 CORS。 若要在 Azure 儲存體中建立、設定和儲存 Swagger 檔案,請遵循下列步驟:
現在針對 Blob 啟用 CORS。 在您的儲存體帳戶功能表上,選取 [CORS]。 在 [ Blob 服務 ] 索引標籤上,指定這些值,然後選取 [ 儲存]。
屬性 值 允許的原始來源 *
允許的方法 GET
、 、HEAD
PUT
允許的標頭 *
公開的標頭 *
存留期上限 (秒) 200
儘管此範例會使用 Azure 入口網站,但您還是可以使用 Azure 儲存體總管之類的工具,或使用此範例 PowerShell 指令碼來自動設定此設定。
建立 Blob 容器。 在容器的 [概觀] 窗格中,選取 [變更存取層級]。 從 [公用存取層級] 清單中,選取 [Blob (僅限 blob 的匿名讀取權限)],然後選取 [確定]。
若要參考 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 | 內部伺服器錯誤。 發生未知錯誤。 |