GraphQL es un lenguaje de consultas y manipulación de datos para trabajar con APIs. No tiene que ver con REST API ya que esta ultima es una forma de estructurar nuestras APIS y GraphQL es un lenguaje de consulta. Hay varias formas de trabajar con GraphQL y crear un servidor pero la forma mas famosa es hacerlo con Apollo Server. Apollo es una plataforma que nos permite no solo crear un servidor sino también un cliente para React muy potente (Apollo Client).
Una diferencia importante que tiene con las REST API es que todas las solicitudes que se hacen en GraphQL se realizan en un mismo endpoint. Además, las peticiones son siempre del tipo POST y le pasamos como dato la query que queremos realizar. De esta forma, ya no es necesario separar las peticiones por su tipo (GET, PUT, DELETE, etc)
Para poder trabajar con GraphQL + Apollo Server el primer paso es poder instalarlo
npm i apollo-server graphql
Con esto instalado podemos empezar a pensar nuestro servidor. Por las dudas, si no estas utilizando ningun framework asegurate que tu package.json contenga una directiva de tipo y esta esté en “module” para poder usar modulos de JavaScript en tu proyecto.
Una vez instalado, para poder trabajar con GraphQL es necesario importarlo. Esto se hace de forma muy sencilla con Apollo Server
import { gql } from "apollo-server";