Dotazovací jazyk REST API IS FLORES
Zde jsou uvedeny možnosti dotazování v FLORES API.
Dotazování (také dotazovací jazyk nebo BO Query) v REST API IS FLORES slouží k efektivnímu výběru dat ze systému IS FLORES.
Dotaz lze specifikovat ve dvou formách:
V základní variantě se dotaz zapisuje ve formě query parametrů URL HTTP požadavku. Query parametry se zapisují tak, že za adresou následuje otazník a za ním zapsané páry ve formátu klíč=hodnota. Klíč i hodnota musí být tzv. URL-zakódované (např. se v nich nesmí vyskytovat mezery a další znaky napřímo; např. mezera se dá zapsat jako + nebo %20). Výběr je v základní variantě vždy uskutečňován nad kolekcí BO. Páry jsou odděleny znakem &.
Pro url zakódování/dekódování řetězců lze využít různé on-line nástroje typu URL decoder/encoder. (Zdroj pro download si naleznete na webu.)
V rozšířené variantě se dotaz zapisuje ve formě JSON dokumentu, který je zasílán v těle HTTP požadavku (je používána HTTP metoda POST).
Výběr je v rozšířené variantě uskutečňován:
- nad resourcem query podřízeným kolekci BO (např.
/{spojení}/{kolekce BO}/query) - pak se v JSON dotazu neuvádí vlastnost class - nad obecným resourcem pro rozšířené dotazování s názvem query (
/{spojení}/query)- pak se v JSON dotazu uvádí vlastnost class
Při výběru dat z kolekce BO nejsou ve výchozím stavu zahrnuty uživatelské ani nepersistentní položky.
Výraz je v dotazovacím jazyce sekvence jednoho nebo více operandů (operandem je field BO nebo výraz), v případné kombinaci s operátory (spojování řetězců, matematické operace atd.), který je možné vyhodnotit jako jednu hodnotu.
Příklad výrazu pro spojení polí Code a Name: Code || Name
Při použití výrazu v klauzuli select dotazu je do názvu výsledného fieldu dosazen celý výraz. K jeho přejmenování slouží v základní variantě dotazování operátor as, v rozšířené variantě je nutné field specifikovat jako výrazový objekt (JSON objekt obsahující alias fieldu a výraz dosazovaný do jeho hodnoty).
Ve výrazech lze používat několik druhů operátorů. Porovnávací a logické operátory jsou uvedeny v tabulkách níže, další dostupné operátory uvádíme v následující tabulce. Operátory lze řetězit, vyhodnocovány jsou vždy zleva doprava, v případě aritmetických operátorů je patřičně aplikována přednost. Pořadí vykonávání výrazů lze ovlivňovat pomocí závorek.
| Operátory | ||||
|---|---|---|---|---|
| Operátor | Název | Význam | Příklad použití | Popis příkladu |
|
|| + |
Spojení řetězců | Spojí dva řetězce do jednoho |
|
Spojí fieldy Code a Name. Na místě fieldů lze použít i literál (konkrétní řetězec) nebo výraz. |
| Aritmetické operátory | ||||
|
|
Plus | Sečte dvě čísla |
|
Sečte fieldy LocalAmountWithoutVAT a VATAmount. Na místě fieldů lze použít i literál (konkrétní číslo) nebo výraz. |
|
|
minus | Odečte dvě čísla |
|
Odečte hodnotu fieldu VATAmount od hodnoty ve fieldu Amount. Na místě fieldů lze použít i literál (konkrétní číslo) nebo výraz. |
|
* mul |
Krát | Vynásobí dvě čísla |
|
Vynásobí hodnoty fieldů UnitPrice a Quantity. Na místě fieldů lze použít i literál (konkrétní číslo) nebo výraz. |
|
/ div |
Děleno | Vydělí dvě čísla |
|
Vydělí hodnotu fieldu TotalPrice hodnotou fieldu Quantity. Na místě fieldů lze použít i literál (konkrétní číslo) nebo výraz. |
|
% mod |
Zbytek po dělení (modulo) | Vypočte zbytek po dělení l-hodnoty r-hodnotou |
|
Vypočte zbytek po dělení fieldu TotalPrice hodnotou číslem 3. Na místě fieldů lze použít i literál (konkrétní číslo) nebo výraz. |