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
Int
Int
- Descripción: Representa un número entero de 32 bits con signo.
- Ejemplo:
type Query { age: Int }
Float
Float
- Descripción: Representa un número de punto flotante de doble precisión.
- Ejemplo:
type Query { temperature: Float }
String
String
- Descripción: Representa una cadena de texto.
- Ejemplo:
type Query { name: String }
Boolean
Boolean
- Descripción: Representa un valor booleano (
true
ofalse
). - Ejemplo:
type Query { isActive: Boolean }
ID
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:
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:
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.
Curso de GraphQL
Módulo 1: Introducción a GraphQL
- ¿Qué es GraphQL?
- GraphQL vs REST
- Configuración de un Servidor GraphQL
- Conceptos Básicos del Esquema de GraphQL
Módulo 2: Conceptos Fundamentales
Módulo 3: Diseño Avanzado de Esquemas
Módulo 4: Trabajando con Datos
Módulo 5: Rendimiento y Seguridad
Módulo 6: Herramientas y Ecosistema
Módulo 7: Pruebas y Despliegue
- Pruebas Unitarias de Resolvers
- Pruebas de Integración
- Integración Continua
- Despliegue de Servidores GraphQL