Przejdź do treści

Konwerter GraphQL na schemat AST — Numio

Analizuje GraphQL SDL, buduje schemat i wypisuje go z powrotem jako pojedynczy znormalizowany schemat z @graphql-codegen/schema-ast. Rozszerzenia typów są łączone z ich typami podstawowymi, a opisy są drukowane jako ciągi blokowe.

Łączenie bloków typu Extend rozłożonych na kilka plików w jeden schema.graphql w celu przeglądu lub wykorzystania narzędzi.

GraphQL Schema

Schema AST

Kiedy go używać

  • Łączenie bloków typu Extend rozłożonych na kilka plików w jeden schema.graphql w celu przeglądu lub wykorzystania narzędzi.
  • Normalizowanie odręcznego SDL do kanonicznego formatu drukowanego przed porównaniem dwóch wersji schematu.

Jak używać

  1. Wklej jeden lub więcej fragmentów SDL, w tym wszelkie bloki typu Extend, do edytora schematu GraphQL.
  2. Sprawdź wydrukowany wynik: pola rozszerzeń zostaną dodane do oryginalnego typu, a opisy staną się blokami „”.
  3. Skopiuj dane wyjściowe i zapisz je jako plik .graphql.

Schemat GraphQL

extend type Query {
  me: User
}

type Query {
  ping: String
}

type User {
  id: ID!
  "Display name"
  name: String @deprecated(reason: "Use fullName")
}

Schemat wydrukowany (SDL)

type Query {
  me: User
  ping: String
}

type User {
  id: ID!

  """
  Display name
  """
  name: String @deprecated(reason: "Use fullName")
}

Szczegóły i ograniczenia

Kolejność pól może ulec zmianie: w tym przykładzie pola z bloku typu rozszerzonego zostały wydrukowane przed polami własnymi typu podstawowego.

Dyrektywy pól, takie jak @deprecated(powód: ...) są przechowywane w drukowanym pliku SDL.

Schemat jest budowany i drukowany w narzędziu Web Worker w przeglądarce, a następnie formatowany za pomocą parsera GraphQL firmy Prettier.

FAQ

Czy wyprowadza JSON AST?

Nie. Pomimo nazwy drukowany jest wynik GraphQL SDL, a nie JSON DocumentNode. Skorzystaj ze strony introspekcji JSON, jeśli potrzebujesz JSON.

Co się stanie z # komentarzami?

Komentarze nie należą do schematu i są usuwane podczas jego wypisywania. Użyj ciągów "description", aby zachować dokumentację.

Czy można połączyć typ rozszerzony z typem podstawowym?

Tak. Rozszerzenia są stosowane do typu bazowego, więc wynik zawiera jeden typ Query ze wszystkimi polami.

Specyfikacje i referencje