« Back to blog homepage

GraphQL y África, el punto de inflexión tecnológico: la historia, Open Source y hamburguesas

GraphQL

 

Imagina esto: ha sido un día largo, todo lo que podía salir mal, salió mal. Peor aún, estás absolutamente hambriento. Navegas por el tráfico mientras escuchas tu lista de reproducción de Spotify y te has convencido a ti mismo de que lo mejor para ti es cenar fuera por tercer día consecutivo.

Lo has adivinado, ¡nos vamos a McDonald´s!

Vamos adelante: te encuentras en su icónica cola de McAuto, tres coches delante y cuatro coches detrás de ti. Tu estado de ánimo ha mejorado y la espera no te molesta nada, al contrario, tarareas, "mmmmm, I´m loving it!".

Cuando miras de nuevo, solo hay un coche en frente y simplemente no puedes contenerte pensando en la hamburguesa jugosa y explosiva que se te avecina. El coche de delante recibe su paquete y listo, ahora es tu turno. Entras en pánico. Con toda la emoción, ¡no has decidido lo que realmente quieres! Esto es particularmente problemático para ti porque eres lo que algunos pueden llamar, "un conocedor de hamburguesas" ... O como probablemente lo llama tu pareja, "quisquilloso".

“Bienvenido a McDonald 's, ¿puedo tomar su pedido?”, pregunta con entusiasmo el encantador camarero. Estudias el menú y, para tu sorpresa, encuentras 42 combinaciones de hamburguesas distintas y apetitosas, incluidas las patatas fritas y la bebida. Solo 42 opciones.

Te concentras y decides que hoy toca pollo, "¡Hola! ¡¿Todo bien?! ¿Una hamburguesa de pollo, sin cebolla, con extra de pepinillos, salsa BBQ en lugar de kétchup, sin patatas fritas y una Coca-Cola light por favor?”.

El asistente infinitamente paciente sonríe y dice: “Mis más sinceras disculpas, tendrá que elegir una de las 42 combinaciones de hamburguesas que tiene en el menú a su izquierda, señor. No hay prisa, tómese su tiempo. Ah, y también tendremos que darle las patatas fritas”.

A lo que respondes, "He visto vuestro menú, está genial, sin embargo, lo que quiero no aparece en los 42 combos. Seguramente no sería mucha molestia  preparar un menú con mis cambios, ¿no? Ah, y por supuesto estoy dispuesto a cubrir el coste de los "pepinillos adicionales". Otra cosa, ¿qué quisiste decir con 'tengo que darte las patatas fritas'?". A lo que nuestro encantador asistente responde: "Lo entiendo totalmente, desafortunadamente no podemos preparar el menú con los cambios. Los combos que aparecen en el menú son todo lo que hay. Si lo desea, podría sugerirle a mi gerente un nuevo combo que se adapte a usted y si hay suficientes personas interesadas ¡podríamos agregarlo al menú! ¡Entonces tendríamos 43 combos! Ah, y tal vez podría elegir el nombre ... Aunque todavía tendríamos que incluir las patatas fritas. Todos nuestros combos deben venir con patatas fritas".

Estimado lector, detendré nuestra pequeña crónica de McDonald 's aquí mismo, ya que supongo que está salivando o furioso con nuestro asistente imaginario... o tal vez conmigo. Sin embargo, antes de arremeter contra tu frustración, ¡me gustaría tomarme un momento para felicitarlo!

¡Ahora sabes, íntimamente, cómo solían funcionar todas las API en Internet hace poco menos de una década! Era completamente frustrante, más incluso en el 2021 porque ahora tenemos una alternativa viable, pero profundizaremos en esto en un momento.

Vamos a adentrarnos en un territorio peligroso y voy a tener que hacer algunas suposiciones y dar algunos saltos lógicos en cuanto a quién eres tú y qué sabes.

Asumiré que sabes qué es una API y su propósito general. Si no es así, echa un vistazo rápido aquí: Auth0.com, 2021 para poder leer sobre el tema o Mulesoft, 2015 para ver un video.

Con tu conocimiento de las API, de SOAP y RESTful en nuestra mano izquierda y una hamburguesa en la derecha, vayamos al meollo (o hamburguesa) de nuestra discusión :)

Al igual que las 42 combinaciones de hamburguesas predeterminadas, "listas para degustar", las API de SOAP y RESTful eran, y son, rápidas, predecibles y, en general, un placer de manejar. Dadas las circunstancias en las que se encontraron, ¡realmente cumplieron un propósito fantástico y práctico! Algo así como caballos y carruajes antes de la línea de producción de Ford.

¡Opciones! No solo las queremos, sino que en el 2021, donde todos los días se intercambian terabytes de datos a nuestro alrededor, simplemente las necesitamos. Adelante GraphQL.

Necesitamos una pieza más para nuestro puzzle antes de que podamos volar: "¿Qué significa el 'Graph' antes de la QL"?

