Una API abierta (a menudo denominada API pública) es una interfaz de programación de aplicaciones disponible públicamente que proporciona a los desarrolladores acceso programático a una aplicación de software o servicio web (posiblemente propietario) . [1] Las API abiertas son API que se publican en Internet y a las que los consumidores pueden acceder de forma gratuita. [2]
No existe una definición universalmente aceptada del término "API abierta" y puede usarse para significar una variedad de cosas en diferentes contextos, incluidos: [3]
Una API privada es una interfaz que permite que los desarrolladores que trabajan dentro de la organización (o los contratistas que trabajan para ella) utilicen partes de los datos del backend y la funcionalidad de las aplicaciones. Las API privadas solo están expuestas a los desarrolladores internos, por lo que los editores de API tienen control total sobre qué aplicaciones se desarrollan y cómo se desarrollan. Las API privadas ofrecen beneficios sustanciales en lo que respecta a la colaboración interna. El uso de una API privada en toda la organización permite un mayor conocimiento compartido de los modelos de datos internos. Como los desarrolladores trabajan para una organización (o son contratados por ella), la comunicación será más directa y, por lo tanto, deberían poder trabajar de manera más cohesionada como grupo. Las API privadas pueden reducir significativamente el tiempo de desarrollo necesario para manipular y construir sistemas internos que maximicen la productividad y creen aplicaciones orientadas al cliente que mejoren el alcance del mercado y agreguen valor a las ofertas existentes. [4]
Las API privadas se pueden volver "privadas" de varias maneras. Lo más común es que la organización simplemente opte por no documentar dicha interfaz, como en el caso de las funciones no documentadas de Microsoft Windows, que se pueden encontrar mediante la inspección de las tablas de símbolos. [5] Algunas API basadas en la Web se pueden autenticar mediante claves, ambas detectables mediante el análisis del tráfico de la aplicación. [6] Además, macOS utiliza un "derecho", otorgado solo mediante firma digital, para controlar el acceso a las API privadas en el sistema. [7]
Las API privadas, por definición, no ofrecen ninguna garantía al desarrollador externo que decide descubrirlas y usarlas. Sin embargo, el uso de funciones no documentadas en Microsoft Windows se ha generalizado tanto que el sistema necesita conservar los comportamientos antiguos de programas específicos que utilizan la base de datos "AppCompat". [8]
A diferencia de una API privada, una API abierta está disponible públicamente para que todos los desarrolladores puedan acceder a ella. Permiten a los desarrolladores, fuera de la fuerza laboral de una organización, acceder a datos de back-end que luego pueden usarse para mejorar sus propias aplicaciones. Las API abiertas pueden aumentar significativamente los ingresos sin que la empresa tenga que invertir en contratar nuevos desarrolladores, lo que las convierte en una aplicación de software muy rentable. [9] Sin embargo, abrir la información de back-end al público puede crear una serie de desafíos de seguridad y gestión. [10] Por ejemplo, publicar API abiertas puede dificultar que las organizaciones controlen la experiencia que tienen los usuarios finales con sus activos de información. Los editores de API abiertas no pueden asumir que las aplicaciones cliente creadas en sus API ofrecerán una buena experiencia de usuario. Además, no pueden garantizar por completo que las aplicaciones cliente mantengan la apariencia de su marca corporativa.
Las API abiertas pueden ser utilizadas por empresas que buscan aprovechar la creciente comunidad de desarrolladores independientes que tienen la capacidad de crear aplicaciones innovadoras que agreguen valor a su negocio principal. Las API abiertas son las preferidas en el ámbito empresarial, ya que aumentan simultáneamente la producción de nuevas ideas sin invertir directamente en esfuerzos de desarrollo. Las empresas a menudo adaptan sus API para dirigirse a audiencias de desarrolladores específicas que consideran que serán más efectivas en la creación de nuevas aplicaciones valiosas. Sin embargo, una API puede reducir significativamente la funcionalidad de una aplicación si está sobrecargada con funciones.
Por ejemplo, [11] la API de búsqueda abierta de Yahoo permite a los desarrolladores integrar la búsqueda de Yahoo en sus propias aplicaciones de software. La incorporación de esta API proporciona funcionalidad de búsqueda a la aplicación del desarrollador, al mismo tiempo que aumenta el tráfico de búsqueda del motor de búsqueda de Yahoo, lo que beneficia a ambas partes. Con respecto a Facebook y Twitter , podemos ver cómo terceros han enriquecido estos servicios con su propio código. Por ejemplo, la capacidad de crear una cuenta en un sitio/aplicación externo utilizando sus credenciales de Facebook es posible gracias a la API abierta de Facebook.
Muchas grandes empresas tecnológicas, como Twitter, LinkedIn y Facebook, permiten el uso de sus servicios por parte de terceros y competidores . [12] [13] [14]
Con el auge de HTML5 y la Web 2.0, la experiencia de navegación moderna se ha vuelto interactiva y dinámica, y esto se ha acelerado, en parte, gracias al uso de API abiertas. Algunas API abiertas obtienen datos de la base de datos detrás de un sitio web y se denominan API web. Por ejemplo, la API de YouTube de Google permite a los desarrolladores integrar YouTube en sus aplicaciones al brindarles la capacidad de buscar videos, recuperar feeds estándar y ver contenido relacionado.
Las API web se utilizan para intercambiar información con un sitio web, ya sea mediante la recepción o el envío de datos. Cuando una API web obtiene datos de un sitio web, la aplicación realiza una solicitud HTTP al servidor en el que está almacenado el sitio. A continuación, el servidor envía los datos en un formato que la aplicación espera (si solicitó datos) o incorpora sus cambios al sitio web (si envió datos).