Menú de navegaciónMenú
Categorías

La mejor forma de Aprender Programación online y en español www.campusmvp.es

?id=82504cde-563a-4856-8762-7c80cd31884d

Qué es una API: tipos, usos y funcionamiento

Imagen ornamentalSeguro que has oído hablar mil veces de APIs. Una API para esto o para aquello... y si estás empezando en el mundo de la programación te sonará un poco "a chino". No te preocupes. Te voy a explicar en palabras llanas y fácilmente comprensibles qué es una API, para qué sirven, qué tipos existen y cómo se crean.

¿Qué es una API?

Una API (Application Programming Interface) es la manera en la que una aplicación expone datos y funcionalidad hacia otras aplicaciones. O sea, es una forma de comunicar entre sí a dos o más aplicaciones, para obtener datos, mandar órdenes, etc...

Existen APIs de uso local y APIs de uso remoto, que son generalmente para la Web.

Una API de uso local está pensada para que una aplicación exponga funcionalidad hacia otras aplicaciones que están instaladas en la misma máquina. Por ejemplo, Microsoft Office (ya sabes, Word, Excel, PowerPoint...) ofrece varias APIs que permiten que hagas uso de sus capacidades desde tus propias aplicaciones, por ejemplo para generar una Excel a partir de datos que tienes en tu app, y cosas así. Windows ofrece también multitud de APIs para que tu aplicación pueda hacer de todo en el sistema. Este es el concepto tradicional de API y han existido muchos estándares a lo largo de los últimos 30 o 40 años para crearlas, aunque los dos más relevantes fueron COM/ActiveX de Microsoft y CORBA, de muchos otros fabricantes.

Sin embargo, hoy en día si te hablan de APIs seguramente se están refiriendo más bien a APIs de uso remoto o APIs Web.

Una API Web comunica a través de Internet a dos o más aplicaciones para intercambiar información y para enviar y recibir órdenes.

En función del uso que hagas de ellas tienes dos tipos de APIs Web: las que están orientadas a prestar un servicio y las que exponen funcionalidad de una aplicación.

APIs Web orientadas a prestar un servicio

Por ejemplo, si tienes que hacer una tienda online, lógicamente tendrás que tener una forma de cobrar a los usuarios. Podrías plantearte crear tu propio sistema de cobro que reciba, procese y guarde las tarjetas de crédito, comunicándose con los bancos, etc... Pero sería una locura porque es muy complejo y la seguridad es muy estricta. No sería viable que lo hicieses.

Por suerte, existen muchos proveedores de servicios de pago que tienen ya hecho todo eso y que te permiten usar su desarrollo a través de una API. Así, cuando quieres implementar pagos en tu tienda online o en tu aplicación lo único que tienes que hacer es utilizar una de estas APIs, por ejemplo la de Paypal o la de Stripe, que ya te lo dan todo hecho. A cambio, te cobrarán algo por facilitarte el servicio pero te ahorran todo el trabajo, que en muchos casos no serías capaz de abordar por tu cuenta jamás.

Pues lo mismo pasa con mil cosas más: ¿necesitas mapas y mediciones? Pues hacer mapas de todo el mundo y mantenerlos al día sería imposible pero Google u Open Street Map, entre otros, te lo dan hecho a través de una API. Tienes APIs para casi todo lo que se te ocurra: el tiempo meteorológico en cualquier parte del mundo, las cotizaciones de bolsa en tiempo real, síntesis de voz, reconocimiento de caras... En fin, cualquier cosa que imagines.

APIs que exponen funcionalidad de otras apps

La otra gran clasificación podría ser la de las aplicaciones que exponen toda o parte de su funcionalidad hacia otras. Por ejemplo, Twitter tiene una API que le permite hacer a tu aplicación lo mismo que haría un usuario en esta red social. Esta API es utilizada por muchas aplicaciones por ahí para crear interfaces de Twitter más bonitas o con más funcionalidad, para automatizar tu presencia en redes sociales, y mil cosas más.

Casi todas las aplicaciones Web que conoces tienen APIs para poder usarlas desde otras aplicaciones. Y sin duda si haces una aplicación Web tarde o temprano querrás tener una API y dejar que las aplicaciones de tus clientes puedan comunicarse y automatizar tu propia aplicación. Por ejemplo, nuestra plataforma de elearning tiene una API que permite a nuestros clientes grandes matricular automáticamente a los alumnos en cuanto quieren hacer un curso, o sacar información sobre un alumno concreto en una formación para saber cómo va. De esta forma no tienen que entrar en varias aplicaciones (como mínimo la suya de gestión y la plataforma) para hacer lo mismo o repetir los datos, ahorrando tiempo y errores.

Cómo se crea una API

Casi todas las plataformas de desarrollo (.NET, Java, Node.js, PHP...) ofrecen una manera sencilla de utilizar las APIs Web, y también una forma, más o menos compleja según el caso, de crear APIs para permitir que otros se comuniquen con ellas.

Existen varios estándares para crear este tipo de APIs Web: desde el antiguo SOAP basado en XML, a APIs de tipo REST o GraphQL, por citar los más conocidos.

Te dejo un vídeo aquí en el que te explico cómo puedes crear de manera sencilla, en unos minutos, un API básica para simular una API real, como preparación a luego crear una propia.

José Manuel Alarcón Fundador de campusMVP, es ingeniero industrial y especialista en consultoría de empresa. Ha escrito diversos libros, habiendo publicado hasta la fecha cientos de artículos sobre informática e ingeniería en publicaciones especializadas. Microsoft lo ha reconocido como MVP (Most Valuable Professional) en desarrollo web desde el año 2004 hasta la actualidad. Puedes seguirlo en Twitter en @jm_alarcon o leer sus blog técnico o personal. Ver todos los posts de José Manuel Alarcón
Archivado en: Desarrollo Web

¿Te ha gustado este post?
Pues espera a ver nuestro boletín mensual...

Suscríbete a la newsletter

La mejor formación online para desarrolladores como tú

Agregar comentario

Los datos anteriores se utilizarán exclusivamente para permitirte hacer el comentario y, si lo seleccionas, notificarte de nuevos comentarios en este artículo, pero no se procesarán ni se utilizarán para ningún otro propósito. Lee nuestra política de privacidad.