Para ello, nos dirigimos rápidamente a la fuente de la lógica: las matemáticas y su ciencia computacional descendiente:

Un Gráfico es un tipo de datos abstracto que se puede utilizar para representar relaciones complejas y no lineales entre objetos. Un gráfico consta de nodos (también llamados vértices) que están conectados por bordes (también llamados arcos). Los gráficos tienen muchos términos clave: cuando dos nodos están conectados por un borde, se denominan “vecinos''.

La cuestión es que, durante décadas, hemos estado extrayendo, transformando y cargando datos en plantillas bidimensionales "listas para Excel" como si los fenómenos que estamos registrando exhibieran esas características. Al final, nos queda poca o ninguna opción más que alterar el flujo de la realidad, en lugar de alterar el modelo 2D en el que nos hemos encajado. Como el menú fijo de hamburguesas de McDonald 's.

En realidad, cualquier establecimiento de hamburguesas del mercado de buena reputación en el 2021 debería poder entregar una cantidad infinita de combinaciones de hamburguesas a cualquier cliente (bueno, hay nCr = n!r!(nr)!n!, muchas combinaciones de hamburguesas, asumiendo que no hay repeticiones de ingredientes, pero, ¿quién está contando?).

Esta "muerte por posibilidades" es la razón por la que en el 2014 McDonald 's lanzó su personalización de hamburguesas "Crea a tu gusto". Después de un tira y afloja en diferentes regiones, se han conformado con sus "Recetas artesanas" para poder adaptarse mejor a las eficiencias operativas a escala, para todos los puntos de venta (si no, para la mayoría). [Business Insider, 2016]

 



Sabiendo lo que sabemos ahora, pasemos a África.

En 2017, Facebook cambió su declaración de objetivos: "Dar a las personas el poder de construir una comunidad y acercarse al mundo". (M. Zuckerburg, 2017) (se puede argumentar que desde hace mucho tiempo antes este ya era su espíritu). En su intento por cumplir con su cometido en África, se encontraron dos importantes obstáculos evidentes para una adopción de base amplia;

  1. El Acceso a un Internet barato / gratuito con suficiente ancho de banda.
  2. Un medio eficiente para interactuar con la plataforma.

Nos centraremos en el segundo punto (les dejaré ponerse al día con el primero y la vez que Elon hizo estallar el satélite AMOS-6 de Marx aquí) ¡el uso de dispositivos móviles en África estaba en aumento!

Esto fue impulsado por el acceso, relativamente barato, a teléfonos inteligentes de bajo nivel y a su floreciente juventud que adoptó ese acceso, con más dispositivos de teléfonos inteligentes que América del Norte o Europa (Naciones Unidas, 2013). Con esto, los medios para cumplir la misión de Mark estaban absolutamente claros.

Como suele ser, la necesidad es la madre de todos los inventos, GraphQL nació como un servicio interno de Facebook en 2013 porque entendieron el dilema de la combinación de hamburguesas frente a la demanda real.

Entendieron que necesitaban ofrecer contenido y funcionalidad en su plataforma según las necesidades del usuario individual, ni más ni menos.

Después del uso interno y de propiedad de GraphQL Facebook, en 2015, decidió compartir su tecnología bajo una licencia de open source. #GoodGuyFacebook.

Como puedes imaginar, una vez liberado en el Salvaje Oeste, GraphQL como tecnología se ha beneficiado de las sólidas contribuciones de su comunidad, y, en mi opinión, ha cambiado incluso la forma en la que diseñamos soluciones a los problemas actuales y, por tanto, la forma en la que pensamos.

¡Sería estupendo saber de ti y de tus historias de hamburguesas! ¿Cómo consumes los datos de contenido de tu hotel? ¿A través de SOAP?

¿La llamada de Disponibilidad / búsqueda de tu organización? ¿Estás gastando valiosos milisegundos eliminando la lechuga de la respuesta RESTful del proveedor / plataforma mientras tus competidores ya están sirviendo sus resultados al cliente, bebiendo un batido?

Sección de empollón orgulloso:

¿Estás interesado en ver GraphQL en acción? ¡Bien, estás de suerte, joven Padawan!

 Aquí tienes un Playground para tu hamburguesa GraphQL, y ¿sabes que? Es tu burger (además tienes acceso a mi codesandbox para que toques y aprendas). 

Ahora que estás lleno de tu hamburguesa, porque no aprendes a buscar hoteles con una API líder en la industria, HotelX, la API GraphQL de TravelgayeX. Obtén tus claves de API de HotelX  gratuitamente, pásalas a tus desarrolladores y envíalas a nuestro MacAuto para degustar de la hamburguesa que tu organización no solo quiere sino que merece!

TravelgateX Platform

Auth Header: "Authorization":"Apikey 8626cf56-e364-4fd1-4fe0-311e23ac6355"



CRÉDITOS: ¡Un gran agradecimiento a Chris Gannon (github: chrisgannon) por hacer que el código base sea de código abierto! ¡Fue un placer saborear tu hamburguesa!