¿Qué es un Web API?

Siempre que veo algún tipo de presentación, demo, evento o similar relativo a las Web APIs en todas las ocasiones se define un API (Application Programming Interface) como aquél conjunto de funciones y procedimientos que ofrece cierta biblioteca para ser utilizado por otro software como una capa de abstracción (fuente wikipedia ).

Lo cual está muy bien, pero solamente define una parte de lo que actualmente entendemos como API, además de todas las implicaciones del término API actualmente. Por ello yo lo tiendo a llamar Web APIs.

Un Web API REST, es un conjunto de funciones y procedimientos de creación, consulta, actualización y borrado (CRUD – Crear, leer, actualizar y borrar) sobre objetos de negocio. De esta forma se expone el objeto de negocio sobre una cierta url (http://example.com/v1/user) y con distintos métodos ( PUT – Crear, GET – Leer, PUT – Actualizar, DELETE – Borrar) se opera sobre estos objetos de negocio. Habitualmente este conjunto de funciones se exponen fuera de la compañía para permitir ciertas operaciones de B2B, lo que dicho de otra forma no es más que facilitar el acceso a los servicios de la compañía para las empresas con las que la nuestra hace negocio.

Con el boom de la Web 2.0 más y más sitios ofrecen un API que permite realizar ciertas funciones o procedimientos. Por ejemplo tomando el API de Twitter, se pueden publicar tweets, y extraer informaciones como tweets filtrados por ciertos parámetros, o incluso estadísticas. Lo cual ha permitido la creación de más negocio sobre estos servicios (APIs), en sitios que integran Twitter, Facebook, Linkedin,y otras redes sociales para poder hacer seguimiento por ejemplo de campañas publicitarias.

Entre las preocupaciones de exponer estos objetos de negocio a terceros, están saber cómo debo dimensionar mis sistemas para dar cabida a esta nueva vía de negocio, cuál de mis interlocutores de negocio hace más uso del API, medir este uso, ¿cómo autorizo a los usuarios de mi plataforma a consultar, crear, modificar y borrar desde la plataforma de un tercero?, y sobretodo prevenir que haya accesos no autorizados, ni extracción de información confidencial (ya sea por un interlocutor de negocio, o por un hacker de la competencia).

Sobre la base de las preocupaciones más básicas comentadas, se han ido desarrollando mecanismos para la identificación de consumidores mediante tokens, herramientas de monitorización y reporting automático sobre esta monitorización, mecanismos de autenticación ( OpenID ) y autorización ( OAuth ), y mecanismos para definir distintas políticas de seguridad sobre las APIs expuestas.

No obstante este modelo, ni está presente en todas las compañías, ni creo que sea el modelo idóneo en los próximos años. En los próximos posts pretendo hacer una distinción entre este modelo de acceso directo a los datos, y otros modelos en los por ejemplo que se distingue entre un API pública (public API) y otras APIs privadas (prívate APIs).

Advertisements

One thought on “¿Qué es un Web API?

  1. Pingback: La era de las APIs públicas | Con la cabeza en la nube

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s