API

Interfaz de Programación de Aplicaciones (Application Programming Interface)

La interfaz de programación de aplicaciones, es el conjunto de subrutinas, funciones y procedimientos (o métodos, en la programación orientada a objetos) que ofrece cierta biblioteca para ser utilizado por otro software como una capa de abstracción. - Wikipedia

Consideraremos a una API como la especificación de como algún componente de software debe interactuar con algún otro componente de software siendo la especificación el conjunto de requerimientos a satisfacer durante su interacción.

Se diseña y se desarrollo una API, en cuanto a una aplicación web se refiere, cuando toda o parte de la funcionalidad de un sistema (conocido como servicio) es expuesta en la forma de alguna interfaz bien definida para el servicio que prestará:

  • El servicio es accesible/direccionable de forma externa mediante la interfaz.
  • Son consumidos mediante un protocolo bien definido.
  • La comunicación depende de un formato de mensaje (o de intercambio de información) para el entendimiento de las partes.

API Web

Una API Web expone toda o parte de la funcionalidad de un sistema a través de la Web:

  • La interfaz es direccionable (accesible mediante una dirección) a través de un conjunto de URLs (endpoints).
  • El protocolo mediante el cual es consumido el servicio es HTTP.
  • Los formatos para el intercambio de información pueden ser XML o JSON.

La funcionalidad expuesta será conocida como servicio web.

Existen múltiples definiciones sobre lo que son los Servicios Web, lo que muestra su complejidad a la hora de dar una adecuada definición que englobe todo lo que son e implican. Una posible sería hablar de ellos como un conjunto de aplicaciones o de tecnologías con capacidad para interoperar en la Web. Estas aplicaciones o tecnologías intercambian datos entre sí con el objetivo de ofrecer unos servicios. Los proveedores ofrecen sus servicios como procedimientos remotos y los usuarios solicitan un servicio llamando a estos procedimientos a través de la Web. - Guía Breve de Servicios Web

Utilizando la Web como plataforma, los usuarios, de forma remota, pueden solicitar un servicio que algún proveedor ofrezca en la red. Pero para que esta interacción funcione, deben existir unos mecanismos de comunicación estándares entre diferentes aplicaciones. Estos mecanismos deben poder interactuar entre sí para presentar la información de forma dinámica al usuario. Se precisa, pues, una arquitectura de referencia estándar que haga posible la interoperabilidad y extensibilidad entre las distintas aplicaciones y que permita su combinación para realizar operaciones complejas. - Hipertexto - Servicios Web

Importancia

Se indican al menos tres razones por las cuales el diseño y desarrollo de APIs Web se ha vuelto un tema notorio durante los últimos años:

  • Web 2.0

    La Web 2.0 es un concepto que se acuñó en 2003 y que se refiere al fenómeno social surgido a partir del desarrollo de diversas aplicaciones en Internet. El término establece una distinción entre la primera época de la Web (donde el usuario era básicamente un sujeto pasivo que recibía la información o la publicaba, sin que existieran demasiadas posibilidades para que se generara la interacción) y la revolución que supuso el auge de los blogs, las redes sociales y otras herramientas relacionadas. - Wikipedia

    • Principios generales de la Web 2.0:

      Orientado a Internet, comunidades de usuarios, perpetua beta, facilidad, gratuidad, personalización, integración y conexión, propagación viral, etiquetado social e iniciativa descentralizada.

  • API Web Abierta (Open Web API)

    • ¿Qué significa que una API de un servicio web es "abierta"? :

      La pregunta no va sobre "software libre" vs. "open source", sino sobre los otros significados de "open" aplicados a servicios en la red.

    • API cerrada, API abierta:

      El valor de que un servicio en internet ofrezca un API para que terceros se integren con él está casi fuera de cualquier duda, aunque los modelos de negocio sobre estas APIs y la apertura de la misma sí que son objeto de un continuo debate.

  • Mashups (Aplicación Web Híbrida)

    • Mashups: Qué Son y Qué No Son:

      Los mashups son un producto de la Web 2.0 donde el usuario es el centro de todo. Va de la mano con conceptos como colaboración y distribución de la información. Las grandes tendencias de desarrollo de software son la reutilización e integración.

    • Mezcla de páginas web a través de MASHUPS

      El objetivo del presente trabajo es ofrecer una visión preliminar de la tecnología mashup para la construcción de sistemas distribuidos para organizaciones que deseen adoptar una nueva técnica de desarrollo de software.

      La creciente implantación de servicios web ha permitido la creación de entornos de programación altamente confiables para aplicaciones distribuidas.

      Por otro lado, estas herramientas también han permitido a los desarrolladores ser capaces de crear fácilmente nuevos servicios apoyándose en la composición de servicios y fuentes de datos distribuidos en Internet.

  • Dispositivos Mobiles

    • Aplicaciones Móviles: ¿Nativo, Web, Híbrido?:

      El desarrollo de aplicaciones móviles crece cada día: al más personas contar con un dispositivo móvil y descubrir las bondades de tener tecnología al alcance de sus dedos, más personas vuelcan sus miradas a desarrollar nuevas aplicaciones que puedan utilizarse dentro de estos dispositivos, para así llegar a más consumidores.

    • Desarrollo de aplicaciones móviles multiplataforma:

      Hace ya algún tiempo que llevo queriendo meterme en profundidad en el desarrollo móvil. Pero hacer esto no significa tirar por la borda todos los años o experiencia que tengo en desarrollar aplicaciones web, sino ampliar el alcance de los nuevos proyectos haciendo que funcionen también en dispositivos móviles. Al fin y al cabo, muchas de estas aplicaciones usan servicios web y/o tienen un site en internet donde continuar usando la aplicación o servicio, así que programar para móviles no es dejar la programación web, ni mucho menos, sino hacer que ésta sea accesible por más usuarios.

  • Independencia de Dispositivo

    • Guía Breve de Independencia de Dispositivo

      Se trata de hacer la Web universal y accesible para cualquier persona, en cualquier sitio, en cualquier momento y usando cualquier dispositivo, evitando la fragmentación de la Web en espacios accesibles sólo por dispositivos concretos. El objetivo principal es mejorar la experiencia del usuario y al mismo tiempo reducir costes al desarrollar estándares que permitan acceder a esa información desde cualquier dispositivo.

    • Guía Breve de Web Móvil

      Busca resolver los problemas de interoperabilidad y usabilidad que actualmente dificultan el acceso a la Web desde dispositivos móviles y hacer posible uno de los objetivos principales del W3C que consiste en alcanzar una Web única. Se trataría de transformar la Web en una plataforma omnipresente de servicios completamente transparentes para el usuario.

Recursos