Preskoči na glavno vsebino

URL parametre

Ako pracovať s parametrami URL

Avtor: Lenka Haringerová

V URL používanom na získavanie dát z ABRA Flexi je možné využiť mnoho parametrov, ktoré ovplyvňujú získané výsledky.

Stránkovanie

Takmer každý používateľ ABRA Flexi API bude skôr alebo neskôr potrebovať nejakým spôsobom stránkovať výsledky, ktoré mu systém vracia. Napríklad len z toho dôvodu, že bez iného určenia ABRA Flexi vracia len prvých 20 výsledkov. Implicitne je totiž stránka veľká 20 záznamov. Pokiaľ je teda potrebné zo systému získať ďalšie stránky alebo mať stránku dlhšiu, je nutné začať používať parametre.

Dôležité parametre sú:

limit

Tento parameter určuje, koľko záznamov bude na jednej stránke.
Pokiaľ potrebujete získať stránku so všetkými záznamami naraz, je nutné tento parameter nastaviť na hodnotu 0.

demo.flexibee.eu/c/demo/adresar.xml

Vráti sa prvých dvadsať záznamov z evidencie adresár.

demo.flexibee.eu/c/demo/adresar.xml?limit=5

Vráti sa prvých päť záznamov z evidencie adresár.

demo.flexibee.eu/c/demo/adresar.xml?limit=0

Vrátia sa všetky záznamy z evidencie adresár.

start

Pokiaľ je požadované stránkovanie výsledkov, samotný limit nestačí. Je nutné použiť aj parameter start, ktorý určí, na ktorom zázname stránka začína.
Prvý záznam a zároveň predvolená hodnota je start=0.

demo.flexibee.eu/c/demo/adresar.xml?limit=5&start=0

Vráti stránku o veľkosti 5 záznamov z evidencie adresár a začne na prvom zázname.

demo.flexibee.eu/c/demo/adresar.xml?limit=5&start=5

Vráti druhú stránku o veľkosti 5 záznamov z evidencie adresár. Druhá stránka je určená parametrom start s hodnotou 5.

add-row-count

Pokiaľ stránkujete záznamy, je vhodné určiť, kedy skončiť. Je teda tiež možné do URL pridať parameter, ktorý do výstupu doplní celkový počet záznamov, cez ktoré je možné stránkovať. Tento parameter sa volá add-row-count a nadobúda hodnoty true alebo false podľa toho, či sa má celkový počet dopĺňať, alebo nie.

demo.flexibee.eu/c/demo/adresar.xml?limit=5&add-row-count=true

Vráti stránku o veľkosti 5 záznamov z evidencie adresár. V elemente winstrom je doplnený atribút rowCount, ktorý obsahuje celkový počet záznamov.

demo.flexibee.eu/c/demo/adresar.json?limit=5&add-row-count=true

Rovnaký postup je možné aplikovať aj na JSON výstup. Potom bude do výstupu doplnené „@rowCount":"457″.

Pre čo najrýchlejšiu odozvu Flexi odporúčame používať stránkovanie!

Ďalšou optimalizáciou môže byť odstránenie parametra add-row-count pri načítavaní ďalších stránok. Nie je totiž nutné pri každej stránke overovať, či sa tento počet nezmenil. Navyše získanie tohto čísla predstavuje v ABRA Flexi ďalší dotaz do databázy a každý zbytočný dotaz navyše je spomalenie.

Úrovne detailu

Ďalším veľmi dôležitým parametrom je detail. Tento parameter umožňuje ovplyvniť, aké vlastnosti jednotlivých záznamov danej evidencie sa budú vo výstupe nachádzať. Je to však veľmi rozsiahla téma, preto si ju v budúcnosti rozoberieme v samostatnom článku.
Dokumentácia k jednotlivým detailom je dostupná na stránkach ABRA Flexi.

Radenie

Vo väčšine prípadov je potrebné záznamy, ktoré ABRA Flexi vracia, mať rovno aj zoradené podľa nejakej vlastnosti. Prečo by sme mali záznamy radiť vo vlastnej aplikácii, keď aj toto za vás môže vyriešiť ABRA Flexi?
Radenie záznamov sa vykonáva parametrom order. Hodnota tohto parametra je vlastnosť, podľa ktorej budete chcieť radiť.

demo.flexibee.eu/c/demo/adresar.xml?order=kod

Pokiaľ teda do URL doplníte parameter order=kod, systém bude vracať záznamy zoradené podľa vlastnosti Skratka. Záznamy budú zoradené vzostupne.

demo.flexibee.eu/c/demo/adresar.xml?order=kod@D

