En este módulo, aprenderemos sobre las consultas en GraphQL, que son una de las operaciones más fundamentales. Las consultas permiten a los clientes solicitar datos específicos del servidor, y son la base de cómo se interactúa con una API GraphQL.

¿Qué es una Consulta en GraphQL?

Una consulta en GraphQL es una operación que permite a los clientes solicitar datos específicos del servidor. A diferencia de REST, donde se obtienen datos de múltiples endpoints, en GraphQL se puede obtener toda la información necesaria en una sola solicitud.

Estructura de una Consulta

Una consulta en GraphQL tiene una estructura específica que incluye:

  • Tipo de operación: En este caso, query.
  • Nombre de la consulta (opcional): Un nombre descriptivo para la consulta.
  • Campos: Los campos específicos que se desean obtener.

Ejemplo Básico

query {
  user(id: "1") {
    id
    name
    email
  }
}

En este ejemplo, estamos solicitando los campos id, name y email del usuario con id igual a "1".

Explicación del Ejemplo

  • query: Indica que estamos realizando una consulta.
  • user(id: "1"): Especifica que queremos obtener datos del usuario con id igual a "1".
  • { id, name, email }: Los campos que queremos obtener del usuario.

Consultas Anidadas

GraphQL permite realizar consultas anidadas, lo que significa que se pueden solicitar datos relacionados en una sola consulta.

Ejemplo de Consulta Anidada

query {
  user(id: "1") {
    id
    name
    posts {
      title
      content
    }
  }
}

Explicación del Ejemplo

  • posts { title, content }: Solicita los campos title y content de los posts relacionados con el usuario.

Variables en Consultas

Las variables permiten parametrizar las consultas, haciendo que sean más dinámicas y reutilizables.

Ejemplo de Consulta con Variables

query GetUser($userId: ID!) {
  user(id: $userId) {
    id
    name
    email
  }
}

Explicación del Ejemplo

  • $userId: ID!: Declara una variable userId de tipo ID que es obligatoria (!).
  • user(id: $userId): Utiliza la variable userId en la consulta.

Uso de Variables

Al ejecutar la consulta, se deben proporcionar los valores de las variables:

{
  "userId": "1"
}

Ejercicio Práctico

Ejercicio 1: Consulta Básica

Escribe una consulta para obtener los campos id, name y age de un usuario con id igual a "2".

query {
  user(id: "2") {
    id
    name
    age
  }
}

Ejercicio 2: Consulta Anidada

Escribe una consulta para obtener los campos id, name y los comments (con text y date) de un post con id igual a "5".

query {
  post(id: "5") {
    id
    name
    comments {
      text
      date
    }
  }
}

Ejercicio 3: Consulta con Variables

Escribe una consulta parametrizada para obtener los campos id, name y email de un usuario, utilizando una variable userId.

query GetUser($userId: ID!) {
  user(id: $userId) {
    id
    name
    email
  }
}

Proporciona el valor de la variable userId como "3".

{
  "userId": "3"
}

Soluciones

Solución al Ejercicio 1

query {
  user(id: "2") {
    id
    name
    age
  }
}

Solución al Ejercicio 2

query {
  post(id: "5") {
    id
    name
    comments {
      text
      date
    }
  }
}

Solución al Ejercicio 3

query GetUser($userId: ID!) {
  user(id: $userId) {
    id
    name
    email
  }
}

Proporciona el valor de la variable userId como "3".

{
  "userId": "3"
}

Resumen

En esta sección, hemos aprendido sobre las consultas en GraphQL, incluyendo su estructura básica, consultas anidadas y el uso de variables. Las consultas son una herramienta poderosa que permite a los clientes obtener datos específicos de manera eficiente. En el próximo módulo, exploraremos las mutaciones, que permiten modificar datos en el servidor.

© Copyright 2024. Todos los derechos reservados