Preskoči na glavno vsebino

Používateľské dotazy

Ako pracovať s používateľskými dotazmi cez REST API?

Avtor: Lenka Haringerová

Cez REST API je možné s uživateľskými dotazmi pracovať bežným spôsobom ako s každou inou evidenciou — na adrese /c/{firma}/uzivatelsky-dotaz. Okrem toho je možné uložený dotaz aj zavolať a získať jeho výsledok.


Volanie dotazu

Najjednoduchší dotaz — teda ten, ktorý nemá parametre, alebo majú všetky parametre postačujúce predvolené hodnoty — zavoláte takto:

GET https://demo.flexibee.eu/c/demo/uzivatelsky-dotaz/1/call.xml

Číslo 1 zodpovedá ID daného uživateľského dotazu; namiesto ID je možné uviesť aj jeho skratku v tvare code:ZKRATKA. Výstupný formát určíte príponou .xml alebo .json a fungujú obvyklé parametre pre úroveň detailu aj stránkovanie.

Výsledok dotazu sa vracia v elemente DotazView, ktorého vlastnosti zodpovedajú stĺpcom definovaným pri dotaze:

{
"winstrom": {
"@version": "1.0",
"DotazView": [
{
"nazev": "ABRA Flexi s.r.o.",
"sloupec": "dic",
"puvodni_hodnota": "CZ28019920",
"zmenena_na": "",
"uzivatelem": "admin",
"datcas": "2021.09.09 - 13:59:50"
}
]
}
}


Parametre dotazu

Ak má dotaz parametre, uveďte pre každý z nich parameter v URL. Ak má dotaz napríklad parameter datum, volanie vyzerá takto:

GET .../uzivatelsky-dotaz/1/call.xml?datum=2012-01-01

Ak má parameter dotazu mohutnosť N, teda je možné zadať viacero hodnôt, stačí parameter v URL zopakovať — napríklad pre výber niekoľkých firiem:

GET .../uzivatelsky-dotaz/1/call.xml?firma=code:FIRMA1&firma=code:FIRMA2

V uloženom dotaze potom použite operátor IN (<<firma>>).

ℹ️ Hodnoty parametrov sa zapisujú obvyklým spôsobom a neuzatvárajú sa do úvodzoviek. Nezabudnite na správne zakódovanie v URL.


Odovzdanie parametrov metódou POST

Okrem GET je možné dotaz zavolať aj metódou POST, ktorá umožňuje odovzdať aj veľký počet parametrov v tele požiadavky. Parametre je možné odovzdať tromi spôsobmi.

V JSON štruktúre

POST .../uzivatelsky-dotaz/code:TEST_JSON_PARAMS/call.json
Content-Type: application/json
{
"param1": "hodnota1",
"param2": "hodnota2",
"param3": 123
}

V XML štruktúre

POST .../uzivatelsky-dotaz/code:TEST_XML_PARAMS/call.xml
Content-Type: application/xml
<?xml version="1.0" encoding="UTF-8"?>
<winstrom>
<param1>hodnota1</param1>
<param2>hodnota2</param2>
<param3>123</param3>
</winstrom>

Ako form data

Parametre je možné poslať aj ako application/x-www-form-urlencoded. V tomto prípade nesmie byť v URL prípona formátu — výstupný formát určte hlavičkou Accept:

POST .../uzivatelsky-dotaz/code:TEST_PARAMS/call
Content-Type: application/x-www-form-urlencoded
Accept: application/json
param1=hodnota1&param2=hodnota2&param3=888

⚠️ Ak pošlete form data na adresu s príponou, server sa pokúsi telo rozobrať ako JSON či XML a odpoveďou je 400 — Failed to parse JSON body, respektíve Failed to parse XML body.


Tlač uloženého dotazu

Uložené dotazy je možné aj tlačiť. Pre každý uložený dotaz je nutné vytvoriť vlastnú tlač a pri dotaze ju vybrať; tlač potom je možné volať aj cez REST API — postup popisuje článok Export tlačových zostáv.


Súvisiace

Ste s tem dobili odgovor na svoje vprašanje?