UNIVERSIDAD MARIANO GALVEZ DE GUATEMALA
Facultad de Ingeniería, Matemática y Ciencias Físicas Programación para la Ciencia y la Ingeniería II Catedrática: Thelma Roxana Bollat

PROYECTO FINAL API
INTRODUCCIÓN
Todos los días oímos que hay que evolucionar al mundo de las APIs, que debemos dejar atrás el SOA clásico, oímos ventajas de este modelo y de cómolos desarrolladores se pueden auto proveer y reutilizar API existentes. También escuchamos hablar de cómo podemos exponer nuestro negocio a partners a través de API, etc. Pero ¿qué es realmente una API? ¿Cómo hay que diseñarlas y qué ofrecen los fabricantes para manejarlas y gestionarlas? Hacemos una introducción al mundo de las interfaces de programación de aplicaciones y cómo uno de los fabricantes de API Management más importantes da solución a este reto.
Inciso A
¿Qué es una API?
El termino API es una abreviatura de Application Programming Interfaces, que significa interfaz de programación de aplicaciones. Se trata de un conjunto de definiciones y protocolos que su utiliza para desarrollar e integrar el software de las aplicaciones, permitiendo la comunicación entre dos aplicaciones de software a través de un conjunto de reglas.

Así pues, podemos hablar de una API como una especificación formal que establece cómo un módulo de un software se comunica o interactúa con otro para cumplir una o muchas funciones. Todo dependiendo de las aplicaciones que las vayan a utilizar, y de los permisos que les dé el propietario de la API a los desarrolladores de terceros.
Si has venido hasta aquí es porque has oído hablar de estas API, pero no entiendes bien cómo funcionan. Eso es normal, porque nunca están en la superficie de una web o aplicación. No son la parte visible, sino loscircuitos internos que sólo los desarrolladores ven y conectan para hacer funcionar una herramienta.
De cara a un usuario normal, lo único que vas a ver de una API son los resultados, cómo abres un juego para el móvil y puedes conectarte a tu cuenta de Facebook para iniciar sesión, o cómo puedes publicar los resultados de una partida en Twitter. O cuando esa aplicación te manda notificaciones al móvil o al ordenador.
Como hemos dicho antes, las API pueden tener tanto una como varias funciones, pudiendo llegar a ser auténticos kits de herramientas. Cuando esto pasa, tu aplicación puede enviarle una solicitud con una estructura particular, y esta estructura determinará cómo responderá el servicio o el software al que le estés enviando esa solicitud.
Pueden ser privadas para el uso de una empresa, abiertas sólo para partners, o públicas para que cualquier desarrollador interactuar con ellas o crear sus propias API para que lo hagan. También pueden ser API locales para aplicaciones que se comunican dentro de un mismo ambiente o dispositivo, o remotas para cuando hay que acceder a otro punto diferente.
A los servicios que no son de código abierto también les permite dejar que otros utilicen funciones concretas de sus aplicaciones o servicios sin tener que proporcionarles todo el código. Estos desarrolladores externos podrán utilizar una función sin tener que saber cómo funcionan internamente los procesos que la hacen posible.
¿Cómo funciona una API?

Una API es el código que determina el funcionamiento de un programa informático de una parte de un software a otra. Las API permiten que una aplicación extraiga archivos o datos preexistentes dentro de un software y los use en otro programa o en uno de sus otros niveles.
a) ¿Qué es un punto de terminación de API?
Al ser un canal que conecta tu información con una herramienta que la trabajará, una API tiene un destino al cual debe dirigir los datos que ha extraído. A este programa de destino se le conoce como «punto de terminación de API» y puede tener la forma de una aplicación móvil, un sitio web o un programa de gestión de datos.
Un punto de terminación de API es el destino de la API que solicita el propietario de un sitio web. Si un sistema de gestión de contenidos (CMS) solicita acceso a una API, el CMS funciona comoel puntode terminación de la API. Esimportante que los sitios web funcionen correctamente para que puedan servir de puntos de terminación seguros para los desarrolladores que buscan compartir sus datos.
b) ¿Qué es una clave de interfaz de programación de aplicaciones (API)
Una clave de API es el identificador único que se asigna a un usuario de la API, que indica que puede usar la interfaz de programación de aplicaciones en su sitio web. Muchos desarrolladores requieren que solicites esta clave antes de usar la API, mientras que otros pueden asignártela una vez que haces tu primera solicitud para recolectar información por medio de la misma.
Piensa en tu clave de API como si fuera tu ficha de autorización como miembro de la comunidadde undesarrollador.Enefecto, esta fichaidentifica para qué usasla APIyverifica que hayas recibido permiso para realizar este proyecto de parte del propietario
Tu clave de API no le brinda al desarrollador acceso a información personal sobre ti.
¿para qué sirve una API?
Una de las principales funciones de las API es poder facilitarles el trabajo a los desarrolladores y ahorrarles tiempo y dinero. Por ejemplo, si estás creando una aplicación que es una tienda online, no necesitarás crear desde cero un sistema de pagos u otro para verificar si hay stock disponible de un producto. Podrás utilizar la API de un servicio de pago ya existente, por ejemplo, PayPal, y pedirle a tu distribuidor una API que te permita saber el stock que ellos tienen.

