/ / Como criar um repositório Dojo a partir da resposta JSON - javascript, json, rest, dojo, dgrid

Como criar um armazenamento Dojo a partir da resposta JSON - javascript, json, rest, dojo, dgrid

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 № 1

Ao 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.