En aquest tema, aprendrem sobre les consultes en GraphQL, que són una de les operacions fonamentals per interactuar amb un servidor GraphQL. Les consultes permeten als clients sol·licitar dades específiques d'un servidor, definint exactament quina informació necessiten.

Conceptes Clau

  1. Definició de Consultes: Les consultes són operacions de lectura que permeten als clients obtenir dades del servidor.
  2. Sintaxi de Consultes: La sintaxi de les consultes en GraphQL és declarativa i permet especificar exactament quines dades es necessiten.
  3. Estructura de Consultes: Les consultes tenen una estructura jeràrquica que reflecteix la forma en què les dades estan relacionades.
  4. Arguments en Consultes: Les consultes poden acceptar arguments per filtrar o modificar les dades retornades.
  5. Variables en Consultes: Les variables permeten reutilitzar consultes amb diferents valors d'entrada.

Exemples Pràctics

Exemple 1: Consulta Bàsica

Suposem que tenim un servidor GraphQL que proporciona informació sobre llibres. Una consulta bàsica per obtenir el títol i l'autor de tots els llibres seria:

{
  books {
    title
    author
  }
}

Explicació:

  • { books { title author } }: Aquesta consulta demana al servidor la llista de llibres (books) i especifica que només vol el títol (title) i l'autor (author) de cada llibre.

Exemple 2: Consulta amb Arguments

Podem afegir arguments a les consultes per filtrar els resultats. Per exemple, per obtenir informació sobre un llibre específic pel seu ID:

{
  book(id: "1") {
    title
    author
    publishedYear
  }
}

Explicació:

  • book(id: "1"): Aquesta part de la consulta demana informació sobre un llibre amb l'ID "1".
  • { title author publishedYear }: Especifica que vol el títol, l'autor i l'any de publicació del llibre.

Exemple 3: Consulta amb Variables

Les variables permeten reutilitzar consultes amb diferents valors d'entrada. Aquí teniu un exemple de com utilitzar variables en una consulta:

query GetBook($bookId: ID!) {
  book(id: $bookId) {
    title
    author
    publishedYear
  }
}

I la manera de passar les variables seria:

{
  "bookId": "1"
}

Explicació:

  • query GetBook($bookId: ID!): Defineix una consulta anomenada GetBook que accepta una variable bookId de tipus ID.
  • book(id: $bookId): Utilitza la variable bookId per obtenir informació sobre el llibre.
  • { title author publishedYear }: Especifica que vol el títol, l'autor i l'any de publicació del llibre.

Exercicis Pràctics

Exercici 1: Consulta Bàsica

Escriu una consulta per obtenir el nom i l'edat de tots els usuaris.

{
  users {
    name
    age
  }
}

Exercici 2: Consulta amb Arguments

Escriu una consulta per obtenir informació sobre un usuari específic pel seu ID, incloent el nom, l'edat i el correu electrònic.

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

Exercici 3: Consulta amb Variables

Escriu una consulta que accepti una variable userId i utilitza-la per obtenir informació sobre un usuari, incloent el nom, l'edat i el correu electrònic.

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

I la manera de passar les variables seria:

{
  "userId": "2"
}

Errors Comuns i Consells

  1. Oblidar especificar els camps: En GraphQL, has de ser explícit sobre quins camps vols. Si no especifiques els camps, no obtindràs cap dada.
  2. Arguments incorrectes: Assegura't que els arguments que passes a les consultes són correctes i coincideixen amb els esperats pel servidor.
  3. Variables no definides: Quan utilitzes variables, assegura't de definir-les correctament en la consulta i de passar els valors adequats.

Resum

En aquesta secció, hem après sobre les consultes en GraphQL, incloent la seva definició, sintaxi, estructura, i com utilitzar arguments i variables. Hem vist exemples pràctics i hem realitzat exercicis per reforçar els conceptes apresos. Ara estem preparats per avançar cap a les mutacions en el següent tema.

© Copyright 2024. Tots els drets reservats