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,
});