Pokiaľ potrebujete záznamy zoradiť zostupne (výhodné napríklad pre radenie podľa súm, faktúry s najvyššou hodnotou budú na začiatku), tak za názov vlastnosti doplňte @D

Radenie podľa viacerých hodnôt sa vykonáva opakovaným použitím parametra order. Záleží pritom aj na poradí, v akom sú parametre order do URL vkladané.

demo.flexibee.eu/c/demo/adresar.xml?order=stat&order=kod

Tento príklad vráti záznamy z evidencie adresár, zoradené najskôr podľa štátu a pokiaľ je štát rovnaký, budú záznamy radené podľa skratky.

demo.flexibee.eu/c/demo/adresar.xml?order=kod&order=stat

Dotaz s radením najskôr podľa skratky a potom podľa štátu samozrejme vráti iné výsledky.

Parameter order je možné použiť aj priamo vo webovom rozhraní ABRA Flexi.

Ostatné

ABRA Flexi umožňuje v URL ešte mnoho ďalších parametrov. Ich kompletný zoznam sa nachádza na stránke Zostavovanie URL, preto tu spomenieme len tie najdôležitejšie a najpoužívanejšie.

Logické parametre s možnými hodnotami true / false je možné aktivovať samotným uvedením parametra (tj. s prázdnou hodnotou). Napríklad ?no-ids=true možno skrátene zapísať len ako ?no-ids.

only-ext-ids

Výstupy z Flexi vypisujú pri každom objekte identifikátory.
Pokiaľ sa použije tento parameter, budú vypisované len externé identifikátory objektov.

demo.flexibee.eu/c/demo/adresar.xml?only-ext-ids=true demo.flexibee.eu/c/demo/adresar.json?only-ext-ids=true

V tomto prípade teda zmizli interné identifikátory ABRA Flexi a vo výstupe sú len externé identifikátory pri záznamoch, ktoré ich obsahujú.

no-ext-ids

Opakom predchádzajúceho parametra je parameter no-ext-ids. Pokiaľ je použitý tento parameter, nebudú vo výstupe žiadne externé identifikátory. Parameter no-ext-ids slúži predovšetkým na zrýchlenie načítavania dát z ABRA Flexi. Každý pokus o načítanie externých identifikátorov výpis spomaľuje.

demo.flexibee.eu/c/demo/adresar.xml?no-ext-ids=true demo.flexibee.eu/c/demo/adresar.json?no-ext-ids=true

no-ids

Obdoba predchádzajúceho parametra, ale vo výstupe nebudú žiadne interné identifikátory ABRA Flexi. Môžu teda zostať zobrazené napríklad externé identifikátory.

Parameter no-ids=true ovplyvňuje export na všetkých úrovniach, tj. aj položky dokladov a vložené väzby.

demo.flexibee.eu/c/demo/adresar.xml?no-ids=true demo.flexibee.eu/c/demo/adresar.json?no-ids=true

no-comments

Pre možnosť potlačenia komentárov v XML výstupe bol pridaný nový logický parameter no-comments.

demo.flexibee.eu/c/demo/adresar.xml?no-comments

mode=simple

Nový režim exportu "simple"(?mode=simple) generujúci minimalistický výstup bez atribútov ref a showAs a v prípade XML navyše bez vysvetľujúcich komentárov.

demo.flexibee.eu/c/demo/adresar.xml?mode=simple

code-as-id

Týmto parametrom sa namiesto interných identifikátorov ABRA Flexi vypíše pri evidenciách, ktoré to podporujú, skratka ako identifikátor.

demo.flexibee.eu/c/demo/adresar.xml?code-as-id=true demo.flexibee.eu/c/demo/adresar.json?code-as-id=true

Týmto parametrom je možné v kombinácii s no-ids zabezpečiť prenosy dát medzi jednotlivými firmami vo Flexi. Napríklad, ak bude potrebné preniesť adresár z firmy A do firmy B, najlepším spôsobom je použiť export cez REST-API z firmy A a import do firmy B. URL na získanie adresára bude vyzerať napríklad takto:

demo.flexibee.eu/c/demo/adresar.xml?code-as-id=true&no-ids=true

access-attribs=true

Sprístupní dodatočné atribúty informujúce o editovateľnosti záznamu.

demo.flexibee.eu/c/demo/nabidka-vydana.xml?access-attribs=true

Výsledok pri kolekciách môže vyzerať napríklad takto:

<polozkyObchDokladu insertable="true">

<nabidka-vydana-polozka editable="true" deletable="true">

Ste s tem dobili odgovor na svoje vprašanje?