IBM Worklight 6.1 - Может ли адаптер HTTP вызывать другой адаптер HTTP на стороне сервера?

Я занимаюсь разработкой приложения для Worklight 6.1 версии для iPad и развернул один адаптер, который имеет несколько процедур внутри него. Теперь я подключаю адаптер со стороны клиента и получаю ответ от сервера. Сохранение этого ответа где-нибудь и переход к следующему вызову адаптера для получения связанных данных для этого ответа.

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 ответа

Решение

Вам необходимо прочитать учебный модуль "Расширенное использование адаптера и гибридное приложение", в котором подробно рассказывается о том, как "связывать вызовы адаптера".

Пример проекта также доступен по ссылке выше.

То же, что на стороне клиента, просто используйте

WL.Server.invokeProcedure(invocationData, опционы);

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

WL.Server.invokeProcedure(invocationData,{
    onSuccess : getDataSuccess,
    onFailure : getDataFailure,
});
Другие вопросы по тегам