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
}
}