Con ello, no será necesario tener que reinventar la rueda con cada servicio que se crea, ya que podrás utilizar piezas o funciones que otros ya han creado. Imagínate que cada tienda online tuviera que tener su propio sistema de pago, para los usuarios normales es mucho más cómodo poder hacerlo con los principales servicios que casi todos utilizan
Tambiénsonútilesparacuandoloúnico que se quiere es utilizar deliberadamente las funciones de determinado servicio para ofrecer ventajas a sus usuarios o atraer a los usuarios de ese servicioa que utilicentu aplicación.
Por ejemplo, piensa que quieres crear una aplicación que se conecte a las publicaciones que hay en Twitter, pues para ello tendrás que conectar tu aplicación al servicio mediante la API que Twitter tiene disponible para los desarrolladores. Y si quieres que esta aplicación se comunique con la barra de notificaciones de un sistema operativo, pues también necesitará otra API del sistema operativo.
Piensa si no en cuando vas a comprar una entrada a través de la web de una sala de cine. Cuando pones la información de tu tarjeta, la web utiliza una API para enviarle esa información de forma remota a otro programa que verifica si tus datos son correctos o es una tarjeta inventada. Una vez se verifica, este programa remoto le dice a la web que todo está en orden, y está ya te emite tus entradas.
Otro ejemplo clásico es el de las aplicaciones de terceros para conectarse a un servicio. Por ejemplo, redes sociales como Twitter o Reddit permiten que se creen aplicaciones diferentes a las oficiales para conectarse a ellas. Estas aplicaciones necesitarán las API de las redes sociales para poder mostrarte la información y los mecanismos internos que las hacen funcionar.
En estos casos, las API le pueden permitir a estos servicios o redes sociales limitar qué funciones quieren que las aplicaciones de terceros puedan utilizar. Por ejemplo, muchas veces se ha informado de que Twitter les pone trabas a estos desarrolladores haciendo que las API limiten el número de usuarios que las puedan utilizar.
A veces otros servicios crean API de forma deliberada para ser utilizados por terceros en tareas concretas, y así extender su uso y popularidad creando nuevas funciones. Por ejemplo, Google creóuna para Google Docs. con lasque permite la creaciónautomatizada de facturas o informes de ventas a otros servicios.
Y, para terminar, otro ejemplo. Piensa en todos esos servicios que funcionan online teniendo la información en la nube. Pues para poder hacer eso no hace falta que se monten sus propios servidores, sino utilizar las API de los servicios en la nube de empresas como Google, Amazon o Microsoft para poder utilizar los suyos.
Inciso D
¿En donde puedo utilizar las API?
Haybásicamente cuatrotiposde APIenlo que se refiere a suspolíticasde uso compartido, como veremos a continuación.
API según sus políticas de uso
1. APIs públicas o abiertas: las APIs públicas también son conocidas como API abiertas y están disponibles para que otros usuarios o desarrolladores las empleen con mínimas restricciones o, en algunos casos incluso, están totalmente accesibles.
2.APIsprivadasointernas:lasAPIsprivadasointernasestánocultasdelosusuariosexternos y se exponen únicamente para los sistemas internos de una organización. Se emplean para el desarrollo interno de la empresa, optimizando la productividadyla reutilización de servicios.
3. APIs de aliados comerciales: las APIs de aliados comerciales son aquellas que se exponen entre los miembros de una alianza comercial. Como no están disponibles para todos, se necesita una autorización especial para usarlas.
4. APIs compuestas: las APIs compuestas utilizan distintos datos o diversas APIs de servicio y permiten que los desarrolladores puedan acceder a varios terminales. Asimismo, podemos también dividir las APIs en cuatro según lo que ofrecen o casos de uso, como verás ahora.
Inciso E
¿En dónde las puedo utilizar?
Debido a que las APIs facilitan el que una persona o empresa pueda diseñar e integrar el software de lasaplicaciones,puedenserutilizadasensitiosweboenaplicaciones.UnasAPIs son utilizadas para manipular documentos, otras para obtener datos del servidor, otras para para dibujar y manipular gráficos, y hay más categorías en las que se pueden utilizar.
Algunos ejemplos de donde se pueden utilizan las APIs son:
Si se quiere crear una aplicación que se conecte a lo que tiene Twitter, para eso se tiene que conectar la app al servicio a través de la API que Twitter tiene para desarrolladores, y si se quiere que esta aplicación interactúe con el motor de notificación del sistema operativo, se va a tener que utilizar una API de sistema operativo diferente.

