/ / Ako vytvoriť obchod Dojo z odpovede JSON - javascript, json, rest, dojo, dgrid

Ako vytvoriť obchod Dojo z odpovede JSON - javascript, json, rest, dojo, dgrid

Som nováčikom v práci Dojo Frame, tak prosím medveďso mnou. Mám službu implementovanú tak, aby vrátila odpoveď JSON. Používam Dojo frame work pre UI. Nie som si istý správnym spôsobom, ako požiadať o server a získať odpoveď v dojo.

Našiel som 3 spôsoby, ako požiadať o server a získať odpoveď. Nie som si istý, či je to zlé alebo dokonca správne

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

Vytvorený obchod sa ďalej použije na naplnenie prvkov dgrid. Akákoľvek pomoc sa oceňuje.

odpovede:

1 pre odpoveď č. 1

Pri práci s miniaplikáciami by ste mali svoje údaje zabaliť do dojo/store, To vynecháva vašu prvú metódu.

Druhý prístup, ako vám povedal @PaulR, je najlepším prístupom. Znamená to tiež, že služba REST by sa mala riadiť určitými pravidlami, ktoré nájdete v nich referenčná príručka, Ak nemôžete tieto normy splniť, môžete sa rozhodnúť rozšíriť dojo/store/JsonRest modul, aby ste ho mohli prispôsobiť, alebo použijete tretiu metódu.

Tretia metóda je pravdepodobne najjednoduchšia, ak vaša služba REST nespĺňa požiadavky. Nemusíte používať dojo/data/ObjectStore adaptér v nových verziách Dojo, pretože všetky obchody s miniaplikáciami by mali používať dojo/store API teraz (a nie staré dojo/data API).


0 pre odpoveď č. 2

Druhý spôsob je „najlepší“; Dojo je modelovaný na rozhranie Store na získavanie a manipuláciu s údajmi (na strane servera). Iné spôsoby sa nemusia mýliť, ale nie sú to „spôsob dojo“ používania rozhrania REST.

Cieľový parameter by mal obsahovať zvyšokkoncový bod (/ service / getquestions / projectId). Ak chcete získať informácie pre konkrétny projekt, zavolajte store.get (projectId) do obchodu, ktorý by potom vykonal požiadavku GET na / service / getquestions / projectId / projectid a vrátil príslušné údaje.

Rovnakým spôsobom môže byť aktualizácia vykonaná volaním store.put (objekt), ktorý vykoná požiadavku PUT na / service / getquestions / projectId / projectid.

Dúfam, že to pomôže. Ak nie, nájdete viac informácií o obchodoch tu.