/ / Cómo crear una tienda Dojo a partir de la respuesta JSON - javascript, json, rest, dojo, dgrid

Cómo crear una tienda Dojo a partir de la respuesta JSON: javascript, json, rest, dojo, dgrid

Soy nuevo en Dojo Frame, así que por favor tengan pacienciaconmigo. Tengo un servicio implementado de manera que devolverá la respuesta JSON. Estoy usando Dojo Frame Work para UI. No estoy seguro de la forma correcta de solicitar al servidor y obtener la respuesta en dojo.

Encontré 3 formas de solicitar al servidor y recibir respuesta. No estoy seguro de si está mal o remotamente correcto

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

Además, la tienda creada se utilizará para completar los elementos dgrid. Cualquier ayuda es apreciada.

Respuestas

1 para la respuesta № 1

Cuando trabaje con widgets, debe envolver sus datos en un dojo/store. Eso deja de lado tu primer método.

El segundo, como te dijo @PaulR, es el mejor enfoque. Pero también significa que su servicio REST debe seguir ciertas reglas que puede encontrar en su Guia de referencia. Si no puede cumplir con estos estándares, puede optar por extender el dojo/store/JsonRest módulo para que pueda hacer que se ajuste o use el tercer método.

El tercer método es probablemente el más fácil si su servicio REST no cumple con los requisitos. No necesita usar el dojo/data/ObjectStore adaptador en las nuevas versiones de Dojo, ya que todas las tiendas de widgets deberían usar el dojo/store API ahora (y no el viejo dojo/data API).


0 para la respuesta № 2

La segunda forma es la "mejor"; Dojo es modelado en La interfaz de la Tienda para recuperar y manipular datos (del lado del servidor). Las otras formas pueden no estar equivocadas, pero no son la "forma Dojo" de usar una interfaz REST.

El parámetro objetivo debe contener el restopunto final (/ service / getquestions / projectId). Cuando desee recuperar información para un proyecto específico, llame a store.get (projectId) en la tienda, que luego realizará una solicitud GET a / service / getquestions / projectId / projectid y devolverá los datos correspondientes.

Del mismo modo, se puede realizar una actualización llamando a store.put (object), que realizará una solicitud PUT en / service / getquestions / projectId / projectid.

Espero que esto ayude. Si no, se puede encontrar más información sobre las tiendas. aquí.