Eu sou novo no trabalho do Dojo Frame, então por favor aguardecomigo. Eu tenho um serviço implementado de forma que ele retornará resposta JSON. Estou usando o trabalho de quadro do Dojo para interface do usuário. Não tenho certeza sobre a maneira correta de solicitar ao servidor e obter a resposta no dojo.
Encontrei 3 maneiras de solicitar ao servidor e receber resposta.não tenho certeza se está errado ou remotamente correto
1)
request(contextName+"/service/getquestions/projectId/"+projectId,{
handleAs: "json"
}).then(function(data){alert("something")});
2)
var questionAnswerStore = new JsonRest({
target: contextName+"/service/getquestions/projectId/"+projectId,
});
3)
request.get("contextName+"/service/getquestions/projectId/"+projectId",{
handleAs: "json"
}).then(function(data){
dataStore = new ObjectStore({ objectStore:new Memory({ data: data.items }) });
});
Além disso, a loja criada será usada para preencher os elementos dgrid. Qualquer ajuda é apreciada.
Respostas:
1 para resposta № 1Ao trabalhar com widgets, você deve agrupar seus dados em um dojo/store
. Isso deixa de fora o seu primeiro método.
O segundo, como o @PaulR disse, é a melhor abordagem. Mas também significa que seu serviço REST deve seguir certas regras que você pode encontrar guia de referência. Se você não conseguir atender a esses padrões, poderá optar por estender o dojo/store/JsonRest
módulo para que você possa torná-lo conforme ou use o terceiro método.
O terceiro método é provavelmente o mais fácil se o serviço REST não estiver em conformidade com os requisitos. Você não precisa usar o dojo/data/ObjectStore
adaptador nas novas versões do Dojo, já que todos os armazenamentos de widgets devem usar o dojo/store
API agora (e não a antiga dojo/data
API).
0 para resposta № 2
A segunda maneira é a "melhor"; Dojo é modelado em a interface Store para recuperar e manipular dados (do lado do servidor). As outras maneiras podem não estar erradas, mas não são a "maneira Dojo" de usar uma interface REST.
O parâmetro target deve conter o restanteponto de extremidade (/ service / getquestions / projectId). Quando você deseja recuperar informações para um projeto específico, chame store.get (projectId) na loja que executará uma solicitação GET para / service / getquestions / projectId / projectid e retorne os dados apropriados.
Da mesma forma, uma atualização pode ser feita chamando store.put (object), que fará uma solicitação PUT em / service / getquestions / projectId / projectid.
Espero que isto ajude. Caso contrário, mais informações sobre lojas podem ser encontradas Aqui.