Quería compartir este proyecto que permite pedir una pizza , pero de una manera … muy peculiar… con Python.
Se utilizó las API’s de la página de Domino’s Pizza para realizar este código. Aprovechemos este proyecto y aprendamos de este concepto ampliamente mencionado y disponible en casi todas las plataformas importantes como lo es Microsoft, Cisco, Dell e incluso el mismo Linkedin, solo por mencionar algunas.
1. ¿Qué es una API?
Es un acrónimo de application programming interface o en español, interfaz de programación de aplicaciones. Son interfaces que tienen las aplicaciones para poder conversar con otras aplicaciones.
Básicamente es como una ventanilla ya prefabricada que brinda o acepta respuestas, entre aplicaciones. Obviamente si le das datos que ella no espera, tampoco te responderá correctamente.
2. API: Librerías – Un conjunto de instrucciones
¿Las instrucciones depende del que la diseñó. Por ejemplo, Domino’s Pizza tiene API’s que pueden darte informaciones como:
- ¿Quieres saber cual es la pizzería más cercana a ti? Aquí* está mi API.
- ¿Quieres ver el menú?, Aquí* esta mi API.
- ¿Quieres ver cual cupones puedes usar y con que productos? Aquí* esta mi API.
*: Estos links lo entienden solo las aplicaciones, así que no podrás visualizarlo, pero te tengo una demo al final de este post.
3. ¿Como llegar a una API?
Las API’s pueden aprovechar la red y el protocolo HTTP como medio de comunicación. Por ende, los métodos GET, POST, DELETE y PUT están disponibles, tal cual como estás viendo está pagina con tu solicitud HTTP GET, pero una diferencia es que esta página está orientado a usuarios finales, en lugar de aplicaciones.
En nuestro delicioso código, solicitar el menú de las pizzas utiliza HTTP GET. En cambio buscar el local más cercano según tu ubicación utiliza un HTTP POST (por el envío de tus coordenadas).
4. API y su formato de comunicación.
¿Te imaginarías llegar a la pizzería específicamente al recepcionista que tiene el menú (analogía de un HTTP GET al API del servidor) y la persona habla japones?
Bueno, algo similar pasa con las API’s. Necesitan ambos conocer e interpretar una comunicación.
Uno de los métodos de comunicación más populares a través de las API’s son JSON y XML.
Aquí te coloco un ejemplo sencillo de como se representa la misma información en el formato JSON y el formato XML.
5. ¿Como entender una API?
Es importante conocer como se puede interactuar con la ayuda de las referencias API’s. Así sabrás que enviar y que esperar. Una muy interesante son las API’s de Cisco Webex. Te permiten incluso probarlas desde su navegador.
Lastimosamente Domino’s Pizza no encontré este tipo de ayuda, así que tuve que capturar la información e interpretarla con la ayuda de Postman (es un software que ayuda a utilizar las API’s directamente).
6. Demo
Que te parece si pruebas el código. Ingresa a la siguiente dirección y haz clic en Run.
https://repl.it/@KevinAnelAnel/pizzapi-Panama#README.rst
Solo debes presionar [Enter] en tu teclado y la información obtenida desde la API’s de Domino’s Pizza serán extraídas.
El ejemplo realiza la selección de 2 Pizzas familiares con 2L de soda y colocarlas en el carrito. El código solo corre hasta llevar la orden a verificación de precios. No se colocó la orden de las pizzas por obvias razones, pero la librería te lo permite.
Nota: Realiza las pruebas entre las 11:30 am – 7:00 pm porque el código solo te mostrará la información del local abierto más cercano a tu ubicación.
Conclusión
Espero que les haya gustado este post sobre Python y las API’s con analogías pidiendo una pizza. Por simplicidad no se detalla el código, solo conceptos generales. Si eres programador y te gustaría probar el código, aquí te comparto mi repositorio público del proyecto:
https://github.com/kdemenx/pizzapi
¿Dudas, opinión o sugerencias? Déjame tus comentarios.
Si te interesa alguno de nuestros servicios o leer todos nuestros posts, puedes contactarnos en nuestra página web SYNCORP o por nuestras redes sociales.
Referencias
https://github.com/ggrammar/pizzapi
https://es.wikipedia.org/wiki/Interfaz_de_programaci%C3%B3n_de_aplicaciones
