Preskoči na glavno vsebino

Ako začať s API Flexi 3/6 - Zostavovanie URL adresy

Ako zostaviť URL adresu pre REST API ABRA Flexi: štruktúra adresy, properties, filtrovanie, úrovne detailu, stránkovanie a export do PDF.

Avtor: Petr Pech

URL adresa je srdcom každého volania REST API. Určuje, ku ktorej firme a evidencii pristupujete, ktorý záznam vás zaujíma a v akom formáte ho chcete dostať. V tomto diele si prejdeme, ako ju poskladať a ako ju doplniť o parametre pre filtrovanie, stránkovanie a úroveň detailu.

ℹ️ Ukážkové adresy v tomto článku smerujú na našu verejnú demo inštanciu. Ak sa prehliadač opýta na prihlásenie, použite meno winstrom a heslo winstrom. Vo svojich adresách potom nahraďte demo.flexibee.eu adresou svojho servera a demo identifikátorom svojej firmy.


Štruktúra URL adresy

Základný tvar adresy vyzerá takto:

/c/<identifikátor firmy>/<evidence>/<ID záznamu>.<výstupní formát>
  • identifikátor firmy jednoznačne určuje firmu, ku ktorej pristupujete. Nájdete ho v adrese webového rozhrania po prihlásení, viac v článku o identifikátore firmy.

  • evidencia je typ agendy, napríklad adresár, objednávka alebo faktúra. Kompletný zoznam evidencií si môžete vypísať; do adresy uvádzajte hodnotu elementu evidencePath.

  • ID záznamu je identifikátor konkrétneho záznamu. Okrem interného čísla je možné použiť aj kód, externé ID alebo EAN, pozri identifikátory záznamov.

  • výstupný formát určuje podobu odpovede, napríklad xml alebo json. Pokiaľ ho neuvediete, server sa riadi hlavičkou Accept.

Príklad

  • demo.flexibee.eu je adresa servera, v tomto prípade našej demo inštancie

  • demo je identifikátor firmy

  • faktura-vydana je evidencia vydaných faktúr

  • 15 je identifikátor záznamu; nájdete ho vo výstupe v elemente id alebo v aplikácii po pridaní stĺpca ID

  • xml je formát dát

Táto adresa teda zobrazí vo formáte XML vydanú faktúru s ID 15 vo firme demo.

Adresa pri vlastnom serveri a lokálnej inštalácii

Pri vlastnej inštalácii sa mení iba adresa servera a port, zvyšok adresy zostáva rovnaký. Predvolený port servera ABRA Flexi je 5434.

https://localhost:5434/c/testovaci/faktura-vydana/15.xml

Ak pristupujete na server po sieti, použite jeho adresu alebo meno. Konkrétny port a jeho sprístupnenie zvonka má na starosti váš správca siete.

https://vas-server.cz:5434/c/testovaci/faktura-vydana/15.xml

💡 Kompletný prehľad všetkých podporovaných častí adresy a parametrov nájdete v referenčnej dokumentácii k skladaniu URL.


Prehľad atribútov evidencie

Pre každú evidenciu si môžete vypísať zoznam všetkých atribútov, ktoré obsahuje. Tento prehľad navyše zohľadňuje vaše prístupové práva a licenciu.

/c/<identifikátor firmy>/<evidence>/properties

Názvy atribútov z tohto prehľadu potom používate ako elementy v XML alebo JSON požiadavke. Napríklad atribút kod nesie kód, teda skratku záznamu.

Vysvetlivky k stĺpcom v prehľade properties:

Značka

Význam

*

Požadovaná položka. Vnútorné väzby môžu spôsobiť, že povinnú položku vypĺňať nemusíte.

rw

Položka je zapisovateľná.

ro

Položka je iba na čítanie.

1

Položka je súčasťou úrovne detailu id.

2

Položka je súčasťou úrovne detailu summary.

3

Položka je súčasťou úrovne detailu full.

S

Podľa položky je možné radiť a filtrovať.


Filtrovanie záznamov

Pokiaľ identifikátor záznamu neuvediete, vráti server výpis celej evidencie. Ten je možné obmedziť filtrom, ktorý sa zapisuje do zátvoriek:

/c/<identifikátor firmy>/<evidence>/(<filtr>)

Príklad vyfiltruje všetky vydané faktúry, ktorých kód začína na VF:

/c/demo/faktura-vydana/(kod begins 'VF')

Podmienky je možné kombinovať logickými operátormi and, or a not.

Príklad č. 1 vráti faktúry, ktorých kód začína na VF a zároveň končí na 2018:

/c/demo/faktura-vydana/(kod begins 'VF' and kod ends '2018')

Príklad č. 2 vráti faktúry, ktorých kód začína na FV alebo na VF:

/c/demo/faktura-vydana/(kod begins 'FV' or kod begins 'VF')

⚠️ Filtre musia byť v URL správne zakódované. Medzery, zátvorky a apostrofy prehliadač nepovoľuje zapísať priamo, preto sa v adrese objavia znaky ako %20. Najjednoduchšia cesta je napísať filter nezakódovane v prehliadači a adresu si skopírovať, prehliadač ju prekóduje sám.

Okrem porovnávania je možné filtrovať aj podľa štítkov, vnorených väzieb alebo zaradenia do stromovej štruktúry. Úplný prehľad operátorov a zástupných hodnôt ako now() nájdete v článku o filtrovaní záznamov. Výpis je tiež možné zoradiť parametrom order.


Úroveň detailu

Kvôli rýchlosti odpovede sa v predvolenom stave nevypisujú všetky údaje, ktoré pri zázname evidujeme. Rozsah dát určíte parametrom detail:

💡 Pri integráciách sa oplatí siahnuť po detail=custom a vypísať si len tie polia, ktoré naozaj potrebujete. Menšia odpoveď znamená rýchlejšiu odozvu a nižšiu záťaž servera. Viac v článku o úrovniach detailu.


Stránkovanie

Kvôli výkonu sa zoznam záznamov vracia po stránkach. Správanie riadia tieto parametre:

Parameter

Význam

limit

Maximálny počet záznamov na jednej stránke. Ak nie je uvedený, vracia sa 20 záznamov. Hodnota 0 vráti všetky záznamy bez obmedzenia.

start

Koľko záznamov sa má preskočiť. Nie je závislý na parametri limit.

add-row-count

Doplní do výstupu celkový počet záznamov v evidencii so zohľadnením filtrov.

Príklad: faktura-vydana.xml?limit=25&start=10 preskočí prvých 10 záznamov a vráti nasledujúcich 25, teda 11. až 35. záznam.

Podrobnosti popisuje článok o stránkovaní.


Sumácie a podevidencie

Pokiaľ vás nezaujímajú jednotlivé záznamy, ale ich súčet, použite sumáciu:

/c/<identifikátor firmy>/<evidence>/$sum

Sumáciu je možné skombinovať aj s filtrom:

/c/<identifikátor firmy>/<evidence>/(<filtr>)/$sum

Každá evidencia môže mať podevidencie, teda relácie. Príkladom sú položky faktúry alebo kontakty pri adresári. Ich prehľad získate takto:

/c/<identifikátor firmy>/<evidence>/relations

Ak chcete dáta z relácií vypísať priamo pri zázname, doplňte parameter relations. Nasledujúca adresa vypíše všetky väzby k faktúre s ID 15:


Export tlačových zostáv do PDF

Pri každej evidencii si môžete vypísať zoznam podporovaných tlačových zostáv:

/c/<identifikátor firmy>/<evidence>/reports

Konkrétnu zostavu potom vyexportujete do PDF pomocou parametra report-name. Nasledujúca adresa vytlačí dodací list k faktúre s ID 1:

/c/firma/faktura-vydana/1.pdf?report-name=dodaciList

Rovnakým spôsobom je možné exportovať aj vlastné používateľské zostavy, stačí uviesť ich skratku. Nasledujúca adresa vytlačí upravenú zostavu so skratkou stitky pre cenníkovú položku s ID 15:

/c/firma/cenik/15.pdf?report-name=stitky

Viac o možnostiach exportu, vrátane voľby jazyka zostavy a elektronického podpisu, nájdete v článku export tlačových zostáv.


Ďalšie diely série

Ste s tem dobili odgovor na svoje vprašanje?