使用封閉API

簡介

Journey Orchestrations API支援5000個事件/秒,但某些外部系統或API無法具有相同的總處理能力。這就是為什麼Journey Orchestration隨附一個稱為「封閉API」的專用功能,可監控並限制我們對外部系統的速率。

在資料來源設定期間,您將定義系統連線,以擷取將用於歷程的其他資訊,或是用於動作定義,您將設定協力廠商系統連線,以傳送訊息或API呼叫。 每次由Journey執行API呼叫時,即會查詢封頂API,呼叫會透過API引擎。 如果已定義限制,則拒絕調用,外部系統不會過載。

如需動作或資料來源設定的詳細資訊,請參閱關於動作關於資料來源

資源

注意

此處可用的Swagger檔案中說明Journey Orchestration封閉API。

若要將此API與您的Journey Orchestration例項搭配使用,您必須使用AdobeI/O Console。 您可以從以下開始使用Adobe Developer Console,然後使用本頁中的章節。

若要測試並準備整合,此處提供Postman系列。

驗證

設定 API 存取

Journey Orchestration API存取權是透過下列步驟設定。這些步驟均在Adobe I/O檔案中詳細說明。

注意

若要在Adobe I/O中管理憑證,請確定您在組織中擁有系統管理員權限,或在管理控制台中擁有開發人員帳戶

  1. 檢查您是否有數位憑證,或視需要建立憑證。在下列步驟中,需要隨憑證提供的公開金鑰和私密金鑰。
  2. 在Adobe I/O中建立 Journey Orchestration Services的新整合併加以設定。Journey Orchestration和Adobe Experience Platform需要產品設定檔存取權。 然後會產生您的認證(API金鑰、用戶端密碼……)。
  3. 從先前產生的認證建立JSON網 頁Token(JWT),並使用您的私密金鑰簽名。JWT會對Adobe驗證您的身分並授與您API存取權所需的所有身分與安全資訊進行編碼。 此步驟在部分中有詳細說明
  4. 透過POST要求或透過「開發人 員控制台介面」,將您的JWT交換為存取Token。此存取Token必須用於API請求的每個標題中。

若要建立安全的服務對服務Adobe I/O API作業階段,對Adobe服務的每個要求都必須在「授權」標題中包含下列資訊。

curl -X GET https://journey.adobe.io/authoring/XXX \
 -H 'Authorization: Bearer <ACCESS_TOKEN>' \
 -H 'x-api-key: <API_KEY>' \
 -H 'x-gw-ims-org-id: <ORGANIZATION>'
  • <organization>:這是您的個人組織ID,Adobe會針對每個例項提供一個組織ID:

    • <organization> :您的生產實例

    若要取得您的組織ID值,請洽詢您的管理員或Adobe技術聯絡人。 建立新整合時,您也可以在授權清單中擷取它至Adobe I/O(請參閱Adobe I/O檔案)。

  • <access_token>:透過POST請求交換JWT時擷取的個人存取Token。

  • <api_key>:您的個人API金鑰。在建立與Journey Orchestration服務的新整合後,Adobe I/O中就提供了它。

設定API說明上限

「設定上限API」可協助您建立、設定和監控您的設定上限。

方法 路徑 說明
POST list/endpointConfigs 獲取端點封閉配置的清單
POST /endpointConfigs 建立端點封閉配置
POST /endpointConfigs/{uid}/deploy 部署端點封閉配置
POST /endpointConfigs/{uid}/undeploy 取消部署端點封閉配置
POST /endpointConfigs/{uid}/canDeploy 檢查是否可部署端點封閉配置
PUT /endpointConfigs/{uid} 更新端點封閉配置
GET /endpointConfigs/{uid} 檢索端點封閉配置
DELETE /endpointConfigs/{uid} 刪除引入點封閉配置

當建立或更新配置時,會自動執行檢查,以確保裝載的語法和完整性。
如果發生某些問題,操作將返回警告或錯誤,以幫助您更正配置。

端點配置

以下是端點配置的基本結構:

{
    "url": "<endpoint URL>",  //wildcards are allowed in the endpoint URL
    "methods": [ "<HTTP method such as GET, POST, >, ...],
    "services": {
        "<service name>": { . //must be "action" or "dataSource" 
            "maxHttpConnections": <max connections count to the endpoint>
            "rating": {          
                "maxCallsCount": <max calls to be performed in the period defined by period/timeUnit>,
                "periodInMs": <integer value greater than 0>
            }
        },
        ...
    }
}

範例:

`{
  "url": "https://api.example.org/data/2.5/*",
  "methods": [
    "GET"
  ],
  "services": {
    "dataSource": {
      "maxHttpConnections": 30000,
      "rating": {
        "maxCallsCount": 5000,
        "periodInMs": 1000
      }
    }
  },
  "orgId": "<IMS Org Id>"
}

警告與錯誤

當呼叫​canDeploy​方法時,該進程會驗證配置並返回由其唯一ID標識的驗證狀態,其中一種方法為:

"ok" or "error"

可能的錯誤有:

  • ERR_ENDPOINTCONFIG_100:上限設定:遺失或無效的URL
  • ERR_ENDPOINTCONFIG_101:上限設定:格式錯誤的url
  • ERR_ENDPOINTCONFIG_102:上限設定:格式錯誤的url:host:port中不允許在URL中使用通配符
  • ERR_ENDPOINTCONFIG_103:上限設定:缺少HTTP方法
  • ERR_ENDPOINTCONFIG_104:上限設定:未定義呼叫評分
  • ERR_ENDPOINTCONFIG_107:上限設定:無效的最大呼叫計數(maxCallsCount)
  • ERR_ENDPOINTCONFIG_108:上限設定:無效的最大呼叫計數(periodInMs)
  • ERR_ENDPOINTCONFIG_111:上限設定:無法建立端點配置:無效載荷
  • ERR_ENDPOINTCONFIG_112:上限設定:無法建立端點配置:需要JSON裝載
  • ERR_AUTHORING_ENDPOINTCONFIG_1:無效的服務名 <!--<given value>-->稱:必須是'dataSource'或'action'

潛在警告是:

ERR_ENDPOINTCONFIG_106:上限設定:未定義最大HTTP連接數:預設情況下不限制

使用案例

在本節中,您將會找到在Journey Orchestration中管理封閉配置時可執行的五個主要使用案例。

為協助您進行測試和設定,此處提供Postman系列。

此Postman Collection已設定為共用透過​Adobe I/O Console的Integrations > Try out > Download for Postman​產生的Postman Environment檔案,其中包含選取的整合值。

下載並上傳至Postman後,您需要新增三個變數:{JO_HOST}{Base_Path}{SANDBOX_NAME}

  • {JO_HOST} : Journey Orchestration 閘道URL
  • {BASE_PATH} :API的入口點。值為'/authoring'
  • {SANDBOX_NAME} :與執 行API作業的沙盒名稱 (例如'prod')對應的標題x-sandbox-name。如需詳細資訊,請參閱沙盒概述

在下節中,您會找到Rest API呼叫排序清單以執行使用案例。

使用案例n°1:建立和部署新的封閉組態

  1. 清單
  2. creat
  3. candeploy
  4. 部署

使用案例n°2:更新並部署尚未部署的上限設定

  1. 清單
  2. get
  3. 更新
  4. candeploy
  5. 部署

使用案例n°3:取消部署並刪除已部署的封閉配置

  1. 清單
  2. 取消部署
  3. 刪除

使用案例n°4:刪除已部署的上限設定配置。

在僅一個API呼叫中,您可以使用forceDelete參數解除部署和刪除設定。

  1. 清單
  2. 刪除,使用forceDelete param

使用案例n°5:更新已部署的封閉配置

  1. 清單
  2. get
  3. 更新
  4. 取消部署
  5. candeploy
  6. 部署

本頁內容