Introducción

En GraphQL, los escalares son los tipos de datos más básicos que representan valores atómicos. Los tipos escalares predeterminados en GraphQL incluyen Int, Float, String, Boolean y ID. Estos tipos son fundamentales para definir los esquemas y permiten la validación de los datos que se envían y reciben a través de las consultas y mutaciones.

Tipos Escalares Predeterminados

  1. Int

  • Descripción: Representa un número entero de 32 bits con signo.
  • Ejemplo:
    type Query {
      age: Int
    }
    

  1. Float

  • Descripción: Representa un número de punto flotante de doble precisión.
  • Ejemplo:
    type Query {
      temperature: Float
    }
    

  1. String

  • Descripción: Representa una cadena de texto.
  • Ejemplo:
    type Query {
      name: String
    }
    

  1. Boolean

  • Descripción: Representa un valor booleano (true o false).
  • Ejemplo:
    type Query {
      isActive: Boolean
    }
    

  1. ID

  • Descripción: Representa un identificador único. Aunque se almacena como una cadena, se trata como un valor único.
  • Ejemplo:
    type Query {
      userId: ID
    }
    

Uso de Escalares en Esquemas

Los tipos escalares se utilizan para definir los campos de los tipos de objeto en el esquema de GraphQL. Aquí hay un ejemplo de un esquema que utiliza varios tipos escalares:

type User {
  id: ID
  name: String
  age: Int
  email: String
  isActive: Boolean
}

type Query {
  getUser(id: ID): User
}

En este ejemplo, el tipo User tiene campos que utilizan los tipos escalares ID, String, Int y Boolean.

Validación de Escalares

GraphQL valida automáticamente los valores de los tipos escalares. Por ejemplo, si un campo está definido como Int, GraphQL se asegurará de que el valor proporcionado sea un número entero. Si no lo es, se generará un error.

Ejemplo de Validación

Supongamos que tenemos la siguiente consulta:

query {
  getUser(id: "123") {
    name
    age
  }
}

Si el campo age en la respuesta no es un número entero, GraphQL generará un error de validación.

Escalares Personalizados

Además de los tipos escalares predeterminados, GraphQL permite definir tipos escalares personalizados para manejar casos específicos, como fechas, URLs, etc. Esto se abordará en detalle en el módulo 3, sección 5.

Ejercicio Práctico

Ejercicio 1: Definir un Esquema con Tipos Escalares

Define un esquema de GraphQL para una entidad Product que incluya los siguientes campos:

  • id (ID)
  • name (String)
  • price (Float)
  • inStock (Boolean)

Solución:

type Product {
  id: ID
  name: String
  price: Float
  inStock: Boolean
}

type Query {
  getProduct(id: ID): Product
}

Ejercicio 2: Consulta de Ejemplo

Escribe una consulta para obtener un producto por su id y recuperar los campos name y price.

Solución:

query {
  getProduct(id: "1") {
    name
    price
  }
}

Conclusión

Los tipos escalares son la base de cualquier esquema de GraphQL. Comprender cómo utilizarlos y validarlos es crucial para diseñar esquemas robustos y eficientes. En el próximo módulo, profundizaremos en otros conceptos fundamentales de GraphQL, como consultas, mutaciones y resolvers.


Con esto, hemos cubierto los conceptos básicos de los tipos escalares en GraphQL. Asegúrate de practicar definiendo esquemas y escribiendo consultas para familiarizarte con estos tipos de datos esenciales.

© Copyright 2024. Todos los derechos reservados