Explicaciones de Layman: ¿Qué significa para una empresa ‘vender su API’?

API significa “interfaz de programador de aplicaciones”. Una API proporciona acceso a funciones preconstruidas que agregan funciones útiles a otras aplicaciones. Con frecuencia, las API proporcionan acceso a datos o a un servicio que un programador desearía incorporar en su propia aplicación.

“Vender una API” es vender un paquete de código de computadora que proporciona algunas características útiles, pero que no está destinado a ser utilizado como una aplicación independiente. El cliente para una API es un programador (un programador de aplicaciones) que tiene la intención de usar esa API para construir algo que a su vez le venderá a los legos.

Por ejemplo, supongamos que el programador de aplicaciones está creando una aplicación que permite a los usuarios interactuar en tiempo real (por ejemplo, Facebook). Ahora, le gustaría que sus usuarios puedan hacer llamadas de voz a través de Internet a través de su aplicación.

Los detalles de la ejecución de llamadas de voz sobre IP son bastante complejos. Se han incorporado a un paquete de software que tiene una API (en realidad, varios paquetes de la competencia). Para agregar capacidad de voz a su aplicación, incorpora el paquete con su propio código e “invoca la API” para hacer las llamadas telefónicas. Es decir, puede colocar un botón en una pantalla en la que el usuario hace clic para hacer una llamada. Cada vez que el usuario hace clic en este botón, la aplicación que escribió invoca una o más funciones en la API VOIP que luego realiza todas las tareas de nivel inferior necesarias para establecer una conexión con otro usuario e intercambiar datos de sonido a través de Internet.

Los programadores usan API porque:

1. Una tarea como VOIP es un pequeño mundo entero, muy complicado. Si te enfocas en hacer que la experiencia del usuario de Facebook sea lo más agradable posible, lo último que quieres hacer es trabajar dos años en los detalles de bajo nivel para que VOIP funcione bien.

2. Por otro lado, los programadores que hacen esa API VOIP solo tienen las ideas más vagas de cómo los usuarios de Facebook quieren experimentar las comunicaciones de voz. Lo que es peor, cuando Twitter quiere agregar VOIP, los usuarios de Twitter deberán experimentarlo de manera diferente. Entonces, los chicos de VOIP no intentan resolver esos problemas. Proporcionan un conjunto de funciones sin rostro que los usuarios no pueden ver. Dejan el diseño de la experiencia del usuario (el aspecto de las pantallas, el orden en que ingresa datos como el número de teléfono, etc.) al programador de la aplicación que utiliza su API.

Hoy en día hay un gran número de API disponibles para diferentes tareas. Uno de los secretos para crear aplicaciones potentes rápidamente es estar familiarizado con las API y luego “unirlas” de manera efectiva dentro de su propia aplicación que luego puede proclamar con orgullo sus capacidades como propias.

Primero, definamos nuestra terminología.

La interfaz del programador de aplicaciones, o API, es una biblioteca de funciones publicadas utilizadas para interactuar con una pieza de software. Una API bien diseñada será conceptualmente clara y completa; Una API bien implementada manejará condiciones inusuales (por ejemplo, datos incorrectos) de una manera predecible. Una API puede cambiar con el tiempo, pero los cambios deben publicarse y las funciones deben etiquetarse como obsoletas y, por lo tanto, sujetas a eliminación en futuras versiones del software, de modo que los ingenieros de aplicaciones tengan tiempo suficiente para actualizar su código de “cliente”.

Entonces la respuesta a su pregunta es:

Se puede publicar una API a clientes externos a la empresa, y la empresa puede cobrar una tarifa por su uso.

¿Pero cuál es el resto de la historia?

Debajo de la API se encuentran las “partes internas” no publicadas, que realizan el trabajo real del software. La división entre API y componentes internos es crucial: la API proporciona estabilidad del software a lo largo del tiempo, mientras que los ingenieros que escriben los componentes internos son libres de mejorar el software como mejor les parezca. Esto permite que las correcciones de errores y otras mejoras estén disponibles rápidamente, ya que no es necesario realizar cambios en el código de la aplicación para incorporar las mejoras.

Significa que la compañía permite que otros desarrolladores accedan a algunas de sus funciones para que los desarrolladores puedan reempaquetar estos servicios para otros usuarios finales.

Tomemos el ejemplo de Yelp, que cobra por el acceso a su API. Yelp ofrece (para simplificar las cosas) reseñas y calificaciones de restaurantes.

Ahora tengo una aplicación que quiere ofrecer reseñas de restaurantes solo para mujeres. No te preocupes por cómo hago esto. Solo sé que necesito encontrar reseñas de restaurantes de mujeres, y en este momento no las tengo.

Pero Yelp sí. Si pudiera acceder a su API, podría obtener reseñas de restaurantes, filtrarlas por género de revisor y luego ofrecerlas a mis clientes.

Si Yelp está de acuerdo, puedo consultar su base de datos para revisiones basadas en parámetros relevantes, y devolverá resultados que ahora puedo enviar a mis usuarios.

En este ejemplo, eso es lo que significa acceder a la API. Algunas API son gratuitas, como Google (que es más como un modelo freemium) o Facebook, pero se pagan muchas API valiosas (como Yelp).

También a menudo hay restricciones en el uso de API. Por ejemplo, Yelp no le permitirá usar su API para servir reseñas de restaurantes en una aplicación competitiva. Eso no tendría sentido de todos modos.

Dos posibilidades: la más común es que venden acceso a su interfaz de programación de aplicaciones. Esto le permite escribir programas que aprovechan su funcionalidad preconstruida, sea lo que sea. Facebook, Twitter, PayPal, Google, etc., todos tienen API a las que puede acceder para escribir código personalizado. Para algunos, el acceso es gratuito, otros requieren el pago para acceder.

Otro significado menos común, pero más preciso, es cuando una empresa decide vender su interfaz de programación de aplicaciones y el código y la funcionalidad subyacentes a otra empresa. Es menos común, ya que a la mayoría de las empresas les gusta conservar su propiedad intelectual, pero es una posibilidad.

Significa que una compañía le permitirá usar sus servicios a un costo bajo los términos y condiciones especificados por esa compañía.
Puede descargar feeds de Twitter para generar análisis, pero existe un límite para la descarga gratuita que podría tener que pagar si su solicitud supera un cierto número por hora. También hay ciertas condiciones para usar los feeds de Twitter.
U puede compartir su análisis derivado de la fuente, pero no puede compartir las fuentes descargadas.