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"](https://i0.wp.com/blog.leonelatencio.com/wp-content/uploads/2016/10/GraphQL.png?resize=660%2C101)
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.](https://i0.wp.com/blog.leonelatencio.com/wp-content/uploads/2016/10/GraphQL2.png?resize=660%2C257)
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](https://i0.wp.com/blog.leonelatencio.com/wp-content/uploads/2016/10/GraphQL3.png?resize=660%2C270)
Y claro, también realicé un comentario desde el API!:
![Comentar desde el API? Hell yeah!](https://i0.wp.com/blog.leonelatencio.com/wp-content/uploads/2016/10/GraphQL4.png?resize=660%2C90)
¿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:
- Why GraphQL is the future
- GraphQL concepts visualized
- GraphQL: the next generation of API design
- Tutorial: how to build your own GraphQL server
Recursos: