Kreator zapytań GraphQL

Pisanie operacji GraphQL ręcznie oznacza konieczność utrzymania w porządku nawiasów klamrowych, argumentów i wcięć. Ten kreator składa dokument za Ciebie: wybierz zapytanie, mutację lub subskrypcję, nazwij operację, ustaw pole główne, dodaj argumenty i wypisz potrzebne pola. Otrzymujesz sformatowaną operację, którą możesz wkleić bezpośrednio do Apollo, urql lub GraphiQL.

Jak stworzyć operację w GraphQL

  1. 1

    Wybierz typ operacji

    Wybierz zapytanie, mutację lub subskrypcję z rozwijanej listy. To określa, jaki rodzaj operacji wykona serwer.

  2. 2

    Nazwij operację

    Nadaj jej nazwę, np. GetUser, aby serwer mógł ją rejestrować w logach i buforować. Nazwa jest opcjonalna; kreator działa również bez niej.

  3. 3

    Ustaw pole główne

    Wpisz pole, które chcesz wywołać, na przykład user, createPost lub orderUpdated.

  4. 4

    Dodaj argumenty

    Dodaj pary klucz-wartość, takie jak id: "123" lub id: $id. Wiersze z pustym kluczem są pomijane.

  5. 5

    Wypisz pola i skopiuj

    Wpisz jedno pole na linię, zbuduj zapytanie i skopiuj sformatowany dokument do schowka.

Praca z dokumentami GraphQL

Dokument GraphQL to zbiór jednej lub kilku operacji oraz wszystkich fragmentów, do których te operacje się odnoszą. Każda operacja wskazuje pole główne typu Query, Mutation lub Subscription, a serwer rozwiązuje żądany przez Ciebie zestaw pól. Kreator pisze tekst operacji za Ciebie, ale nie zna Twojego schematu, więc przed uruchomieniem operacji porównaj każdą nazwę pola i argumentu ze swoim API.

Anatomia operacji

Część Cel Przykład
Typ operacji Zapytanie, mutacja lub subskrypcja query, mutation, subscription
Nazwa operacji Używana do buforowania i logów GetUserById
Argumenty Wartości przekazywane do pola głównego user(id: "123")
Zestaw pól Pola i zagnieżdżone selekcje { user(id: "123") { name posts { title } } }
Zmienne Typowane dane wejściowe deklarowane przy nazwie operacji query GetUser($id: ID!) { user(id: $id) { name } }

Najczęstsze błędy

  • Wymagane zmienne kończą się na !. Pominięcie go w argumentach oznaczonych w schemacie jako NonNull powoduje błąd walidacji jeszcze przed uruchomieniem resolvera.
  • Argumenty tekstowe wymagają cudzysłowów. Wartość taka jak 123 jest liczbą; wartość tekstową należy zapisać w wierszu argumentu jako "123" w podwójnym cudzysłowie.
  • Typy unii i interfejsu wymagają wbudowanych fragmentów ... on TypeName, aby odczytać pola specyficzne dla danego typu.
  • Aliasy są obowiązkowe, gdy żądasz tego samego pola dwukrotnie z różnymi argumentami, na przykład today: stats(period: DAY) i week: stats(period: WEEK).
  • Połączenia (specyfikacja Relay) udostępniają edges { node { ... } } i pageInfo { endCursor hasNextPage }; pominięcie któregokolwiek z nich psuje paginację.

Porady

  • Utrzymuj operacje małe i nazwane, aby Apollo Client mógł buforować je pojedynczo.
  • Zmieniające się wartości przekazuj jako zmienne zamiast literałów, dzięki czemu serwer przeanalizuje dokument raz i użyje go ponownie; deklaruj je przy nazwie operacji, na przykład query GetUser($id: ID!).
  • Jeśli pole wymaga kilku argumentów, wpisz je w jednym wierszu argumentu oddzielone przecinkami, na przykład filter: { status: ACTIVE } jako wartość.
  • Kreator generuje dokładnie taki tekst, jaki skonfigurujesz. Jeśli operacja się nie powiedzie, najpierw porównaj nazwy pól z bieżącym schematem.

Najczęściej zadawane pytania

Nie. Formatuje tylko tekst, który podajesz; nie ma żadnego punktu końcowego do wywołania ani wymaganego schematu. Wypełnij części operacji, a kreator złoży dokument za Ciebie.

Tak. Użyj rozwijanej listy operacji, aby przełączać się między zapytaniem, mutacją i subskrypcją. Reszta działa tak samo: nazwa, pole główne, argumenty i pola.

Dodaj wiersze w sekcji argumentów. Klucz to nazwa argumentu, a wartość to to, co przekazujesz, na przykład id: “123” lub id: $id. Wiersze z pustym kluczem są ignorowane. Jeśli wpisujesz zmienną, taką jak $id, zadeklaruj ją sam przy nazwie operacji, na przykład query GetUser($id: ID!).

Kreator generuje dokładnie taki tekst, jaki wpisałeś. Błąd zwykle oznacza, że nazwa pola lub argumentu nie pasuje do schematu Twojego serwera: porównaj pole główne i każdą nazwę pola ze swoim API i popraw literówki.

Powiązane narzędzia

Narzędzie jest dostępne w innych językach