IBM Worklight 6.1 - HTTP适配器可以在服务器端调用另一个HTTP适配器吗?

时间:2013-12-30 11:26:32

标签: ibm-mobilefirst worklight-adapters

我正在开发适用于iPad的worklight 6.1版本的app,并部署了单个适配器,里面有多个程序。现在我从客户端点击适配器并从服务器获得响应。在某处存储该响应并返回到下一个适配器调用以获取该响应的相关数据。

function GetUSERRID(){
    var invocationData = {
            adapter : 'CORE_ADAPTER',
            procedure : 'GetUserRID',
            parameters : [ param1, param2 ]
        };

    WL.Client.invokeProcedure(invocationData,{
        onSuccess : GetUserRID,
        onFailure : function GetUserRIDFailure(response){ busyInd.hide();console.log("reponse   failure  "+response);},
    });

}

function GetUserRID(response){
    var rid = response.invocationResult.RID;
    var invocationData = {
            adapter : 'CORE_ADAPTER',
            procedure : 'GetUserRID_Details',
            parameters : [ rid ]
        };

    WL.Client.invokeProcedure(invocationData,{
        onSuccess : ShowDetailsForRID,
        onFailure : function GetUserRID_DetailsFailure(response){ busyInd.hide();console.log("reponse   failure  "+response);},
    });
}  

在上面的代码中,我正在从客户端进行两次适配器调用。从第一次开始,我得到一些数据,我将再次传递回下一个适配器以获取相关数据。

我可以在服务器上进行单个适配器调用,并且该适配器将调用服务器上的另一个适配器,并将所需数据作为第一个适配器响应的参数并处理它并将数据返回给客户端吗?

2 个答案:

答案 0 :(得分:1)

您需要阅读"Advanced adapter usage and mashup" training module,其中谈到了如何“链接适配器调用”。

上面的链接中也提供了一个示例项目。

答案 1 :(得分:1)

与客户端相同,只需使用

WL.Server.invokeProcedure(invocationData,选项);

var invocationData = {
        adapter : 'ADAPTER_NAME',
        procedure : 'PROCEDURE_NAME',
        parameters : [param1,param2]
    };

WL.Server.invokeProcedure(invocationData,{
    onSuccess : getDataSuccess,
    onFailure : getDataFailure,
});