Un ejemplo claro es el de las aplicaciones de terceros que se vinculan al servicio, así como las redes sociales Twitter o Reddit que permiten crear aplicaciones distintas a las oficiales, en las que se pueden conectar. Pero estas aplicaciones necesitarán API de redes sociales para mostrarle la información y los sistemas de contenido que las hacen funcionar.

Otro ejemplo es cuando se compra una entrada a través del sitio web del cine. Al momento en que se ingresa la informaciónde la tarjeta,el sitiousa una APIpara enviaresa información a otro programa que verifica si su información es válida o si es una tarjeta falsa, después de verificar que todo este bien, este programa remoto le dirá a la red y emitirá sus boletos.
Inciso F
Políticas de lanzamiento de las API
Las políticas son documentos básicos, los cuales brindan formas de administrar aspectos como el almacenamiento, el registro, el enrutamiento de solicitudes a servicios específicos y la conversión de datos de un formato a otro.
Siendo las políticas de lanzamiento de las API clasificada en 3 las cuales son:
Privado:
Las API solo se pueden usar internamente, así que las empresas tienen un mayor control sobre ellas. Esto les da a las empresas un mayor control sobre sus API.
- De Partners: Las API se comparten con partners empresariales específicos, lo cual puede ofrecer flujos de ingresos adicionales, sin comprometer la calidad. Esto puede proporcionar flujos de ingreso adicionales, sin comprometer la calidad.

- Público: Todos tienen acceso a las API, así que otras empresas pueden desarrollar API que interactúen con las de usted y así convertirse en una fuente de innovaciones. Esto permite que terceros desarrollen aplicaciones que interactúancon su API, y puede ser un recurso para novar.

Inciso G
Diferencias entre SOAP y REST Estas son especificaciones de protocolos, las cuales son de métodos diferentes, pero que sirven para transferir datos en línea. Siendo así estas algunas diferencias que tienenestas dos: REST un conjunto de principios arquitectónicos que se ajusta a las necesidades de las aplicaciones móviles y los servicios web ligeros. Las API diseñadas para REST devuelven los mensajes en distintos formatos: HTML, XML, texto sin formato y JSON.
Mientras que SOAP es un protocolo formal mantenido por el Consorcio World Wide Web (W3C), siendo así que utiliza reglas integradas, las cuales agregan la complejidad y la sobrecarga, lo que puede llegar a retrasar el tiempo que tardan las páginas en cargarse
Las API generalmente están impulsadas por uno de estos, según el caso de uso y las necesidades del desarrollador, ya que ambos son métodos para crear interfaces de programación de aplicaciones (API).
REST son instrucciones las cuales proporciona una comunicación sencilla, mientras que SOAP es un protocolo con requisitos específicos.

Los servicios web SOAP brindan funcionalidad integrada de seguridad y cumplimiento que satisface muchas necesidades comerciales. Además, hay muchas APIs públicas, como lo es la de Google Maps, que siguen las pautas de REST.

