Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Punkty końcowe GraphQL w narzędziu Data API Builder (DAB) umożliwiają wykonywanie zapytań i modyfikowanie danych z dokładnością. Każde zapytanie deklaruje dokładnie potrzebne pola i obsługuje argumenty filtrowania, porządkowania i stronicowania wyników.
Domyślnie DAB hostuje swój punkt końcowy GraphQL w:
https://{base_url}/graphql
Jednostki uwidocznione za pośrednictwem konfiguracji są automatycznie uwzględniane w schemacie GraphQL.
Na przykład, jeśli masz jednostki books i authors, obie występują jako pola root w schemacie.
Uwaga / Notatka
Użyj dowolnego nowoczesnego klienta GraphQL lub środowiska IDE (na przykład Apollo, Insomnia lub VS Code GraphQL), aby eksplorować schemat i korzystać z funkcji autouzupełniania.
Słowa kluczowe obsługiwane w narzędziu Data API Builder
| Concept | GraphQL | Przeznaczenie |
|---|---|---|
| Projection | Elementy | Wybieranie pól, które mają być zwracane |
| Filtering | filtr | Ograniczanie wierszy na podstawie warunku |
| Sortowanie | orderBy | Definiowanie kolejności sortowania |
| Rozmiar strony | first | Ogranicz elementy na stronę |
| Kontynuacja | po | Kontynuuj z ostatniej strony |
Struktura podstawowa
Każde zapytanie GraphQL rozpoczyna się od pola głównego reprezentującego jednostkę.
{
books {
items {
id
title
price
}
}
}
Wynik jest obiektem JSON o tym samym kształcie co zestaw wyboru.
{
"data": {
"books": {
"items": [
{ "id": 1, "title": "Dune", "price": 20 },
{ "id": 2, "title": "Foundation", "price": 18 }
]
}
}
}
Uwaga / Notatka
Domyślnie daB zwraca maksymalnie 100 elementów na zapytanie, chyba że skonfigurowano inaczej (runtime.pagination.default-page-size).
Typy zapytań
Każda jednostka obsługuje dwa standardowe zapytania główne:
| Query | Opis |
|---|---|
entity_by_pk |
Zwraca jeden rekord według klucza podstawowego |
entities |
Zwraca listę rekordów pasujących do filtrów |
Przykład zwracający jeden rekord:
{
book_by_pk(id: 1010) {
title
year
}
}
Przykład zwraca wiele wyników:
{
books {
items {
id
title
}
}
}
Filtrowanie wyników
Użyj argumentu , filter aby ograniczyć zwracane rekordy.
{
books(filter: { title: { contains: "Foundation" } }) {
items { id title }
}
}
To zapytanie zwraca wszystkie książki, których tytuł zawiera "Foundation".
Filtry mogą łączyć porównania z operatorami logicznymi:
{
authors(filter: {
or: [
{ first_name: { eq: "Isaac" } }
{ last_name: { eq: "Asimov" } }
]
}) {
items { first_name last_name }
}
}
Zobacz referencję argumentów filtru dla obsługiwanych operatorów, takich jak eq, neq, lt, lte i isNull.
Sortowanie wyników
Argument orderBy definiuje sposób sortowania rekordów.
{
books(orderBy: { year: DESC, title: ASC }) {
items { id title year }
}
}
Zwraca ono książki uporządkowane malejąco według year, a następnie według title.
Zobacz odwołanie do argumentu orderBy, aby uzyskać więcej informacji.
Ograniczanie wyników
Argument first ogranicza liczbę rekordów zwracanych w jednym żądaniu.
{
books(first: 5) {
items { id title }
}
}
Zwraca domyślnie pięć pierwszych książek uporządkowanych według klucza podstawowego.
Możesz również użyć first: -1 polecenia , aby zażądać skonfigurowanego maksymalnego rozmiaru strony.
Dowiedz się więcej w pierwszym odwołaniu do argumentów.
Dalsze wyniki
Aby pobrać następną stronę, użyj argumentu after z kursorem z poprzedniego zapytania.
{
books(first: 5, after: "eyJpZCI6NX0=") {
items { id title }
}
}
Token after oznacza miejsce zakończenia poprzedniej strony.
Aby uzyskać więcej informacji, zobacz sekcję poświęconą argumentom.
Wybór pola (projekcja)
W narzędziu GraphQL wybierasz dokładnie, które pola są wyświetlane w odpowiedzi.
Nie ma symbolu wieloznacznego takiego jak SELECT *. Zażądaj tylko tego, czego potrzebujesz.
{
books {
items { id title price }
}
}
Możesz również użyć aliasów, aby zmienić nazwy pól w odpowiedzi:
{
books {
items {
bookTitle: title
cost: price
}
}
}
Aby uzyskać szczegółowe informacje, zobacz dokumentację projekcji pól .