Příloha 1
Volání GraphQL dotazu z Java Scriptu
if (GraphQL.HasQuery('Dotaz')) //ověření, že dotaz opravdu existuje { var result = GraphQL.Execute('Dotaz'); //volání GraphQL dotazu }
Vložení záznamu do tabulky v DB
Pro vložení záznamu do tabulky je nutné mít připravený GraphQL dotaz a JS, který bude tento dotaz spouštět (viz výše).
Tabulka v DB pro příklad vypadá následovně:
Název sloupce | Typ | Poznámka |
---|---|---|
id_p |
int |
primární klíč, auto-increment |
jmeno |
nvarchar(MAX) |
|
prijmeni |
nvarchar(MAX) |
|
decimal |
decimal(18, 5) |
|
integer |
int |
Ve formuláři jsou definované variables: sloupec_jmeno (string), sloupec_prijmeni (string), sloupec_decimal (decimal), sloupec_integer (integer)
Obecně GraphQL mutace pro vložení vypadá následovně:
mutation nazev_mutace(definice promennych) { alias:insertnazev_tabulky(hodnoty_pro_vlozeni) { vraceny_objekt } }
Konkrétní mutace pro tento případ (pro správnou funkčnost je nutno nahradit název tabulky názvem tabulky z vlastní firmy):
mutation vlozeni_zaznamu($sloupec_jmeno: String!, $sloupec_prijmeni: String!, $sloupec_decimal: Decimal!, $sloupec_integer: Int!) { vracena_data:insertPokus(jmeno: $sloupec_jmeno, prijmeni: $sloupec_prijmeni, decimal: $sloupec_decimal, integer: $sloupec_integer) { id_p } }
Úprava záznamu na základě ID
Záznam se musí upravovat vždy na základě primárního klíče (v tomto případě id_p). Do id_p se pošle hodnota primárního klíče řádku, který se má upravovat.
mutation upravaZaznamu($sloupec_id: Int!, $sloupec_jmeno: String!, $sloupec_prijmeni: String!, $sloupec_decimal: Decimal!, $sloupec_integer: Int!) { updatePokus(id_p: $sloupec_id, jmeno:$sloupec_jmeno, prijmeni:$sloupec_prijmeni, decimal: $sloupec_decimal, integer: $sloupec_integer) { id_p } }
Dotaz na konkrétní záznam
Využívá se stejná tabulka jako v předchozím případě. Hledá se záznam s ID = 6.
query selectId { pokus(id_p:6) { decimal integer jmeno prijmeni } }
Dotaz na všechny záznamy v tabulce
Využívá se stejná tabulka jako v předchozích příkladech. Pozor, je nutné hlídat, že se používá množné číslo v názvu tabulky (s na konci).
query selectAll { pokuss { edges { node { jmeno prijmeni } } } }
Počet uživatelů zadaného křestního jména
Využívá se stejná tabulka jako v předchozích příkladech.
query countaNames($zadanejmeno:String!) { Jmena: pokuss (where: { containsString: { expr: { col: JMENO }, value: $zadanejmeno } } ) { aggregate { count } } }
Počet uživatelů zadaného stringu v zadaném sloupci
Využívá se stejná tabulka jako v předchozích příkladech.
query countStringColumn($zadanejmeno: String!, $jmenosloupce: Pokus2StringColumns!) { Jmena: pokuss (where: { and: [ { containsString: { expr: { col: $jmenosloupce}, value: $zadanejmeno } } { containsString: { expr: { col: JMENO }, value: $zadanejmeno } } ] } ) { aggregate { count } } }
Výpis všech záznamů, kde je ve sloupci Integer zadaná hodnota seřazené podle jména vzestupně, v případě shodných jmen podle příjmení vzestupně
Využívá se stejná tabulka jako v předchozích příkladech.
query searchInt($nasInt:Int!) { vysledek: pokuss(orderBy: [ { jmeno: ASC } { prijmeni: ASC } ], where: { eqInt: {