Al ser simples Las API REST las hace adecuadas para el desarrollo de aplicaciones móviles y de computación sin servidor

Inciso H
Innovaciones de las API
El lanzamiento de tecnología trae consecuencias nuevas e inesperadas que a veces destruyen industrias enteras, estos efectos a veces cambian a varios sectores. Pero en el caso de los partners y las API publicas nos permiten a las personas y empresas aprovechar los esfuerzos de desarrollo de una
comunidad más grande que su equipo de desarrollo interno.
Siendo así como el acceso de los partners o el público a sus API permite innovaciones como:
Crear nuevos canales de ingresos o ampliar los existentes. Expandir el alcance de su marca. Facilitar la innovación abierta o lograr mayor eficiencia, gracias al desarrollo y la colaboración externos.
Ya sea con los partners o con las API públicas, su marca será más reconocible, independientemente de los esfuerzos de marketing de la empresa. Si utiliza una API pública, por ejemplo, para que la tecnología esté disponible para todos, alienta a los desarrolladores a crear un ecosistema en torno a su API.
Inciso I
Beneficios de utilizar las API
En medio de un proceso de transformación digital en prácticamente cualquier sector empresarial, el uso de una API resulta esencial en las mejoras de los procesos de un negocio, ya que son las herramientas que está aportando un valor diferencial a las empresas que las implementan. Así, las compañías que emplean estas tecnologías está siendo más competitivas,

1. Reestructuran y organizan sistemas internos para dar apoyo a nuevos proyectos innovadores de una manera uniforme.
2. Reducen los costes de mantenimiento.
3. Incrementan la agilidad de los procesos de transformación.
4.
Aportan nuevas oportunidades para generar nuevas formas de llegar a los clientes, generar ingresos y construir nuevas alianzas con socios.
Inciso J
¿Qué tipos de API existen?
APIs de sistemas: las API de sistemas desbloquean datos de los sistemas centrales de registro dentro de una organización.Los sistemasERP, de clientes y de facturación,así como las bases de datos privadas, son ejemplos de sistemas clave en los que las API pueden desbloquear datos.
APIs de procesos: las API de procesos interactúan con los datos y los compilan en un solo sistema o a través de varios, acabando así con los silos. Este tipo de API permite combinar datos y coordinar varias API de sistemas para fines empresariales específicos. Un ejemplo de este proceso es la creación de una vista completa de los clientes, el despacho de pedidos y el estado de los envíos.
APIs de experiencias: las API de experiencias proporcionan contexto empresarial para los datos y procesos desbloqueados y establecidos con APIs de sistemas y procesos. Las API de experiencias exponen los datos para que pueda utilizarlos la audiencia de destino, como en aplicaciones móviles, portales internos para datos de clientes, etc.
API externas
Las API externas son accesibles para terceros (desarrolladores, partners, etc.) ajenos a la organización. A menudo, permiten que desarrolladores de todo el mundo que buscan crear aplicaciones e integraciones innovadoras puedan acceder fácilmente a los datos y servicios de una organización mediante el autoservicio.
Un ejemplo de API abierta es la API de Google Maps, que es utilizada por aplicaciones de terceros (como aplicaciones de transporte compartido o entrega de comida) para posicionar y rastrear las ubicaciones.
API internas
Las API internas son lo contrario de las API abiertas en el sentido de que son inaccesibles a usuarios externos y solo están a disposición de los desarrolladores internos de una organización. Las API internas pueden dar cabida a iniciativas a nivel empresarial que van desde la adopción de arquitecturas DevOps y de microservicios hasta la modernización de
sistemas heredados y la transformación digital. El uso y la reutilización de estas API pueden mejorar la productividad, eficiencia y agilidad de una organización Un ejemplo de API interna reutilizable es cuando un centro de llamadas crea una API de información de clientes que se utiliza en una aplicación que da acceso a nombres, datos de contacto, información de cuentas, etc. El equipo encargado de este proceso puede entonces reutilizar la misma API en una aplicación web o móvil destinada a los clientes.

APIs de partners
Las API de partners son un término medio entre las internas y las externas. Ello se debe a que son accesibles a personas ajenas a la organización, pero solo para aquellas que tienen permisos exclusivos. Normalmente, este acceso especial se concede a determinados terceros para facilitar una colaboración empresarial estratégica.