在MuleSoft中,創建Application的方式有三種
- Flow Designer:用於構建連接系統並使用API的集成應用程序的Web應用程序
- API Designer:用於設計,記錄和模擬API的Web應用
- Anypoint Studio:桌面IDE,用於實現API和構建集成應用程序
那么來看看如何使用Flow Designer創建Mule應用程序
在Anypoint Platform中,進入Design Center,點擊Create New,在彈出框中選擇 Create New Application,輸入名稱:TestFlow
在隨后出現的畫布上,選擇HTTP Connector, 在下一步Target選擇 Training - American Flights API, Operation選擇:Get Flights
Tips:Training - American Flights API 是MuleSoft提供的供開發者學習的一個接口,你可以在App Exchange中找到這個接口的詳細內容,
在出現的接口中輸入訪問地址:flights,然后關閉選項卡,可以看到現在的畫布上有這樣幾個模塊
點擊第三個組件American Flights API Configuration,對Training - American Flights這個接口的信息進行配置
- Client_Id:d1374b15c6864c3682ddbed2a247a826
- Client_Secret:4a87fe7e2e43488c927372AEF981F066
- Host: training4-american-api.cloudhub.io
- Port: 80
- Base Path:/
- Protocol:HTTP
配置完成后,關閉頁簽,然后點擊右上角 TEST 按鈕,這里就會相當於啟動接口,生成了一個可以訪問的URL
現在回到Advanced REST Client (Get請求也可以直接通過瀏覽器地址欄訪問),將剛剛的URL復制上去,同時在最后拼上我們之前設置的訪問地址:/flights
可以看到接口返回了200狀態碼以及一些測試數據
接下來回到MuleSoft Design Center,打開 American Flights API卡片,其中Input/output中可以切換Attribute和Payload,查看接口的輸入輸出信息
點開右下角的Log面板,可以看到接口請求的詳細日志信息
這時候,我們可以切換到Runtime Manager, 查看接口的執行情況
點接口進去查看詳細信息,包括接口日志,看板,設置等等信息都在Runtime manage中可以查看到奧
回到Design Center,我們點擊 ➕ 再添加一個卡片,選擇 Transform, 點擊創建一個新的Data Type
輸入 Data Type名稱為:NewFlights,類型選擇JSON,寫入JSON Example如下,點擊保存
[ { "airline": "United", "flightCode": "ER38sd", "fromAirportCode": "LAX", "toAirportCode": "SFO", "departureDate": "May 21, 2016", "emptySeats": 0, "totalSeats": 200, "price": 199, "planeType": "Boeing 737" }, { "airline": "Delta", "flightCode": "ER0945", "fromAirportCode": "PDX", "toAirportCode": "CLE", "departureDate": "June 1, 2016", "emptySeats": 24, "totalSeats": 350, "price": 450, "planeType": "Boeing 747" } ]
搞定這一步之后,完成對數據字段的映射,直接拖動字段建立映射關系
Input | OutPut Payload |
price | price |
departureDate | departureDate |
plan - totalSeats | totalSeats |
emptySeats | emptySeats |
plan - type | planeType |
code | flightCode |
origin | fromAirportCode |
destination | toAirportCode |
然后對沒有映射關系的airline點擊Set Expression, 輸入 “american” ,完成后點擊底部的Script頁簽,可以查看轉換的DataWeave表達式
這時候看到右側的Preview顯示為null, 所以我們點擊Sample data頁簽,寫入JSON樣例數據
[{ "ID": 1, "code": "ER38sd", "price": 400.00, "departureDate": "2016/03/20", "origin": "MUA", "destination": "SFO", "emptySeats": 0, "plane": { "type": "Boeing 737", "totalSeats": 150 } }, { "ID": 2, "code": "ER45if", "price": 345.99, "departureDate": "2016/02/11", "origin": "MUA", "destination": "LAX", "emptySeats": 52, "plane": { "type": "Boeing 777", "totalSeats": 300 } }]
完成這些之后,重新點擊TEST按鈕,再通過接口測試客戶端發送請求,對比加上Transform之后的效果,就可以看到,接口返回的數據格式已經不一樣了,而這也就是為什么MuleSoft可以支持同一個接口的數據可以應用到不同系統的原因,通過Transform對數據格式在MuleSoft中進行轉換
以上的對MuleSoft平台的一個簡單探索,了解了在Anypoint平台上應該如何應用Design Center去設計一個應用程序,同時學會查看日志,使用Runtime Manager,要理解Transform在數據格式轉換上的作用