試用範例整合功能
首次在 Google Cloud 專案中設定 Application Integration 時,Application Integration 預設會建立名為 ExampleIntegration-EcomOrderProcessing 的未發布範例整合作業。
查看範例整合
如要查看整合範例,請按照下列步驟操作:
- 前往 Google Cloud 控制台的「Application Integration」頁面。
- 按一下左側導覽選單中的「整合」,開啟「整合」頁面。
- 按一下名為「ExampleIntegration-EcomOrderProcessing」的整合功能。
範例整合服務會在整合服務編輯器中開啟,版面配置如下:
電子商務整合範例
您可以透過這個範例整合服務,實際體驗 Application Integration 的各種觸發條件、工作和概念。
這個範例整合功能可執行電子商務後端的訂單處理作業,適用於下列基本情境:
- 從 API 端點接收下列訂單要求酬載:
{ "order_no": "12345", "buyer_id": "raambo", "line_items": [ { "line": 1, "sku": "tr100", "vendor": "Internal", "quantity": 1, "price_per_unit": 10 }, { "line": 2, "sku": "tbz", "vendor": "External", "quantity": 24.0, "price_per_unit": 1 } ] }
- 擷取訂單酬載,並計算訂單總價值。
- 確認訂單總價值是否大於或等於 $100 美元。如果是,請取得額外核准,然後繼續。
- 確認訂單項目是否有外部供應商。如果是,請使用 REST API 呼叫將詳細資料傳送給供應商。
- 傳送訂單回應,其中包含訂單總價值、經過篩選的外部供應商項目,以及各自的 HTTP 回應狀態。
下表列出 ExampleIntegration-EcomOrderProcessing 中使用的所有觸發條件、工作和邊緣條件:
| 元件 | 設定 | 說明 | |
|---|---|---|---|
| API 觸發條件
(OrderProcessAPITrigger) |
觸發條件 ID: api_trigger/ecom-order-processing_API_1
|
針對每個訂單要求叫用整合功能。 | |
| 資料對應工作
(找出訂單總價) |
輸入 | 輸出 | 擷取 order_request JSON 輸入變數,並使用 FOR_EACH 對應函式逐一處理所有訂單項目,計算訂單總價。
系統會使用 GET_PROPERTY 和 MULTIPLY 對應函式,將商品
然後,最終值會轉換為雙精度浮點數資料型別,並儲存在 |
orders_request.line_items .FOR_EACH(~obj1->~obj1 .GET_PROPERTY("quantity") .TO_DOUBLE() .MULTIPLY(~obj1 .GET_PROPERTY("price_per_unit") .TO_DOUBLE())) .TO_DOUBLE_ARRAY() .SUM() |
total_order_value
|
||
| 邊緣條件
(訂單總金額高於門檻) |
條件: $total_order_value$ >= $threshold_order_value$ |
檢查訂單總價值是否大於或等於 $100 美元。如果是,控制項會傳遞至「核准工作」。 | |
| 邊緣條件
(TotalOrderValue Below Threshold) |
條件: $total_order_value$ < $threshold_order_value$
|
檢查訂單總價值是否低於 $100 美元。如果是,控制項會傳遞至「篩選外部項目」工作。 | |
| 審核工作
(核准) |
收件者: Enter the approver's email address 為測試這個範例整合,您可以使用電子郵件確認整合是否成功完成。 |
傳送核准要求電子郵件給一或多位整合使用者。電子郵件會附上整合服務的連結,使用者可透過該連結手動核准或拒絕要求。 | |
| 資料對應工作
(Filter External Items) |
輸入 | 輸出 | 擷取 order_request JSON 輸入變數,並使用 FILTER 對應函式篩選所有有外部供應商的訂單項目。
然後,篩選後的值會儲存在 |
orders_request .GET_PROPERTY("line_items") .FILTER(~obj1->~obj1 .GET_PROPERTY("vendor") .TO_STRING() .EQUALS("External")) |
filtered_external_items
|
||
| 針對每個迴圈工作
(For Each Loop) |
要疊代的清單: filtered_external_items
API 觸發條件 ID:
整合名稱: |
疊代處理 filtered_external_items 變數,並為陣列中的每個元素呼叫子整合。此外,這個函式也會在 rest_call_response_status 中彙整每次執行的回應,陣列中的每個元素都包含一次執行的回應。 |
|
| API 觸發條件
(Report ExternalOrders) |
觸發條件 ID: api_trigger/ecom-order-processing_API_2
|
針對 filtered_external_items 中的每個元素叫用子整合。 | |
| 呼叫 REST 端點工作
(呼叫 REST 端點) |
端點基準網址: https://mocktarget.apigee.net/echo
HTTP 方法:
要求主體: |
對 https://mocktarget.apigee.net/echo 發出 REST 呼叫。 | |
發布並測試範例整合項目
如要發布整合項目,請按一下整合服務編輯器工具列中的「發布」。
成功發布整合項目後,您可以查看並檢查已發布整合項目的執行記錄。如要查看記錄,請按一下「查看這項整合的執行記錄」
。系統隨即會顯示「執行記錄」頁面。
從整合編輯器進行測試
如要測試範例整合,請按照下列步驟操作:
- 在整合服務編輯器的工具列中,按一下「Test」(測試),然後選取「OrderProcessAPITrigger」。
系統隨即會顯示「測試整合」窗格。
- 系統會提示您編輯
orders_request輸入變數。為了進行這項測試,您可以將quantity值更新為240。更新orders_request輸入變數應如下所示:{ "order_no": "12345", "buyer_id": "raambo", "line_items": [ { "line": 1, "sku": "tr100", "vendor": "Internal", "quantity": 1, "price_per_unit": 10 }, { "line": 2, "sku": "tbz", "vendor": "External", "quantity": 240, "price_per_unit": 1 } ] }
- 按一下「測試整合」。
由於更新後的 orders_request 數量大於 200,範例整合會將核准要求電子郵件傳送至「核准」工作的「收件者」欄位中指定的電子郵件地址。收到核准後,整合訂單作業就會順利完成。
如要進一步瞭解測試,請參閱「測試及發布整合」。
如要檢查執行記錄,並查看指定整合的狀態和酬載,請按照下列步驟操作:
- 在整合服務編輯器中,按一下「查看這項整合的執行記錄」
。系統隨即會顯示「執行記錄」頁面。 - 在「執行記錄」頁面中,您可以查看每次嘗試執行整合的詳細資料。
每個項目都包含執行嘗試的詳細資料,包括:
- 整合作業名稱
- 執行作業 ID
- 狀態
- 開始時間
- 時間長度
- 整合版本
- 觸發條件 ID
- 按一下已執行的整合旁邊的展開箭頭 (>),即可查看整合中的工作和變數展開清單,以及工作狀態和變數有效負載。
使用 REST API 呼叫進行測試
測試案例 1:使用預設輸入內容傳送要求
curl -X POST -H "Content-Type: application/json" -d '{"trigger_id":"api_trigger/ecom-order-processing_API_1"}' 'https://integrations.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/integrations/INTEGRATION_NAME:execute' -H "Authorization: Bearer $(gcloud auth print-access-token)"
測試案例 2:傳送含有自訂輸入內容的要求
curl -X POST -H "Content-Type: application/json" -d '{ "triggerId": "api_trigger/ecom-order-processing_API_1", "inputParameters": { "orders_request": { "jsonValue": "{\n \"order_no\": \"12345\",\n \"buyer_id\": \"raambo\",\n \"line_items\": [{\n \"line\": 1.0,\n \"sku\": \"tr100\",\n \"vendor\": \"Internal\",\n \"quantity\": 1.0,\n \"price_per_unit\": 10.0\n }, {\n \"line\": 2.0,\n \"sku\": \"tbz\",\n \"vendor\": \"External\",\n \"quantity\": 24.0,\n \"price_per_unit\": 2.0\n }]\n}" } } }' 'https://integrations.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/integrations/INTEGRATION_NAME:execute' -H "Authorization: Bearer $(gcloud auth print-access-token)"
取代下列項目:
- PROJECT_ID:您的 Google Cloud 專案 ID。
- LOCATION:整合位置。請參閱「Application Integration 位置」。
- INTEGRATION_NAME:整合項目的名稱。
測試輸出內容
API 會傳回整合執行回應,其中包含所有整合輸出變數值。
配額與限制
如要瞭解配額和限制,請參閱「配額與限制」。