本文介紹如何根據步驟一準備的資源,完成根據車次查詢城市信息的集成流設計,以及集成流的運行和調試。
前提條件
完成文檔步驟一的資源準備操作,需要準備的資源包括:
在BizWorks內已經存在完成納管的容器集群。
一個BizWorks項目,并且該項目內至少包含一個項目環(huán)境。
2個可被調用的Mock API:根據車次查詢城市信息(API名稱:mock-traininfo)、根據城市查詢天氣信息(API名稱:mock-city-weather)。
本實驗目標
接口效果:為客戶端提供一個接口,輸入為火車車次,輸出為該車次起點城市和重點城市信息。
實現方式:使用集成流編排步驟一中創(chuàng)建的查詢車次接口實現。
步驟1:創(chuàng)建集成應用
登錄BizWorks,在選擇平臺下拉列表中選中應用集成平臺。
單擊頁面右上角的圖標或其文本框區(qū)域,在下拉列表中單擊目標項目名稱后,單擊應用頁簽,在應用列表頁面,單擊新增應用。
在創(chuàng)建集成應用面板,填寫相關參數配置,完成集成應用的創(chuàng)建。
步驟2:創(chuàng)建集成接口
在集成接口頁面,單擊新建接口分組。
在新建接口分組面板,接口分組名稱配置為group1,BasePath配置為group1,其他內容使用默認值,完成后單擊創(chuàng)建。
不同業(yè)務用途的接口可劃分在多個分組中,調用時多個分組依靠BasePath進行區(qū)分。
在集成接口頁面,單擊接口分組名稱為group1的接口。
在應用接口管理頁面新建接口。
平臺支持手動創(chuàng)建和導入OAS定義兩種方式創(chuàng)建接口定義。本例中使用手動方式創(chuàng)建。
單擊新建,選擇新建接口。
在新建接口面板,您可以參考下圖配置相關參數,完成后單擊保存。
接口名稱填寫case1-查詢車次。
接口路徑選擇GET,配置為api1。
請求參數Request中,單擊新增參數。新增一個Query參數,參數名稱為trainno,類型選擇String。
說明返回內容Response在本例中不使用,暫不填寫。
步驟3:創(chuàng)建集成流
在步驟2:創(chuàng)建集成接口中,完成了客戶端可調用的接口定義。在本步驟需要創(chuàng)建一個集成流與步驟2中的接口綁定,用于實現對應的邏輯。
在應用接口管理頁面,單擊case1-查詢車次接口名稱右側綁定服務列下的綁定。
在綁定服務面板,服務類型選擇集成流,集成流的創(chuàng)建方式選擇自動創(chuàng)建,完成后單擊確定。
平臺將會自動創(chuàng)建一個集成流,并與case1-查詢車次接口綁定。
在對話框中,單擊確定。
頁面自動跳轉至集成流設計器頁面。您也可以在應用集成平臺的左側導航欄選擇
,在集成流頁面單擊case1-查詢車次集成流名稱進入集成流設計器頁面。
步驟4:設計集成流
本文實驗在集成流中使用三個節(jié)點即可完成集成流設計,下文將分別介紹配置方式。
HTTP API Listener
當您首次進入flow-case1-查詢車次集成流設計器,可看到該集成流已經根據關聯的接口情況,自動創(chuàng)建了首尾節(jié)點。首節(jié)點HTTP API Listener表示當前集成流的觸發(fā)方式和監(jiān)聽哪些集成接口的調用。單擊HTTP API Listener節(jié)點,您可以查看到監(jiān)聽的接口即為步驟2:創(chuàng)建集成接口中創(chuàng)建的集成接口。
連接器HTTP
添加連接器HTTP節(jié)點。將HTTP節(jié)點拖動至畫布右側首節(jié)點HTTP API Listener下。
在集成流中使用該節(jié)點調用步驟2:創(chuàng)建集成接口中創(chuàng)建的查詢車次接口。
在HTTP面板,配置過程主要包含兩部分:連接配置和HTTP請求配置。節(jié)點名稱設置為查詢車次,選擇連接配置。
連接配置用于維護被編排的應用的共性信息,每種連接器都有配套類型的連接配置。您可在連接配置的下拉列表中選擇該版本的集成應用中已經有的連接配置,如果沒有,您參考以下步驟新增連接配置。
在選擇連接配置下拉列表中,單擊新增連接配置。
在新建連接配置對話框的基本信息配置向導頁,連接配置名稱配置為mock-api,選擇連接器版本0.0.1,完成后單擊下一步。
在新建連接配置對話框的詳細配置向導頁,Base URL需設置為步驟一:資源準備中在API網關上添加的API調用地址,該地址由網關動態(tài)生成。由于本例中不涉及API的認證,因此此處連接配置的認證方式選擇無。
完成相關配置后,單擊保存。
完善接口調用地址。HTTP請求配置的URL選擇為值,配置為traininfo,您可以看到完整的HTTP請求地址,此地址應為查詢車次接口的調用地址。
使用代碼片段完成拼接Query參數。根據查詢車次接口的入參要求,并且該參數是由客戶端調用時動態(tài)傳入,因此Query參數頁簽中選擇腳本方式,在代碼編輯框中可以輸入以下示例代碼。
package bwiflto5nrt279m2lz; import com.alibaba.bwif.script.core.StepMessage import com.alibaba.bwif.script.core.BwifHandler import com.alibaba.bwif.script.core.protocol.http.HttpRequest import java.util.HashMap class SimpleHandler implements BwifHandler { @Override Object handle(StepMessage message) { //從前一節(jié)點的輸出消息中,提取客戶端調用時的入參trainno HttpRequest req = message.getPayload() String trainno = req.getQueryParam("trainno") //準備查詢車次信息的Query參數,以HashMap類型返回給編排引擎處理 HashMap<String,String> m = new HashMap() m.put("trainno",trainno) return m } }
完成配置后的圖片示例如下。
HTTP API Reply
HTTP API Reply節(jié)點是與HTTP API Listener節(jié)點配套使用的,對應HTTP Response的用于定義HTTP調用集成接口后的返回內容。
單擊HTTP API Reply節(jié)點,在HTTP API Reply面板,HTTP Status Code配置為200。
說明如果需要根據集成流中執(zhí)行情況返回不同的Code,則可使用腳本方式。
配置HTTP響應信息(Response)。本實驗由于需要從查詢車次結果中取出部分信息返回,因此使用了腳本方式,在代碼編輯框中可輸入以下示例代碼。
package bwiflto8ro8d3mz2wk; import com.alibaba.bwif.script.core.StepMessage import com.alibaba.bwif.script.core.BwifHandler import com.alibaba.bwif.script.core.protocol.http.HttpResponse import com.alibaba.bwif.script.core.Entity import java.util.ArrayList class SimpleHandler implements BwifHandler { @Override Object handle(StepMessage message) { //從前一個節(jié)點的輸出消息中取出payload部分,里面存放的是請求接口后獲得的HTTP返回內容 HttpResponse rep = message.getPayload() //body部分是接口返回的json內容,類型為Entity Entity eBody = rep.getBody() //Entity會根據content-type自動反序列化,此處自動將json轉換成HashMap HashMap<String,Object> mRep = eBody.getValue() //取出城市列表信息,類型為ArrayList ArrayList listCities = mRep.get('result').get('list') //將城市信息做為集成接口的返回內容,構造成Entity類型,交由引擎處理 Entity e = Entity.fromObjectValue(listCities,'application/json','UTF-8') return e } }
步驟5:運行和調試集成流
單擊集成流設計器頁面右上角的保存,保存成功后可看到最近一次保存成功的時間。
單擊集成流設計器頁面右上角的調試,頁面自動跳轉至集成流調試器頁面,您可在該頁面中對調試集成流的運行結果。
單擊集成流調試器頁面右上角的請選擇環(huán)境,在選擇環(huán)境下拉列表中選擇目標環(huán)境,如果該環(huán)境中沒有部署本集成應用,將會引導您先完成應用實例的部署(單擊立即部署)。如果該環(huán)境中已經部署了本集成應用,您可跳過步驟4~步驟5。
頁面自動跳轉至實例管理頁面,按界面引導完成目標環(huán)境下的部署操作。實驗中單實例資源配置選擇1C/2Gi,實例數量選擇1。
完成相關配置后,單擊開始部署。等待片刻后,集成應用實例部署成功。單擊目標環(huán)境卡片,您可查看到集成接口的調用Endpoint信息。
刷新集成流設計器頁面,您可以看到該環(huán)境下實例已經就緒。單擊頁面右上角的調用接口,將調用接口面板trainno的參數值設置為G1,單擊發(fā)起調用,您即可查看到該集成接口的調用結果。
關閉調用接口面板后,集成流調試器頁面左側的運行記錄面板會自動刷新,列出最近的運行記錄。單擊某次運行記錄,您可以在調試器的底部面板中查看此次運行的基本信息,如果有報錯,也可以在此處查看具體的錯誤原因。再次選中集成流節(jié)點后,您可以看到在此次運行過程中,該節(jié)點的輸入Message和輸出Message的具體內容,可以根據該信息在設計器中調整集成流。