WebSphere Cast Iron(以下簡稱 Cast Iron)被廣泛用於整個內部和外部應用程序的集成和遷移。過去,大多數基於 SaaS 的應用程序都公開了 REST API,這些 API 用於處理 JSON 數據。然而,Cast Iron 主要處理 XML 和 XML 模式。為了支持有效的 REST API 調用,Cast Iron 引入了兩個新活動來處理 JSON 數據。
您可以在調用 REST API (大部分是 SaaS 供應商公開的)的過程中使用 Read JSON 和 Write JSON 活動來創建 JSON 請求並解析 JSON 響應。在第 2 部分中,您將學習一個調用 Salesforce.com REST API 來創建帳戶記錄的有效方法。
在該場景中,必須調用一個 Salesforce.com REST API 來創建一個帳戶,該帳戶會接受輸入並以 JSON 格式發送一個回復數據。表 1 中顯示了一個樣例 JSON 請求和 Salesforce.com REST API 響應。
在構建復雜的整合流程時,所提及的輸入名稱可以跨變量進行映射,這些變量最終必須作為 JSON Request 數據的一部分進行發送。類似地,從 Salesforce.com API 接收的 JSON Response 必須易於映射,以實現有效的整合流程開發。
在圖 1 所示的整合流程中,“name” 可作為一個 HTTP 主體傳遞到 Receive REST Request 活動,供 Write JSON 所,用以形成 Salesforce.com API 的 JSON Request。另一方面,Salesforce.com API 調用輸出可供 Read JSON 活動所用,該活動提供了 XML 格式的輸出數據,以便跨整合流程輕松有效地實現映射。
Receive REST Request (Receive Request) 活動接收主體變量中的文本。“name” 值用於在 Salesforce.com 中創建一個帳戶。表 2 展示了完成 Receive REST Request 活動的檢查清單的步驟。
Get SDFC Session ID (Invoke Service) 活動使用已公開的 Web 服務登錄到 Salesforce.com,並提取 Session ID 供 Salesforce.com 進一步調用使用。表 3 顯示了完成 Get SDFC Session ID Activity 檢查清單的步驟。
Create the JSON Request 活動 (Write JSON) 提供了一個 “name”,該 “name” 被作為 JSON 格式的主體變量的一部分接收。在該場景中,將使用一個 XML 模式(如清單 1 所示)來配置 JSON 活動。將 XML Schema 添加到 Cast Iron Studio 項目來配置 Create JSON Request (Write JSON) 活動。從 Configure 窗口中選擇 Select XML Schema 作為消息類型,如圖 2 所示。
清單 1. 帳戶名 XML Schema
<?xml version="1.0" encoding="UTF-8"?> <schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://www.approuter.com/schemas/RootNode" xmlns="http://www.w3.org/2001/XMLSchema"> <element name="name" nillable="false"> <complexType> <sequence> <element maxOccurs="1" minOccurs="0" name="name" nillable="false" type="string" /> </sequence> </complexType> </element> </schema>
一旦啟用了 Select XML schema 選項,Select XML schema 按鈕就會處於激活狀態,如圖 2 所示。單擊 Select XML Schema 按鈕來浏覽 XML 模式,然後選擇 XML 模式節點並單擊 OK。在圖 3 中可以看到作為 Map Inputs 參數的被選中的 XML 模式節點。
選中 Remove Root Element 復選框,從 JSON 結果中刪除虛擬根元素,以匹配請求格式(結構如 表 1 中所示)。
單擊 Map Input 清單列表項,然後單擊 Select Input... 按鈕來選中輸入變量 accountname,該變量是在配置 HTTP Receive Request 活動時創建的。從 accountname 到 name 字段的映射如圖 3 所示。
單擊 Map Output 並復制 JSON 文本來創建一個新變量 jsonRequest,如圖 4 所示。您可以使用這個 jsonRequest 來配置下一個活動。
現在添加和配置 Create SFDC Account (HTTP Post Request) 活動,這將創建一個 Salesforce.com 帳戶。您已經生成了一個 Salesforce.com 會話 ID 作為 Invoke Service 和 JSON 消息的輸出。配置 HTTP Post 活動,在 Salesforce.com 中創建一個帳戶。然後,使用表 4 中展示的下列細節配置 HTTP Post Request,以便調用 SFDC 創建一個帳戶。
現在將 JSON 響應添加到 XML 活動 (Read JSON) 並對其進行配置。"CreateAccountResponse" 是 JSON 格式的,必須將它轉換成 XML 變量,以便在整合流程中進一步映射響應。您可以對 Read JSON 進行如下配置。正如您使用 XML Schema 來配置 JSON 活動一樣,您可以將 XML Schema 結果添加到項目,如清單 2 所示。
<?xml version="1.0" encoding="UTF-8"?> <schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://www.approuter.com/schemas/RootNode" xmlns="http://www.w3.org/2001/XMLSchema"> <element name="Result" nillable="false"> <complexType> <sequence> <element maxOccurs="1" minOccurs="0" name="id" nillable="false" type="string" /> <element maxOccurs="1" minOccurs="0" name="success" nillable="false" type="string" /> <element maxOccurs="1" minOccurs="0" name="errors" nillable="false" type="string" /> </sequence> </complexType> </element> </schema>
單擊 Configure 窗口中的 Select XML Schema 消息類型,如圖 5 所示。
查看本欄目
一旦啟用了 Select XML schema 選項,Select XML schema 按鈕就會處於激活狀態,如圖 5 所示。單擊 Select XML Schema 按鈕來浏覽 XML 模式,然後選擇 XML schema node 並單擊 OK。在圖 5 中可以查看選中作為 Map Inputs 參數的 XML 模式節點。
單擊 Map Inputs 清單列表項,單擊 Select Inputs… 按鈕,然後選擇輸入變量 CreateAccResponse,該變量是在配置 HTTP Post Activity 時創建的。然後將 CreateAccResponse 映射到 JsonText,如圖 6 所示。
在 Checklist 面板中單擊 Map Outputs,然後將 JSON 文本復制到一個新變量 XMLResult,如圖 7 所示。
在未來活動中,可以使用 XMLResult 跨整合流程有效映射結果數據。
現在,您已經使用 Salesforce.com 公開的 REST API 開發了一個整合流程,該整合流程接受一個帳戶名並使用同一個帳戶名來在 Salesforce.com 中創建一個 Account 記錄。
要測試該整合流程,完成下列步驟:
單擊 Project 選項卡,右鍵單擊 CreateSFDCAccount 整合流程名,然後單擊 Start Orchestration,如圖 8 所示。
單擊 Tools 菜單並選擇 HTTP Post Utility 來調用 API。此時將會出現 HTTP Post 窗口。在 “Post a message” 文本框中輸入 DeveloperWorksArticle。指定 HTTP Receive Request Activity 中配置的 URL,然後選擇方法 POST。單擊 Submit 選項卡發布請求,如圖 9 所示。
成功完成整合流程後,就可以驗證 Salesforce.com 中是否創建了該帳戶。圖 10 顯示在 Salesforce.com 中創建了名為 “DeveloperWorksArticle” 的帳戶記錄。
查看本欄目
XMLResult 變量保存了 JSON 響應數據,該響應是作為 Salesforce.com 帳戶創建調用的一部分被接收的。圖 11 顯示了 XMLResult,可使用它實現該整合流程中的所有活動之間的進一步映射。
您已經通過有效處理 Cast Iron 中的 JSON 數據,使用基於 JSON 的 REST API 在 Salesforce.com 中成功創建了一個帳戶。在 第 3 部分 中,您將學習如何設計一個作為基於 JSON 的 API 公開的整合流程。
在本系列文章的第 2 部分中,您學習了在調用 REST API 的過程中如何使用 WebSphere Cast Iron 中的 Read JSON 和 Write JSON 活動來有效處理 JSON 數據。本文重點介紹了配置 Read JSON 和 Write JSON 活動時對現有 XML 模式的使用。在 第 3 部分 中,您將學習如何設計一個被公開為基於 JSON 的 API 的整合流程。本文還介紹了對 Salesforce.com API 的調用,這是一個可用來調用其他基於 JSON 的 REST API 的類似方法。