Consultas (Queries)

Las consultas las utilizamos para solicitar informacion el cual nuestra aplicacion GraphQL manejara y nos devuelve resultados, en el siguiente ejemplo como se hace una consulta simple.

{
  videos {
    title
    duration 
    watched
  }
}

Nombrar consultas

query getVideosQuery {
  videos {
    title
    duration
    watched
  }
}

Utilizar argumentos en consulta

query getVideoQuery {
  video(id: 2) {
    title
    duration
    watched
  }
}

Utilizar variables en consulta

query getVideoQuery($value: ID!) {
  video(id: $value) {
    title
    duration
    watched
  }
}

# On query variable
# {
#   "value": 3 
# }

Alias de campo (Field Aliases)

Existen situaciones el cual queremos hace la misma consulta pero diferentes valores en parámetro, si intentamos reutilizar la misma consulta no dará un error, para solucionar esto utilizamos alias.

query getVideosQuery {
  firstVideo: video(id: 1) {
    title
    duration
    watched
  }
  thirdVideo: video(id: 3) {
    title
    duration
    watched
  }
}

Fragmentos (Fragments)

Utilizando alias de campos tenemos el problema de re escribir el cuerpo de la consulta, los fragmentos nos provee la habilidad de definir un cuerpo de consulta y reutilizarlos en varias consultas.

query getVideosQuery {
  firstVideo: video(id: 1) {
    ...getVideoFragment
  }
  thirdVideo: video(id: 3) {
    ...getVideoFragment
  }
}

fragment getVideoFragment on Video {
  title
  duration
  watched
}

Directivas (Directives)

Son instrucciones el cual dentro de las consulta nos ayuda a filtrar información.

@skip - Esta directiva nos provee en la consulta la habilidad de retornar todos los valores excepto aquellos que no pasan la condición.

query getVideosQuery($value: Boolean!) {
  videos {
    id @skip(if: $value)
    title
    duration
    watched 
  }
}

@include - Al contrario de la directiva @skip esta nos retorna solo los que cumple la condición.

query getVideosQuery($value: Boolean!) {
  videos {
    id @include(if: $value)
    title
    duration
    watched 
  }
}

results matching ""

    No results matching ""