Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Koncové body GraphQL v Tvůrci rozhraní DATA API (DAB) umožňují dotazovat a upravovat data s přesností. Každý dotaz deklaruje přesně ta pole, která potřebujete, a podporuje argumenty pro filtrování, řazení a stránkování výsledků.
Ve výchozím nastavení DAB hostuje koncový bod GraphQL na adrese:
https://{base_url}/graphql
Entity vystavené prostřednictvím konfigurace se automaticky zahrnou do schématu GraphQL.
Například pokud máte entity books a authors, obě se ve schématu zobrazují jako kořenová pole.
Poznámka:
K prozkoumání schématu a automatické doplňování použijte libovolného moderního GraphQL klienta nebo integrovaného vývojového prostředí (IDE) (například Apollo, Insomnia nebo VS Code GraphQL).
Klíčová slova podporovaná v Tvůrci rozhraní Data API
| Koncepce | GraphQL | Účel |
|---|---|---|
| Projection | items | Zvolte, která pole vrátit |
| Filtering | filtr | Omezení řádků podle podmínky |
| Řazení | orderBy | Definování pořadí řazení |
| Velikost stránky | first | Omezení položek na stránku |
| Pokračování | po | Pokračovat z poslední stránky |
Základní struktura
Každý dotaz GraphQL začíná kořenovým polem, které představuje entitu.
{
books {
items {
id
title
price
}
}
}
Výsledkem je objekt JSON se stejným tvarem jako sada výběrů:
{
"data": {
"books": {
"items": [
{ "id": 1, "title": "Dune", "price": 20 },
{ "id": 2, "title": "Foundation", "price": 18 }
]
}
}
}
Poznámka:
Ve výchozím nastavení daB vrátí až 100 položek na dotaz, pokud není nakonfigurovaný jinak (runtime.pagination.default-page-size).
Typy dotazů
Každá entita podporuje dva standardní kořenové dotazy:
| Query | Popis |
|---|---|
entity_by_pk |
Vrátí jeden záznam podle primárního klíče. |
entities |
Vrátí seznam záznamů, které odpovídají filtrům. |
Příklad vrácení jednoho záznamu:
{
book_by_pk(id: 1010) {
title
year
}
}
Příklad vracející mnoho dat:
{
books {
items {
id
title
}
}
}
Filtrování výsledků
Pomocí argumentu filter omezte, které záznamy se vrátí.
{
books(filter: { title: { contains: "Foundation" } }) {
items { id title }
}
}
Tento dotaz vrátí všechny knihy, jejichž název obsahuje "Nadace".
Filtry můžou kombinovat porovnání s logickými operátory:
{
authors(filter: {
or: [
{ first_name: { eq: "Isaac" } }
{ last_name: { eq: "Asimov" } }
]
}) {
items { first_name last_name }
}
}
Podívejte se na referenční informace o argumentech filtru pro podporované operátory, jako jsou eq, neq, lt, lte, a isNull.
Řazení výsledků
Argument orderBy definuje způsob řazení záznamů.
{
books(orderBy: { year: DESC, title: ASC }) {
items { id title year }
}
}
Vrátí knihy seřazené podle year sestupně, pak podle title.
Další podrobnosti najdete v referenčních informacích k argumentu orderBy .
Omezení výsledků
Argument first omezuje počet vrácených záznamů v jednom požadavku.
{
books(first: 5) {
items { id title }
}
}
Tím se vrátí prvních pět knih seřazených podle primárního klíče ve výchozím nastavení.
Můžete také použít first: -1 k vyžádání nakonfigurované maximální velikosti stránky.
Další informace najdete v prvním odkazu na argument.
Pokračování výsledků
Pokud chcete načíst další stránku, použijte after argument s kurzorem z předchozího dotazu.
{
books(first: 5, after: "eyJpZCI6NX0=") {
items { id title }
}
}
Token after označuje, kde byla předchozí stránka ukončena.
Další podrobnosti najdete v referenčních informacích k argumentu.
Výběr pole (projekce)
V GraphQL zvolíte přesně ta pole, která se zobrazí v odpovědi.
Neexistuje žádný zástupný znak jako SELECT *. Požádejte jenom o to, co potřebujete.
{
books {
items { id title price }
}
}
K přejmenování polí v odpovědi můžete také použít aliasy:
{
books {
items {
bookTitle: title
cost: price
}
}
}
Podrobnosti najdete v referenčních informacích k projekci polí .