程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> WebSphere >> 在WebSphere Cast Iron中使用JSON(二) 調用基於JSON的REST API

在WebSphere Cast Iron中使用JSON(二) 調用基於JSON的REST API

編輯:WebSphere

簡介

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 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 格式的輸出數據,以便跨整合流程輕松有效地實現映射。

圖 1. 創建一個 Salesforce.com 帳戶整合流程

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>
圖 2. Create the JSON Request 活動

一旦啟用了 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 所示。

圖 3. Create the JSON Request 活動的 Map Input

單擊 Map Output 並復制 JSON 文本來創建一個新變量 jsonRequest,如圖 4 所示。您可以使用這個 jsonRequest 來配置下一個活動。

圖 4. Create the JSON Request 活動的 Map Output

現在添加和配置 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 所示。

清單 2.  創建一個帳戶響應 XML 模式
<?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 所示。  

圖 5. 將 JSON 響應轉換成一個 XML 活動

查看本欄目

一旦啟用了 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 所示。

圖 6. 將 JSON 響應轉換成 XML Activity Map Input

在 Checklist 面板中單擊 Map Outputs,然後將 JSON 文本復制到一個新變量  XMLResult,如圖 7 所示。

圖 7. 將 JSON 響應轉換成 XML Activity Map Output

在未來活動中,可以使用 XMLResult 跨整合流程有效映射結果數據。

測試整合流程

現在,您已經使用 Salesforce.com 公開的 REST API 開發了一個整合流程,該整合流程接受一個帳戶名並使用同一個帳戶名來在 Salesforce.com 中創建一個 Account  記錄。

要測試該整合流程,完成下列步驟:

單擊 Project 選項卡,右鍵單擊 CreateSFDCAccount 整合流程名,然後單擊 Start Orchestration,如圖 8 所示。

圖 8. 啟動 CreateSFDCAccount Orchestration

單擊 Tools 菜單並選擇 HTTP Post Utility 來調用 API。此時將會出現 HTTP Post 窗口。在 “Post a message” 文本框中輸入 DeveloperWorksArticle。指定 HTTP Receive Request Activity 中配置的 URL,然後選擇方法 POST。單擊 Submit 選項卡發布請求,如圖 9 所示。

圖 9. 使用 HTTP Post Utility 進行調用

成功完成整合流程後,就可以驗證 Salesforce.com 中是否創建了該帳戶。圖 10 顯示在 Salesforce.com 中創建了名為 “DeveloperWorksArticle” 的帳戶記錄。

圖 10. Salesforce.com 中已創建的帳戶

查看本欄目

XMLResult 變量保存了 JSON 響應數據,該響應是作為 Salesforce.com 帳戶創建調用的一部分被接收的。圖 11 顯示了 XMLResult,可使用它實現該整合流程中的所有活動之間的進一步映射。

圖 11. 保存了 JSON 響應數據的 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 的類似方法。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved