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:
{