Convertitore da GraphQL allo schema AST — Numio
Analizza GraphQL SDL, crea uno schema e lo stampa come un singolo schema normalizzato con @graphql-codegen/schema-ast. Le estensioni di tipo vengono unite ai relativi tipi di base e le descrizioni vengono stampate come stringhe di blocco.
Unione di blocchi di tipo esteso distribuiti su più file in un unico schema.graphql per revisione o strumenti.
Quando usarlo
- Unione di blocchi di tipo esteso distribuiti su più file in un unico schema.graphql per revisione o strumenti.
- Normalizzazione di SDL scritta a mano nel formato stampato canonico prima di differenziare due versioni dello schema.
Come si usa
- Incolla uno o più frammenti SDL, inclusi eventuali blocchi di tipo esteso, nell'editor dello schema GraphQL.
- Controlla il risultato stampato: i campi ampliamento vengono aggiunti alla tipologia originale e le descrizioni diventano blocchi """.
- Copia l'output e salvalo come file .graphql.
Schema GraphQL
extend type Query {
me: User
}
type Query {
ping: String
}
type User {
id: ID!
"Display name"
name: String @deprecated(reason: "Use fullName")
}Schema stampato (SDL)
type Query {
me: User
ping: String
}
type User {
id: ID!
"""
Display name
"""
name: String @deprecated(reason: "Use fullName")
}Dettagli e limiti
L'ordine dei campi può cambiare: in questo esempio i campi di un blocco di tipo esteso sono stati stampati prima dei campi del tipo base.
Le direttive sul campo come @deprecated(reason: ...) sono mantenute nel SDL stampato.
Lo schema viene creato e stampato in un Web Worker nel browser, quindi formattato con il parser GraphQL di Prettier.
FAQ
Emette un JSON AST?
No. Nonostante il nome, il risultato è stampato GraphQL SDL, non JSON DocumentNode. Utilizza la pagina di introspezione JSON se hai bisogno di JSON.
Cosa succede a # commenti?
I commenti non fanno parte dello schema e vengono eliminati quando lo schema viene stampato. Usa le stringhe "description" per mantenere la documentazione.
Può unire il tipo esteso nel tipo base?
Sì. Le estensioni vengono applicate al tipo di base, quindi l'output contiene una query di tipo singolo con tutti i campi.