GraphQL: La nueva (y mejorada) forma de construir API’s

En la última conferencia de desarrolladores de GitHub, la empresa hizo un gran anuncio: Su nueva API GraphQL, la cual ha sido publicada para su acceso a través del programa de acceso temprano. En este post, hago un esfuerzo por explicar qué es GraphQL y por qué es importante para la comunidad.

"Un lenguaje de consultas para tus API's"
«Un lenguaje de consultas para tus API’s»

Primero, un poco de historia.

GraphQL fue creado en Facebook y liberado como un proyecto Open-Source, de igual manera que React.js. La idea original era permitir que los clientes de los servicios Rest pudieran decidir qué información le interesa en un particular end-point.  Quienes han trabajado desarrollando servicios REST, sabrán que muchas veces la cantidad de información que termina devolviendo un end-point particular es enorme, y no todos los casos de uso la consumen en su totalidad.

¿Por qué importa?

¿Por qué si los servicios REST de GitHub son tan alabados en la industria, ahora se mudan a GraphQL?. Por la misma razón que otros gigantes de la industria han comenzado a adoptarlo. Los detalles están en su anuncio, pero el resumen es el siguiente:

  • REST requiere varias consultas, GraphQL requiere solo una.
  • Con REST, se consulta o mucha o muy poca data. Con GraphQL se consulta exactamente lo que se necesita.
  • REST por lo general se convierte en un laberinto de endpoints mal documentados. GraphQL es altamente tipado y auto-documentado.

En las palabras del equipo responsable de la plataforma en GitHub:

GraphQL representa un masivo salto en el desarrollo de API’s. Tipado seguro, introspección, documentación generada y respuestas predecibles, van a beneficiar tanto a los desarrolladores como a los consumidores de nuestra plataforma. Ansiamos una nueva era de plataformas respaldadas por GraphQL y esperamos que ustedes también.

¿Cómo se ve?

Si se firma el acuerdo de pre-release, tendremos acceso al explorador de API’s. Es básicamente GraphiQL, un IDE para explorar API’s GraphQL.

La primera consulta de prueba.
La primera consulta de prueba.

Después de un par de segundos experimentando, mi primera consulta me devuelve una respuesta –Funciona!. Se puede consultar la documentación del API para saber cuáles mutaciones o consultas se pueden hacer. Es básicamente lo esperado: Se pueden buscar usuarios, organizaciones y obtener información de nuestra propia cuenta GitHub.

Obteniendo información de mis Repos
Obteniendo información de mis Repos…

Y claro, también realicé un comentario desde el API!:

Comentar desde el API? Hell yeah!
Comentar desde el API? Hell yeah!

¿Cómo Aprender?

Si GraphQL te emociona como a mi, entonces probablemente estarás preguntándote la mejor manera de implementarlo en tus proyectos. Acá dejo algunos recursos y tutoriales para comenzar.

Tutoriales:

Recursos: