日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

步驟三:實驗2-根據車次查詢城市天氣

本文介紹如何根據實驗1設計的集成流,完成查詢城市天氣的集成流設計,以及集成流的運行和調試。

前提條件

完成步驟二:實驗1-根據車次查詢城市信息集成流設計和調試操作。

步驟1:設計集成流

說明

您可以選擇創建新的接口和集成流,或者在步驟二:實驗1-根據車次查詢城市信息集成流的基礎上直接修改。本文以在原有實驗1的集成流基礎上直接修改設計說明。

創建變量

由于使用遍歷節點時,需要使用到變量保存循環內的數據,因此需要先創建變量。

  1. 設置變量的節點拖動至查詢車次的節點下。

  2. 設置變量面板的設置變量區域,單擊添加,將變量名配置為weather類型配置為Listimage

    單擊腳本運行結果文本框,在腳本對話框中輸入以下示例代碼,完成后單擊確定

    image

    package bwifltoayo536281vy;
    
    import com.alibaba.bwif.script.core.StepMessage
    import com.alibaba.bwif.script.core.BwifHandler
    import java.util.ArrayList
    
    class SimpleHandler implements BwifHandler {
        @Override
        Object handle(StepMessage message) {
            //返回空ArrayList
            return new ArrayList()
        }
    }

使用遍歷(For Each)節點

添加遍歷(For Each)節點,使用腳本方式設置待遍歷的集合。將遍歷(For Each)的節點拖動至設置變量的節點下。image

本實驗中是針對查詢車次接口中的List部分進行遍歷。在遍歷(For Each)面板,單擊編輯代碼,在腳本對話框中輸入以下示例代碼,完成后單擊確定

package bwifltobrjah62j1xw;

import com.alibaba.bwif.script.core.StepMessage
import com.alibaba.bwif.script.core.BwifHandler
import com.alibaba.bwif.script.core.protocol.http.HttpResponse
import java.util.HashMap
import com.alibaba.bwif.script.core.Entity

class SimpleHandler implements BwifHandler {
    @Override
    Object handle(StepMessage message) {
        //前一節點輸出消息的payload中保存了查詢車次信息的HTTP返回內容
        HttpResponse rep = message.getPayload()
        //車次、城市列表等存在body內,類型為Entity
        Entity eBody = rep.getBody()
        //使用Entity的內置功能,自動將json字符串反序列化為HashMap
        HashMap<String,Object> m = eBody.getValue()
        //取出城市列表信息,做為目標遍歷的集合
        return m.get('result').get('list')
    }
}

循環查詢城市天氣

  1. 在遍歷循環內增加HTTP查詢天氣信息的節點。描述填寫為查詢城市天氣,連接配置使用實驗1中創建的連接配置,URL中的配置為weather/cityMethod配置為GETimage

  2. 使用腳本方式配置Query位置的參數。選中腳本,單擊編輯代碼,在腳本對話框中輸入以下示例代碼,完成后單擊確定image

    package bwifltobys3b5jb1yk;
    
    import com.alibaba.bwif.script.core.StepMessage
    import com.alibaba.bwif.script.core.BwifHandler
    import java.util.HashMap
    
    class SimpleHandler implements BwifHandler {
        @Override
        Object handle(StepMessage message) {
            //每次遍歷的城市信息,保存在消息的payload之中,HashMap結構,參考如下
            // {
            //     "sequenceno": "1",
            //     "station": "北京",
            //     "day": "1",
            //     "arrivaltime": "-",
            //     "departuretime": "07:00"
            // }
            HashMap<String,Object> payload = message.getPayload()
            String city = payload.get('station')
            //將城市名稱做為query參數
            HashMap<String,Object> q = new HashMap()
            q.put("cityname",city)
            return q
        }
    }
    

將查詢結果保存到變量中

  1. 查詢城市天氣HTTP節點下增加設置變量節點,將查詢的城市天氣信息保存到weather變量中。描述填寫為將查詢結果保存到weather中image

  2. 單擊添加變量名配置為weather類型配置為List,單擊腳本運行結果,在腳本對話框中輸入以下示例代碼,完成后單擊確定

    package bwifltoc79lr27n1z6;
    
    import com.alibaba.bwif.script.core.StepMessage
    import com.alibaba.bwif.script.core.BwifHandler
    import com.alibaba.bwif.script.core.protocol.http.HttpResponse
    import java.util.HashMap
    import java.util.ArrayList
    import com.alibaba.bwif.script.core.Entity
    
    class SimpleHandler implements BwifHandler {
        @Override
        Object handle(StepMessage message) {
            //從城市的天氣查詢結果中取出風力情況(wind)
            HttpResponse rep = message.getPayload()
            Entity eBody = rep.getBody()
            HashMap<String,Object> mRep = eBody.getValue()
            String wind = mRep.get('data').get('now').get('wind_power')
            //從輸入消息的變量中取出weather
            ArrayList varWeather = message.getVariable().get('weather')
            //補充本輪查詢的結果
            varWeather.add(wind)
            //重新對變量進行賦值
            return varWeather
        }
    }

HTTP API Reply

  1. 修改HTTP API Reply節點。將HTTP Status Code配置為200image

  2. HTTP返回值的Body部分,使用腳本方式配置,單擊編輯代碼,在腳本對話框中輸入以下示例代碼,完成后單擊確定

    package bwifltoazgaa6361w8;
    
    import com.alibaba.bwif.script.core.StepMessage
    import com.alibaba.bwif.script.core.BwifHandler
    import com.alibaba.bwif.script.core.Entity
    
    class SimpleHandler implements BwifHandler {
        @Override
        Object handle(StepMessage message) {
            //從輸入消息的變量中取出weather,構造成Entity對象
            ArrayList varWeather = message.getVariable().get('weather')
            Entity e = Entity.fromObjectValue(varWeather,"application/json","UTF-8")
            return e
        }
    }
    

步驟2:運行和調試集成流

  1. 單擊集成流設計器頁面右上角的保存,保存成功后可看到最近一次保存成功的時間。

  2. 單擊集成流設計器頁面右上角的調試,頁面自動跳轉至集成流調試器頁面。

  3. 選中和實驗1調試的相同環境。如果您是在實驗1的集成流上直接修改,單擊發起調用時,系統會自動將最新的元數據下發到集成應用實例中,稍等片刻后即可查看到調用結果。image

  4. 關閉調用接口面板后,您可以查看節點的輸入輸出信息,據此調整集成流邏輯。image