Es una realidad que el incremento en la oferta de APIS públicas se ha disparado en los últimos años. En las siguientes líneas vamos a tratar de adentrarnos en esta tecnología, conocer los motivos de dicho crecimiento, así como ver algunas de las APIS más interesantes que tenemos a nuestro alcance y podemos probar.
Si no estás familiarizado con la terminología quizá no te diga mucho las siglas "API", para comenzar te puedo decir que se refieren a la traducción inglesa de "interfaz de programación de aplicaciones".
Muy resumidamente podemos decir que las APIS, es una de las formas más importantes con las que contamos para conectar unas aplicaciones con otras, ya sean aplicaciones propias o de terceros. Con las APIS logramos que unos sistemas puedan acceder a funcionalidad o información que se encuentra en otros sistemas.
Anteriormente en en la entrada "Cómo crear una API RESTful con Django REST-framework", se explica de una forma muy interesante cómo implementar y exponer una API RESTful usando tecnología Django y se comentan muchos conceptos relacionados. Por ello si te interesa el tema te recomiendo que lo visitéis.
En esta ocasión vamos a tratar el tema desde un punto de vista diferente. Viendo la utilidad que nos plantea servirnos de APIs de terceros para ampliar la funcionalidad de nuestras propias aplicaciones o sistemas.
Empecemos por el principio, ¿Qué es una API?
Existen muchas definiciones formales de este concepto, pero pueden llegar a ser difíciles de entender. Personalmente me gusta ver el concepto de una forma más visual.
Imaginemos que acudimos a nuestro restaurante preferido, al sentarnos a la mesa
nos recibe el camarero y nos proporciona la carta, donde de forma muy detallada podemos ver todos los platos que en este restaurante se preparan, junto con su precio y otra información interesante.
Una vez seleccionados los platos que queremos degustar. El camarero es el encargado de llevar la demanda a la cocina y traer los platos a la mesa una vez preparados.
Extrapolando el ejemplo al mundo de la tecnología, las APIs toman la función del camarero, que es una figura intermedia entre el cliente y la cocina.
El cliente para poder comunicarse con el camarero debe leer previamente la carta, exactamente ocurre igual con las APIs, las cuales deben tener una documentación, con el catálogo de operaciones que pueden realizar y la forma de invocarlas.
¿Por qué están en auge?
Sin duda el motivo más importante para la proliferación de APIs, es la revolución en la tecnología Webs y Mobile así como el incremento en la publicación aplicaciones. Dado que son los consumidores en potencia.
Tecnologías emergentes como "Machine Learning" o "Internet of Things" también han influido muchísimo en hacer crecer el mercado de las APIs.
Otro punto muy importante que apoya la tecnología que estamos tratando, es la íntima relación entre APIS y arquitecturas basadas en microservicios. No me extiendo en este tema dado su envergadura, pero si te apetece seguir aprendiendo sobre microservicios te recomiendo este articulo del conocido Martin Fowler.
Puntos a tener en cuenta a la hora de consumir una API
No todas las APIs funcionan de la misma manera, existen muchos factores y matices a tener en cuenta. En los siguientes puntos pasamos a estudiarlos.
Protocolo
SOAP: Simple Object Access Protocol, define cómo dos objetos en diferentes procesos pueden comunicarse por medio de intercambio de datos XML. Es el sucesor del protocolo XML-RPC. Suele tener cierta dificultad técnica.
REST: Representational State Transfer, estándar para obtener datos o generar operaciones, de una forma más simple y rápida que SOAP.
GraphQL: Alternativa a REST propuesta en 2012 por Facebook, establece un lenguaje para invocar los servicios, permite definir las entidades y los atributos que queremos obtener en una consulta a la API, desde el propio cliente.
De esta forma el cliente puede ir solicitando de una forma mucho más flexible, exactamente la información que pretende representar en la vista, esto consigue optimizar mucho el proceso de comunicación.
Por ejemplo para consultar los últimos proyectos públicos de @intelligenia en GitHub, utilizamos una consulta como la siguiente:
SDK
Algunas APIs, tienen el añadido de disponer de un SDK (kit de desarrollo de software) propio.
Los SDK proporcionan un paquete que agrupa, documentación, ejemplos y herramientas específicas para un lenguaje de programación, con el objetivo de hacer que el programador pueda trabajar de una forma más cómoda y rápida. Por contrapunto tienen la desventaja que son específicos para determinados lenguajes de programación y puede ocurrir que no se adapte exactamente a la tecnología que estas usando en tu proyecto.
Continuando con el ejemplo anterior, muestro como conseguir los repositorio púbicos de la organización Intelligenia en Github. Usando Python y la librería PyGithub.
¿Donde encontrarlas?
Google APIS
Google cuenta con infinidad de APIS, para casi todos los servicios que presta, llegando a tal punto que gran parte de las acciones que puedes realizar usando las aplicaciones.
Entre los servicios más "molones" se encuentran los servicios de inteligencia artificial, entre los que encontramos APIs dedicadas a visión artificial, procesamiento de imágenes, vídeos y lenguaje natural entre otros.
Entre los servicios más "molones" se encuentran los servicios de inteligencia artificial, entre los que encontramos APIs dedicadas a visión artificial, procesamiento de imágenes, vídeos y lenguaje natural entre otros.
Microsoft Cognitive Services
Por otra parte Microsoft también tiene un amplio catálogo de servicios entorno a la inteligencia artificial, se denominan cognitives services y dan la posibilidad de poder crear bots con algoritmos inteligentes que permiten ver, oír, hablar, comprender e interpretar las necesidades de los usuarios.
Personalmente una de las características que más me llama la atención en la capacidad de captar emociones, pudiendo evaluar textos con puntuación de 0 a 1 según su grado de positividad o negatividad de la oración.
En el siguiente ejemplo, mostramos como podemos conectar la API de Twitter para captar las entradas con los hastag #cosasdeintelligenia, para posteriormente evaluar su nivel emotivo y extraer la media aritmética.
Personalmente una de las características que más me llama la atención en la capacidad de captar emociones, pudiendo evaluar textos con puntuación de 0 a 1 según su grado de positividad o negatividad de la oración.
En el siguiente ejemplo, mostramos como podemos conectar la API de Twitter para captar las entradas con los hastag #cosasdeintelligenia, para posteriormente evaluar su nivel emotivo y extraer la media aritmética.
IBM Watson
Watson es un complejo sistema cognitivo creado por IBM capaz de entender el lenguaje humano y responder a su interlocutor de forma precisa. El sistema IBM Watson es popular por ganar el concurso estadounidense de preguntas y respuestas “Jeopardy!”, contra sus dos mejores concursantes.¿Cuales son tus APIs fantásticas? Estaré encantado de que me lo cuentes :-)
No hay comentarios:
Publicar un comentario