Convertidor de JSON a esquema GraphQL

Pega una respuesta de API en JSON y obtén los tipos del esquema GraphQL. Cada objeto pasa a ser un tipo, los arrays pasan a listas y los campos que siempre están llevan !. Cambia a input para generar tipos de entrada para mutaciones.

Generar

Funciona en tu navegador: nada de lo que escribes se envía a ningún sitio.

Cómo se usa

  1. Pega un ejemplo de JSON, mejor una respuesta real de API con varios elementos en cada array, para detectar los campos opcionales.
  2. Elige type para tipos de salida o input para argumentos de mutaciones (los nombres llevan el sufijo Input).
  3. Copia el esquema a tu archivo .graphql y cambia Root por un nombre con sentido, como Book.

Cómo funciona

El ejemplo se convierte en una «forma»: cada clave con todos los tipos de valor que aparecen en ella, y todos los objetos de un array fusionados en un tipo.

  • Los nombres de campo válidos en GraphQL se mantienen; los demás (user-name) se rehacen en camelCase con la clave JSON en un comentario #.
  • Los tipos van de padre a hijos: primero Root y luego los anidados en el orden en que aparecen.
  • Un array en el nivel superior da un comentario como # Top level: [RootItem!]!; usa ese tipo en el campo de tu consulta.

Ejemplo

{"line_items":[{"sku":"A","qty":2},{"sku":"B"}]} da:

type Root {
  line_items: [LineItem!]!
}

type LineItem {
  sku: String!
  qty: Int
}

qty falta en el segundo elemento, así que no lleva !, y el tipo de la lista va en singular.

Consejos

  • En GraphQL se suele usar camelCase en los campos; puedes renombrar las claves snake_case y mapearlas en los resolvers.
  • Las fechas llegan como cadenas en JSON; plantéate un escalar DateTime en vez de String.
  • Los nombres de GraphQL solo admiten letras latinas sin tilde: una clave como «año» se reescribe en camelCase con la clave original en el comentario.

Preguntas frecuentes

¿Cómo se traducen los valores JSON a tipos GraphQL?

Las cadenas pasan a String, true y false a Boolean, los enteros a Int y los demás números a Float (una mezcla de ambos da Float). Los arrays pasan a listas como [String!]! y cada objeto recibe su propio tipo, con el nombre de su clave: author da Author y reviews, Review.

¿Cuándo lleva un campo la marca ! (non-null)?

Cuando el valor nunca es null en el ejemplo y la clave está en todos los objetos de su array. Una clave que falta en algunos objetos, o que es null en algún sitio, queda opcional. Desactiva la opción para que todos los campos sean opcionales, que es lo predeterminado en GraphQL.

¿Qué es el escalar JSON del resultado?

GraphQL no tiene un tipo «cualquiera», así que un lugar con valores de distinto tipo, solo null o un objeto sin claves recibe un escalar personalizado JSON, declarado al principio. Tu servidor necesita un resolver para él —por ejemplo GraphQLJSON del paquete graphql-scalars— o puedes sustituirlo por un tipo real.

¿Los id deben ser Int o ID?

La herramienta no puede saber que un número es un identificador, así que id: 42 sale como Int. El Int de GraphQL es un entero de 32 bits con signo; para claves o números grandes cambia el tipo a mano por ID (se envía como cadena) o Float.

Más en Desarrollo

Todas las herramientas de la categoría: Desarrollo ·Actualizado el 7 de noviembre de 2026

Opciones de privacidad

Google Analytics nos muestra qué herramientas se usan y si funcionan. Puede usar cookies. Tu elección se guarda en este navegador.