====== NEON ====== Neon je komunikačný protokol vyvinutý pre SystemOmega. Umožňuje odosielať naraz viac požiadaviek na rôzne služby pomocou jedného volania. Požiadavky treba zabaliť do JSON stringu a poslať ako **náklad** na server. ==== Príklad NEON požiadavky (NEON Request) ==== { "version":3, "sessionId":"fh69t24lg4md029l09eq6pj4n0", "requestIdf":"dhnw8w", "dataOrder":[ "module:tennes/getAllSettings#201", "module:info/getPageInfo#202", "module:info/getPageInfo#203" ], "module:tennes/getAllSettings#201":{}, "module:info/getPageInfo#202":{ "pageId":"red-pen" }, "module:info/getPageInfo#203":{ "pageId":"dog-competition" } } === Popis NEON Request === | ''version'' | //int// | musí byť hodnota **3** | | ''sessionId'' | //string// | Identifikátor SESSION.\\ Ak ešte neexistuje, netreba posielať. Mal by prísť v prvej NEON odpovedi. | | ''requestIdf'' | //string// | Identifikátor volania.\\ Mal by byť unikátny. Kľudne to môže byť aj nejaký counter. Každá NEON Response obsahuje tento identifikátor. | | ''dataOrder'' | //array// | Pole požiadaviek na služby.\\ Požiadavky na služby sa budú volať v poradí, ako sú uložené v tomto poli. \\ Požiadavka na službu ''serviceIdf'' je zložená z názvu služby, znak ''#'' a unikátne číslo, najlepšie counter. Týmto spôsobom je možné zavolať viac požiadaviek na rovnakú službu s rôznymi vstupnými parametrami služby.\\ Vstupné parametre pre službu treba vložiť ako objekt do tela NEON Request s kľúčom ''serviceIdf''. | ==== Príklad NEON odpovede (NEON Response) ==== { "version":3, "timestamp":1684245062, "timestampMicro":6759970, "status":true, "hasError":false, "sessionId":"fh69t24lg4md029l09eq6pj4n0", "requestIdf":"dhnw8w", "resultPerformance":{ "module:tennes/getAllSettings#201":"0.00445", "module:info/getPageInfo#202":"0.00209", "module:info/getPageInfo#203":"0.00116" }, "dataOrder":[ "module:tennes/getAllSettings#201", "module:info/getPageInfo#202", "module:info/getPageInfo#203" ], "module:tennes/getAllSettings#201":{ "status":true, "result":{ "pages":[ "sub1", "sub3", "sub4" ] } }, "module:info/getPageInfo#202":{ "status":true, "result":{ "title":"Document - Red Pen", "author":"Silvester", "createDate":"2023-04-01", "content":"BLA BLA FOR PAGE RED PEN" } }, "module:info/getPageInfo#203":{ "status":true, "result":{ "title":"Dog competition in London", "author":"Arnold", "createDate":"2023-04-16", "content":"Haf-Haf" } } } === Popis NEON Response === | ''version'' | //int// | hodnota **3** | | ''timestamp'' | //int// | Čas spracovania na serveri, ako linux timestamp | | ''timestampMicro'' | //int// | Čas spracovania na serveri, iba mikrosekundy | | ''status'' | //bool// | ''TRUE'' = všetky požiadavky boli vybavené bez chyby.\\ ''FALSE'' = Niekde nastala chyba. | | ''hasError'' | //bool// | ''TRUE'' = Niekde nastala chyba. Viac info je v hlavnom NEON Reponse objekte pod kľúčom ''error'' (Je popisané nižšie).\\ ''FALSE'' = všetky požiadavky boli vybavené bez chyby. | | ''sessionId'' | //string// | Identifikátor SESSION.\\ Je vhodné ho používať v následujúch NEON Request. | | ''requestIdf'' | //string// | Identifikátor volania.\\ Jedná sa o identifikátor, ktorý bol použitý v NEON Request. | | ''resultPerformance'' | //array// | Časy spracovanie jednotlivých služieb. | | ''dataOrder'' | //array// | Pole odpovedí zo služieb.\\ Služby boli volané v tomto poradí. Hodnoty v tomto poli sú vlastne ''serviceIdf'', ktoré boli použité v NEON Request ''dataOrder''.\\ Jednotlivé odpovede z volaní požiadaviek služieb sú uložené v hlavnom objekte NEON Response s kľúčom ''serviceIdf''.\\ Odpoveď je objekt, ktorá obsahuje:\\ ''status'' - ''TRUE'' alebo ''FALSE''. Ak je ''FALSE'', vo pri spracovaní služby nastala chyba (popíssané nižšie).\\ ''result'' - tu je samotná odpoveď/výsledok zo služby. | | ''error'' | //object// | Bude existovať v prípade, ak bude ''hasError=TRUE''. Jeho štruktúra je popísaná nižšie. | === Popis NEON Response.error === | ''error.exceptionCode'' | //int// | Kód výnimky. | | ''error.errorDateIdf'' | //string// | Identifikátor dátumu, pre lepšie hľadanie v logoch. | | ''error.exceptionMessage'' | //string// | Text výnimky. | | ''error.errorCode'' | //string// | Kód chyby. | | ''error.errorText'' | //string// | Text chyby. | | ''errorExt'' | //object// | Rozšírené informácie o chybe, ak sú k dispozícií. | === Popis NEON Response | Service OK === | ''status'' | //bool// | ''TRUE'' | | ''result'' | //object, mixed// | Odpoveď zo služby. | === Popis NEON Response | Service ERROR === | ''status'' | //bool// | ''FALSE'' | | ''result'' | //object, mixed// | Odpoveď zo služby. Nemusí byť naplnená. | | ''error'' | //object// | | | ''error.exceptionCode'' | //int// | Kód výnimky. | | ''error.exceptionMessage'' | //string// | Text výnimky. | | ''error.errorCode'' | //string// | Kód chyby. | | ''error.errorText'' | //string// | Text chyby. | | ''error.errorInfo'' | //string// | Iné info o chybe. | | ''errorExt'' | //object// | Rozšírené informácie o chybe, ak sú k dispozícií. |