Gerar JSON de introspeção GraphQL — Numio
Converte SDL de GraphQL no resultado JSON de uma query de introspecção padrão usando @graphql-codegen/introspection. A saída contém um objeto __schema de nível superior com os tipos raiz, todos os tipos (incluindo os embutidos) e as diretivas.
Gerar um schema.json para ferramentas que esperam JSON de introspecção em vez de SDL, como alguns plugins de IDE e geradores de cliente.
Quando usar
- Gerar um schema.json para ferramentas que esperam JSON de introspecção em vez de SDL, como alguns plugins de IDE e geradores de cliente.
- Ver como o tipo de um campo é envolvido nos kinds NON_NULL e LIST nos dados de introspecção.
Como usar
- Cole o SDL do schema no editor GraphQL Schema.
- Aguarde o JSON no painel Introspection JSON; mesmo um schema de um único campo gera cerca de mil linhas.
- Copie ou baixe o JSON e salve-o, por exemplo como schema.json.
Schema GraphQL
type Query {
hello(name: String): String!
}JSON de introspecção
{
"__schema": {
"queryType": {
"name": "Query"
},
"mutationType": null,
"subscriptionType": null,
"types": [
{
"kind": "OBJECT",
"name": "Query",
"description": null,
"fields": [
{
"name": "hello",
"description": null,
"args": [
{
"name": "name",
"description": null,
"type": {
"kind": "SCALAR",
"name": "String",
"ofType": null
…Detalhes e limitações
Escalares embutidos (String, Boolean), os tipos de introspecção (__Schema, __Type, __Field e outros) e as diretivas embutidas (include, skip, deprecated, specifiedBy) são sempre incluídos.
O JSON não vem envolvido em uma chave "data"; ele começa direto com __schema.
A conversão roda em um Web Worker no seu navegador. Esta página só recebe um schema; ela não consulta nenhum endpoint ativo.
FAQ
Posso obter o JSON de introspecção a partir de uma URL?
Não. A página converte o SDL que você cola; ela não envia queries de introspecção a nenhum servidor. Exporte primeiro o SDL do seu servidor e cole aqui.
Campos depreciados são incluídos?
Sim. Cada campo e valor de enum é listado com isDeprecated e deprecationReason, então campos marcados com @deprecated aparecem com isDeprecated: true.
Por que a saída é tão grande para um schema pequeno?
Resultados de introspecção descrevem todo o sistema de tipos, incluindo os escalares embutidos, os metatipos de introspecção e as definições de diretivas, não apenas os seus próprios tipos.