Dotazovací jazyk REST API systému 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ů:
- Řetězcové a aritmetické - jejich popis naleznete v tabulce na konci této kapitoly.
- Porovnávací - viz popis klauzule where v kapitole Příklady základního dotazování REST API IS FLORES.
- Logické - viz sekce o kombinování výrazů ve stejné kapitole.
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.
Kromě operátorů je ve výrazech možné používat také obecné funkce.
| Funkce | |||
|---|---|---|---|
| Funkce | Význam | Příklad použití | Popis příkladu |
| Řetězcové funkce | |||
| Převede řetězec na velká písmena |
|
Omezí výběr na objekty, jejichž název (Name) po převedení na velká písmena obsahuje řetězec ABRA. Tuto funkci, stejně jako její obdobu lower(), je možné používat i na jiných místech, např. v klauzuli orderby:
Bez použití funkcí upper() nebo lower() zohledňuje dotazování na řetězce a jejich části prostřednictvím Web API velikost písmen (je case sensitive
Je zapotřebí se dotázat takto:
|
|
| Převede řetězec na malá písmena |
|
Omezí výběr na objekty, jejichž název (Name) po převedení na malá písmena obsahuje řetězec abra. |
|