Por Violeta Rodríguez
Desde hace varias décadas muchas de nuestras actividades involucran el uso de Sistemas o Aplicaciones, ya sea en la computadora, puntos de venta, smartphones, relojes o pulseras digitales, kioscos digitales o electrónicos, etc. Estos sistemas han evolucionado con el paso de los años, permitiéndonos algunas actividades como las siguientes:
- Poder consultar la existencia de un libro desde la página en línea de la librería. Adiós a la frustración de requerir el libro de ejercicios de matemáticas para la escuela y tener que visitar todas las librerías del centro de la ciudad para conseguirlo.
- Realizar la compra de la despensa en línea, asegurando la existencia de los productos y el poderlos recibir en casa el mismo día. Seguro que para las nuevas generaciones esto es algo muy normal, pero a muchos nos tocó tener que hacer largas filas para comprar la despensa cada quincena y con la tristeza de no haber conseguido tu cereal favorito.
- Agilizar los trámites en diversas organizaciones, con sistemas que permiten la verificación de identidad de manera inmediata.
- El uso de aplicaciones bancarias para realizar los pagos, teniendo la certeza de que el movimiento se ve reflejado de forma inmediata y ahorrándonos largas filas en la sucursal.
- Hacer el rastreo de un pedido por medio de la App o Página Web de la compañía de entrega, cuando antes había que confiar en que la entrega llegaría, y en el mejor de los casos, se podía monitorear el estatus por llamada telefónica.
- El otorgamiento de un crédito bancario en tiempo record y que la institución bancaria conozca cuándo es el momento indicado para ampliar la línea de crédito; ya que monitorean nuestro patrón de compra y el pago de las facturas.
- El uso de servicios de Streaming pudiendo consultar contenido almacenado en otros lugares.
- Tener en diferentes dispositivos el registro de los pasos realizados durante el día, oxigenación de la sangre, pulsaciones, presión arterial y demás datos que nos permiten tener un seguimiento detallado de la salud.
- Controlar desde el celular el encendido y apagado de las luces de la casa, tener el control de la lavadora y otros electrodomésticos para saber qué productos tenemos en el refrigerador y lo que necesitamos resurtir.
- Poder ver las imágenes del circuito cerrado de vigilancia, controlar las cerraduras de puertas y ventanas, así como el paso de corriente a los aparatos, pudiendo con ello sentirnos más seguros en el hogar y oficinas.
- Chatbots que le permiten a infinidad de marcas una atención más ágil de las dudas de los clientes.
Seguro puedo listar cientos de actividades que con el paso de los años se han automatizado, facilitándonos la vida en muchos aspectos. Todo esto es posible gracias a la comunicación que se lleva a cabo entre diversos sistemas, haciendo uso de APIs en muchos de los casos.
Y para todo esto, ¿qué es un API?
API es el acrónimo para Application Programming Interface (en español Interfaz de Programación de Aplicaciones). Nos proporciona una interfaz para comunicar sistemas, por medio de protocolos y reglas que facilitan la comunicación entre aplicaciones.
Algunos de los objetivos generales del diseño de un API son:
- Permitir el autoservicio para desarrolladores de aplicaciones y usuarios de aplicaciones semejantes.
- Reducir barreras para acceder a recursos empresariales valiosos.
- Priorizar las necesidades y preferencias de desarrolladores de aplicaciones cliente.
- Fomentar la colaboración entre recursos internos y externos.
- Abordar los problemas de seguridad y escalabilidad al exponer activos de TI al mercado abierto.
- Maximizar el valor empresarial.
Tipos de API
Dependiendo del criterio que se tome, se pueden tener diversas clasificaciones, aquí mencionaré de manera muy breve las más comunes:
Por estructura o política de versiones:
- Privadas; se utilizan para integrar aplicaciones y sistemas de una empresa, su uso es interno.
- Partners o de socios; se usa para comunicar y/o integrar sistemas de diferentes compañías que tienen una relación comercial.
- Públicas, también llamadas open source; se usan para que las empresas compartan públicamente información o funcionalidades de sus sistemas con terceros con los que no necesariamente tienen relación comercial.
Según su función y tecnología:
- De servicios WEB.
- De código fuente (bibliotecas).
- Heredadas.
- Según la fase de desarrollo en que nos encontremos (producción, desarrollo, simulada, fuzzing).
Ventajas del uso de APIs
- Rapidez. Ayudan a acelerar la creación de aplicaciones web y móviles; integrando en minutos mapas, imágenes y servicios, simplificando y facilitando el proceso de desarrollo.
- Cuando se implementan APIs de terceros, se simplifica el diseño y el desarrollo, haciendo la implementación y uso más sencillos; además de que se pueden integrar rápidamente ya que no se debe realizar el desarrollo completo.
- Ahorro de tiempo y dinero.
- Robustez. Cuando son APIs que ya han sido desarrolladas y probadas por un equipo de TI y su uso se ha extendido siendo probadas en situaciones de estrés, estas son un sistema seguro y fiable para implementar.
- Facilitan el habilitar el acceso a los recursos de una organización, manteniendo la seguridad y control.
- Imagen. El usar APIs de marcas con una imagen reconocida, puede ayudar a mejorar nuestra imagen.
- Mantenimiento. Posibilidad de realizar cambios internos sin afectar al cliente, pudiendo mantenerlas en constante mejora.
- Comunicación entre productos y/o servicios sin necesidad de saber cómo están implementados.
- Favorecen la automatización; permitiendo actualizar los flujos de trabajo y la mejora en la automatización de los procesos para que se puedan realizar en menos tiempo, pudiendo aumentar la productividad; además de que ayudan la automatización de tareas repetitivas.
- Permiten una fácil gestión y administración.
- Eficiencia. Con acceso a una API, se puede publicar automáticamente el contenido que se genera y que esté disponible para todos los canales; facilitando también su distribución.
- Adaptación y flexibilidad. Pensando en que las necesidades cambian con el tiempo, nos permiten una fácil evolución y soportar mejor una migración de datos.
- Mejoran la experiencia del usuario, lo cual se traduce en un mejor retorno de inversión.
- Seguridad. Ya que se maneja cifrado de extremo a extremo y se puede restringir o permitir el acceso a ciertos datos, además de que es posible monitorear y auditar los accesos.
Para asegurar que se podrán aprovechar todas las ventajas de un API, es importante que primero se tenga claro qué es lo que se busca que el API haga, de lo contrario, se puede invertir mucho tiempo y dinero sin tener claro lo que se necesita, y adquirir un API que finalmente no nos ayudará a resolver nuestro problema.
Para lograr una integración exitosa con un API, es importante tener presente lo siguiente:
- Contar con la documentación del API, donde se explique todo lo relativo a su funcionamiento; desde las consideraciones para su consumo, posibles errores y cómo se pueden solucionar.
- Tener la posibilidad de probar el API de manera fácil, antes de que se comprometa con su uso; esto ayudará a no desperdiciar horas, personal, ni presupuesto.
- Asegurarse que el API cumple con el tiempo de respuesta que requerimos.
- Conocer el tipo de autenticación requerida y que el API pueda cumplir con ello.
- Disponibilidad. El tiempo de inactividad de un API puede ser por problemas de hardware, software y un sin fin de situaciones. Al adquirir un API se debe buscar la garantía de un nivel alto de disponibilidad, para lo cual ayuda se cuente con redundancia.
- Conocer los cupos y límites del API, para saber si tienen implementada alguna funcionalidad que pueda denegar el acceso si dicho cupo o límite se sobrepasa o incluso si hay un cobro asociado por cada consulta del API; buscando siempre no tener una denegación del servicio y conocer los picos de mayor o menor consumo.
- Conocer los periodos en que se realizan actualizaciones y cuál es el proceso que siguen para notificar a los que consumen el API. Esto es importante porque con ello se puede solicitar que nos mantengan informados de los cambios que se planean; para en caso de tener algún impacto, poder hacer los ajustes pertinentes.
- Algunos terceros pueden desarrollar APIs gratuitas y se debe tener presente que en cualquier momento puedan dejar de serlo y se debe considerar el costo que ello pueda generar para nuestros desarrollos.
- Tener bien definida la arquitectura de nuestro desarrollo o solución, para determinar qué partes se podrán integrar con APIs de terceros y cuáles se van a desarrollar a lo interno.
- Condiciones cambiantes. Al relacionarnos con una empresa por un contrato de licenciamiento de uso de una API, nos exponemos a la voluntad de la otra parte, lo que puede suponer obsolescencia de métodos implementados, recortes en las prestaciones o pérdida de la gratuidad del servicio. Hay que tener esto presente y asegurarnos de conocer y entender claramente todos estos términos en el contrato.
- En caso de que la reputación de nuestro partner descienda, su imagen puede afectar a nuestra marca y nos podemos perjudicar por los errores ajenos.
- Innovación. Algunos proveedores se mantienen en innovación, pero también puede ocurrir lo contrario y estancarse y que nuestra aplicación avance más rápido y su API ya no pueda cumplir nuestras exigencias, empujándonos a la difícil decisión de cambiar de proveedor de servicios o implementarlos por nuestra cuenta con el sobrecoste que esto implique.
- Privacidad. Se deben conocer las leyes del país y asegurarnos que para el manejo de los datos, tanto terceros como la empresa en donde se va implementar las cumpla.
- Asegurarse de que el API cumple con las normas involucradas para el Servicio que se estará utilizando y de ser necesario, contar con los certificados emitidos por los entes reguladores requeridos para el uso de las mismas.
Asegúrate de tomar en cuenta todos estos puntos cuando buscas o requieres un API para la integración de tus sistemas. Nuevamente te invito a que busques en el mercado empresas especializadas que te puedan apoyar con esta implementación. Asimismo, asegúrate de que cuenten con experiencia en ello, valida sus referencias, saca a concurso para obtener información, compara y verifica a lo interno si cuentas con todos los insumos necesarios que te requieren los proveedores para su ejecución, si no los tienes, ¡prepáralos!, y cuando estés listo elige a tu mejor opción.
¡Éxito en tu integración!
Violeta Rodríguez Andrade
Lic. en Ciencias de la Informática con más de 20 años de experiencia en el ramo de Tecnologías de la Información.