Preskoči na glavno vsebino

Výpis záznamov

Ako vypisovať záznamy z aplikácie pomocou REST API?

Avtor: Petr Pech

V ABRA Flexi je možné vypisovať základné dáta z aplikácie. Všeobecne rozlišujeme výpis a detail.

Záznamy možno vypisovať aj pomocou /query. Ak vás zaujímajú detaily a chcete postupovať týmto spôsobom, preštudujte náš iný návod. Krátku ukážku nájdete taktiež na konci tohto návodu.

Výpis

Ide o výpis viacerých záznamov. Možno ho stránkovať, filtrovať, radiť a určovať úroveň detailu. Výstup možno vypisovať vo viacerých formátoch.

Detail

Detail vždy reprezentuje iba jeden záznam, ktorý môže byť identifikovaný rôznymi spôsobmi a zapísaný vo viacerých formátoch.

Výpis mnohých konkrétnych záznamov

Ak potrebujete získať viac konkrétnych záznamov, pri ktorých poznáte identifikátor (typicky externé ID), máte niekoľko možností.

1. Každý záznam môžete získať samostatne, takto:

GET /c/firma/faktura-vydana/1

GET /c/firma/faktura-vydana/code:2

GET /c/firma/faktura-vydana/ext:SYS:3

Pozor na to, že v tomto príklade bude prvou odpoveďou na druhý a tretí požiadavok presmerovanie na adresu, ktorá obsahuje číselné ID. Na tú je potom potrebné odoslať nový požiadavok. Knižnice na prácu s HTTP zvyčajne vedia sledovať presmerovania automaticky, ale môže byť potrebné túto funkciu zapnúť.

2. Môžete použiť filtrovanie, takto:

GET /c/firma/faktura-vydana/(id in (1, 'code:2', 'ext:SYS:3'))

Pozor na to, že príliš dlhé URL adresy môžu spôsobovať problémy (či už vo webových prehliadačoch alebo na rôznych proxy serveroch).

3. Môžete použiť funkciu hromadného získania záznamov podľa ID zadaných v XML dokumente.

POST /c/firma/faktura-vydana/get.xml

Content-Type: application/xml

<winstrom> 
<id>1</id>
<id>code:2</id>
<id>ext:SYS:3</id>
</winstrom>

Tu nie je problém s dĺžkou URL, takže týmto spôsobom možno získať aj niekoľko stoviek či tisíc záznamov súčasne.

Ak je uvedený neexistujúci identifikátor, bude ignorovaný. Ak je uvedený jeden identifikátor viackrát, príp. ak je uvedených viac identifikátorov, ktoré odkazujú na ten istý záznam, na výstupe sa objavia duplicity.

Okrem XML možno použiť aj JSON, okrem metódy POST aj PUT:

PUT /c/firma/faktura-vydana/get.json
Content-Type: application/json

"winstrom": {

"id": [1, "code:2", "ext:SYS:3"]

}

}

Na záver je potrebné opäť spomenúť, že výpis záznamov možno z ABRA Flexi získať aj pomocou tzv. /query, kedy sa v tele volania odosielajú príslušné parametre.

Štandardné volanie JSON

  1. Telo požiadavku
    { "winstrom": { ... filtry, detail, parametry } }

Všetky možnosti a detaily nájdete v našom podrobnom návode.

Ste s tem dobili odgovor na svoje vprašanje?