API vs Servicio Web
API y Servicio Web sirven como medio de comunicación. La única diferencia es que un servicio web facilita la interacción entre dos máquinas a través de una red. Una API actúa como una interfaz entre dos aplicaciones diferentes para que puedan comunicarse entre sí. Una API es un método mediante el cual los proveedores de terceros pueden escribir programas que se comunican fácilmente con otros programas. Un servicio web está diseñado para tener una interfaz que se representa en un formato procesable por la máquina, normalmente especificado en el lenguaje de descripción de servicios web (WSDL). Normalmente, «HTTP» es el protocolo más utilizado para la comunicación. El servicio web también utiliza SOAP, REST y XML-RPC como medio de comunicación. La API puede utilizar cualquier medio de comunicación para iniciar la interacción entre aplicaciones. Por ejemplo, las llamadas al sistema son invocadas usando interrupciones por la API del kernel de Linux.
Una API define exactamente los métodos para que un programa de software interactúe con el otro. Cuando esta acción implica el envío de datos a través de una red, los servicios web entran en escena. Una API generalmente implica llamar a funciones desde un programa de software.
En el caso de las aplicaciones web, la API utilizada está basada en la web. Las aplicaciones de escritorio, como las hojas de cálculo y los documentos de Word, utilizan APIs basadas en VBA y COM que no implican un servicio web. Una aplicación de servidor como Joomla puede utilizar una API basada en PHP presente en el servidor que no requiere un servicio web.
Un servicio web es simplemente una API envuelta en HTTP. Una API no siempre tiene que estar basada en la web. Una API consiste en un conjunto completo de reglas y especificaciones que un programa de software debe seguir para facilitar la interacción. Un servicio web puede no contener un conjunto completo de especificaciones y a veces puede no ser capaz de realizar todas las tareas que pueden ser posibles desde una API completa.
Las APIs pueden ser expuestas de varias maneras que incluyen: Objetos COM, archivos DLL y .H en lenguaje de programación C/C++, archivos JAR o RMI en Java, XML sobre HTTP, JSON sobre HTTP, etc. El método utilizado por el servicio web para exponer la API es estrictamente a través de una red.
Resumen:
1. Todos los servicios web son APIs pero todas las APIs no son servicios web.
2. Los servicios web pueden no realizar todas las operaciones que realizaría una API.
3. Un servicio web sólo utiliza tres estilos de uso: SOAP, REST y XML-RPC para
comunicarse mientras que la API puede utilizar cualquier estilo para comunicarse.
4. Un servicio web siempre necesita una red para su funcionamiento mientras que una API no necesita
una red para su funcionamiento.
5. Una API facilita la interfaz directamente con una aplicación mientras que un servicio web interactúa con dos máquinas a través de una red.
6.El servicio web es como Urls avanzadas y la API es Interfaz Programada.
7.La API contiene clases e Interfaces al igual que un programa.
8.Un servicio web es una forma de API (Interfaz de Programación de Aplicaciones).
9.Una API es utilizada por un programador informático para establecer un enlace entre aplicaciones de software. Esta interfaz puede adoptar varias formas, un servicio web es sólo una de ellas.
10.Existen varios tipos de servicio web. SOAP (Simple Object Access Protocol) es uno de los más comunes. La API toma la forma de una descripción del servicio (WSDL) que se utiliza para generar automáticamente el código del programa que realiza la conexión.