GraphQL es un lenguaje de consulta para su API y un tiempo de ejecución del lado del servidor para ejecutar consultas mediante el uso de un sistema de tipos que usted define para sus datos. GraphQL no está vinculado a ninguna base de datos o motor de almacenamiento específicos, sino que está respaldado por su código y datos existentes.



Se crea un servicio GraphQL definiendo tipos y campos en esos tipos, y luego proporcionando funciones para cada campo en cada tipo. Por ejemplo, un servicio GraphQL que nos dice quién es el usuario que ha iniciado sesión ( me) y el nombre de ese usuario podría tener este aspecto:
type Query { 
  me :  User 
}

type User { 
  id :  ID 
  name :  String 
}
Junto con las funciones para cada campo en cada tipo:

function Query_me(request) {
  return request.auth.user;
}

function User_name(user) {
  return user.getName();
}
Una vez que se ejecuta un servicio GraphQL (normalmente en una URL en un servicio web), se pueden enviar consultas GraphQL para validar y ejecutar. Una consulta recibida se verifica primero para asegurarse de que solo haga referencia a los tipos y campos definidos, luego ejecuta las funciones proporcionadas para producir un resultado.
Por ejemplo la consulta:

{
  me {
    name
  }
}
Podría producir el resultado JSON:
{ 
  "me" :  { 
    "name" :  "Luke Skywalker" 
  } 
}