JSON a esquema GraphQL (SDL)

Genera tipos de objeto GraphQL en SDL a partir de JSON: Int frente a Float, marcadores non-null, tipos lista y tipos anidados inferidos de tu ejemplo. Gratis y en el navegador.

Los campos no nulos llevan "!". Los enteros de más de 32 bits pasan a Float; los valores mixtos o solo null usan un escalar JSON personalizado.

Se ejecuta completamente en tu navegador. Tus datos nunca se suben.

Herramientas Relacionadas

Ver Todas

¿Qué es JSON a GraphQL?

Genera declaraciones type en lenguaje de definición de esquemas (SDL) de GraphQL a partir de un ejemplo JSON. Los valores obligatorios reciben el marcador non-null !, los arrays se convierten en tipos lista y los objetos anidados en tipos de objeto independientes.

Cómo usar JSON a GraphQL

  1. Pega un ejemplo JSON en Entrada JSON (o haz clic en Cargar ejemplo / Abrir archivo).
  2. Fija el Nombre del tipo raíz (por defecto Root).
  3. Copia el código GraphQL generado o haz clic en Descargar para guardarlo como archivo.

Ejemplo

Entrada
{"id":1,"name":"A","tags":["x"]}
Salida
type Root {
  id: Int!
  name: String!
  tags: [String!]!
}

Cuándo usar JSON a GraphQL

Úsalo para esbozar el esquema de una API GraphQL que envuelve un servicio JSON/REST existente. Solo emite tipos de salida; los tipos de entrada, queries, mutations y resolvers hay que escribirlos aparte.

Cómo funciona JSON a GraphQL

El ejemplo se recorre de forma recursiva y cada posición acumula los tipos que ha visto. Los arrays de objetos se fusionan en un solo tipo: una clave que falta en algunos elementos pasa a ser opcional, una clave que es null en algún sitio pasa a ser anulable, los enteros mezclados con decimales se convierten en un tipo de coma flotante y cualquier otra mezcla de tipos recurre a un tipo dinámico. Los objetos anidados se convierten en tipos con nombre propio (PascalCase de la clave, claves de array en singular: orders → Order), con sufijos numéricos si los nombres coinciden. La salida GraphQL convierte enteros en Int (o Float cuando un valor supera los 32 bits, ya que Int de GraphQL es de 32 bits), decimales en Float, cadenas en String y booleanos en Boolean. Los valores null o ausentes en el ejemplo son anulables (sin !). Los valores mixtos o solo null usan un escalar personalizado JSON, que se declara al principio cuando hace falta. Los nombres de campo que no son nombres GraphQL válidos se convierten a camelCase.

Casos de Uso Comunes

  • Redactar tipos de objeto para una pasarela GraphQL sobre una API REST
  • Documentar en SDL la forma de unos datos JSON
  • Empezar un diseño de API schema-first a partir de datos de ejemplo
  • Comparar payloads REST con un esquema GraphQL existente

Preguntas Frecuentes

¿Por qué un ID tiene el tipo Int y no ID?

El ejemplo solo muestra un número. Cámbialo a ID! si el campo es un identificador: la herramienta no puede conocer la semántica.

¿Qué es el escalar JSON?

Un escalar personalizado que se usa para valores cuyo tipo varía. Tu servidor debe definirlo, por ejemplo con graphql-scalars.

¿Por qué Float para enteros grandes?

Int de GraphQL se limita a valores de 32 bits con signo; los números mayores se rechazarían, así que se asignan a Float (o usa un escalar BigInt personalizado).

Explora más categorías