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ď č. 1Pri 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.