URL parametry

V URL používaném pro získávání dat z ABRA FlexiBee je možné využít mnoho parametrů, které ovlivňují získané výsledky.

Stránkování

Téměř každý uživatel ABRA FlexiBee API bude dřív nebo později potřebovat nějakým způsobem stránkovat výsledky, které mu systém vrací. Například jen z toho důvodu, že bez jiného určení ABRA FlexiBee vrací jen prvních 20 výsledků. Implicitně je totiž stránka velká 20 záznamů. Pokud je tedy potřeba ze systému získat další stránky nebo mít stránku delší je nutné začít používat parametry.

Důležité parametry jsou:

limit

Tento parametr určuje, kolik záznamů bude na jedné stránce.
Pokud potřebujete získat stránku se všemi záznamy najednou, tak je nutné tento parametr nastavit na hodnotu 0.

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

Vrátí se prvních dvacet záznamů z evidence adresář.

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

Vrátí se prvních pět záznamů z evidence adresář.

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

Vrátí se všechny záznamy z evidence adresář.

start

Pokud je požadováno stránkování výsledků, tak jen limit nestačí. Je nutné použít i parametr start, který řekne, na kolikátém záznamu stránka začíná.
První záznam a zároveň výchozí hodnota je start=0.

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

Vrátí stránku o velikosti 5 záznamů z evidence adresář a začne na prvním záznamu.

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

Vrátí druhou stránku o velikosti 5 záznamů z evidence adresář. Druhá stránka je určena parametrem start s hodnotou 5.

add-row-count

Pokud stránkujete záznamy, je vhodné určit, kdy skončit. Je tedy také možné do URL přidat parametr, který do výstupu doplní celkový počet záznamů, přes které je možné stránkovat. Tento parametr se jmenuje add-row-count a nabývá hodnot true nebo false podle toho, zda se má celkový počet doplňovat, nebo ne.

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

Vrátí stránku o velikosti 5 záznamů z evidence adresář. V elementu winstrom je doplněn atribut rowCount, který obsahuje celkový počet záznamů.

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

Stejný postup je možné aplikovat i na JSON výstup. Pak bude do výstupu doplněno „@rowCount“:“457″.

Pro co nejrychlejší odezvu FlexiBee doporučujeme používat stránkování!

Další optimalizací může být odstranění parametru add-row-count při načítání dalších stránek. Není totiž nutné se při každé stránce dotazovat, zda se tento počet nezměnil. Navíc získání tohoto čísla je v ABRA FlexiBee další dotaz do databáze, a každý zbytečný dotaz navíc je zdržení.

Úrovně detailu

Dalším velmi důležitým parametrem je detail. Tento parametr umožňuje ovlivnit, jaké vlastnosti jednotlivých záznamů, dané evidence, se budou ve výstupu nacházet. Je to ale velmi rozsáhlá tématika, takže si ji v budoucnu rozebereme v samostatném článku.
Dokumentace k jednotlivým detailům je dostupná na stránkách ABRA FlexiBee.

Řazení

Ve většině případů je potřeba záznamy, které ABRA FlexiBee vrací, mít rovnou i seřazené podle nějaké vlastnosti. Proč bychom měli záznamy řadit ve své aplikaci, když i toto za Vás může vyřešit ABRA FlexiBee?
Řazení záznamů se provádí parametrem order. Hodnota tohoto parametru je vlastnost, podle které budete chtít řadit.

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

Pokud tedy do URL doplníte parametr order=kod, systém bude vracet záznamy seřazené podle vlastnosti Zkratka. Záznamy budou seřazeny vzestupně.

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

Pokud potřebujete záznamy seřadit sestupně (výhodné například pro řazení podle částek, faktury s nejvyšší hodnotou budou na začátku), tak ještě za název vlastnosti doplňte @D

Řazení podle více hodnot se provádí opakovaným použitím parametru order. Pak záleží i na pořadí, jak jsou do URL parametry order vkládány.

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

Tento příklad vrátí záznamy z evidence adresář, seřazené nejdříve podle státu a pokud je stát stejný, budou záznamy řazeny podle zkratky.

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

Dotaz s řazením nejdříve podle zkratky a pak podle státu, samozřejmě vrátí jiné výsledky.

Parametr order je možné použít i přímo ve webovém rozhraní ABRA FlexiBee.

Ostatní

ABRA FlexiBee umožňuje v URL ještě mnoho dalších parametrů. Jejich kompletní seznam se nachází na stránce www.flexibee.eu/api/dokumentace/ref/urls/, takže již zmíníme jen ty nejdůležitější a nejpoužívanější.

only-ext-ids

Výstupy z FlexiBee vypisují u každého objektu identifikátory.
Pokud se použije tento parametr, budou vypisovány jen externí identifikátory objektů.

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

V tomto případě tedy zmizely vnitřní identifikátory ABRA FlexiBee a ve výstupu jsou jen externí identifikátory u záznamů, které je obsahují.

no-ext-ids

Opakem předchozího parametru je parametr no-ext-ids. Pokud je použit tento parametr, nebudou ve výstupu žádné externí identifikátory. Parametr no-ext-ids slouží především ke zrychlení načítání dat z ABRA FlexiBee. Každý pokus o načtení externích identifikátorů výpis zpomaluje.

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 předchozího parametru, ale ve výstupu nebudou žádné vnitřní identifikátory ABRA FlexiBee. Takže mohou zůstat zobrazeny například externí identifikátory.

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

code-as-id

Tímto parametrem se místo interních identifikátorů ABRA FlexiBee vypíše u evidencí, které to podporují, zkratka jako 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 parametrem je možné v kombinaci s no-ids zajistit přenosy dat mezi jednotlivými firmami ve FlexiBee. Například, pokud bude potřeba přenést adresář z firmy A do firmy B, je nejlepší způsob použít export přes REST-API, z firmy A a import do firmy B. URL pro získání adresáře bude vypadat například takto:

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