¿Cuál es la diferencia entre un servicio web y una API? ¿Es la diferencia más que el protocolo utilizado para transferir datos? Gracias.
¿Cuál es la diferencia entre un servicio web y una API? ¿Es la diferencia más que el protocolo utilizado para transferir datos? Gracias.
Respuestas:
Una API (interfaz de programación de aplicaciones) es el medio por el cual terceros pueden escribir código que interactúa con otro código. Un servicio web es un tipo de API, uno que casi siempre opera a través de HTTP (aunque algunos, como SOAP, pueden usar transportes alternativos, como SMTP). La definición oficial del W3C menciona que los servicios web no necesariamente usan HTTP, pero este es casi siempre el caso y generalmente se asume a menos que se mencione lo contrario.
Para ver ejemplos de servicios web específicamente, consulte SOAP , REST y XML-RPC . Para ver un ejemplo de otro tipo de API, uno escrito en C para usar en una máquina local, consulte la API del kernel de Linux .
En lo que respecta al protocolo, una API de servicio web casi siempre usa HTTP (de ahí el elemento web), y definitivamente implica la comunicación a través de una red. Las API en general pueden usar cualquier medio de comunicación que deseen. La API del kernel de Linux, por ejemplo, usa interrupciones para invocar las llamadas del sistema que comprenden su API para llamadas desde el espacio del usuario.
Básicamente, un servicio web es un método de comunicación entre dos máquinas, mientras que una API es una capa expuesta que le permite programar contra algo.
Muy bien podría tener una API y el método principal para interactuar con esa API es a través de un servicio web.
Las definiciones técnicas (cortesía de Wikipedia) son:
Una interfaz de programación de aplicaciones (API) es un conjunto de rutinas, estructuras de datos, clases de objetos y / o protocolos proporcionados por bibliotecas y / o servicios del sistema operativo para apoyar la creación de aplicaciones.
El W3C define un servicio web (también Servicio web) como "un sistema de software diseñado para soportar la interacción interoperable de máquina a máquina a través de una red"
En un sentido genérico, un servicio web ES una API sobre HTTP. A menudo utilizan JSON o XML, pero también hay otros enfoques.
Las API son una interfaz publicada que define cómo se comunica el componente A con el componente B.
Por ejemplo, Doubleclick tiene una API Java publicada que permite a los usuarios interrogar las tablas de la base de datos para obtener información sobre su campaña publicitaria en línea.
por ejemplo, llame a GetNumberClicks (nombre de usuario)
Para implementar la API, debe agregar el archivo DoubleClick .jar a su ruta de clase. La llamada es local.
Un servicio web es una forma de API donde la interfaz se define mediante un WSDL. Esto permite llamadas remotas de una interfaz a través de HTTP.
Si Doubleclick implementara su interfaz como un servicio web, usarían algo como Axis2 ejecutándose dentro de Tomcat.
El usuario remoto llamaría al servicio web.
por ejemplo, llame a GetNumberClicksWebService (nombre de usuario)
y el servicio GetNumberClicksWebService llamaría a GetNumberClicks localmente.
API (interfaz de programación de aplicaciones), el formulario completo en sí sugiere que es una interfaz que le permite programar su aplicación con la ayuda o el soporte de alguna otra interfaz de aplicación que expone algún tipo de funcionalidad que sea útil para su aplicación.
Por ejemplo, mostrar tasas de cambio de divisas actualizadas en su sitio web necesitaría alguna interfaz de terceros para programar, a menos que planee tener su propia base de datos con tasas de cambio y actualizaciones periódicas de las mismas. Este conjunto de funciones es cuando ya está disponible con alguien más y cuando quieren compartirlo con otros tienen que tener un punto final para comunicarse con los demás interesados en tales interacciones para que lo implementen en la web a través de la web. servicios. Este punto final no es más que la interfaz de su aplicación con la que puede programar, por lo tanto, API.
Piense en el servicio web como una API web. API es un término tan general ahora, por lo que un servicio web es una interfaz de funcionalidad, generalmente relacionada con el negocio, a la que puede acceder desde la red a través de una variedad de protocolos.
Mira esto http://en.wikipedia.org/wiki/Web_service
Como se menciona en el enlace, la API web es un desarrollo en los servicios web que probablemente se relacione con la Web 2.0, mientras que los servicios basados en SOAP se reemplazan por comunicaciones basadas en REST. Tenga en cuenta que los servicios REST no requieren definiciones de API de servicio XML, SOAP o WSDL, por lo que esto es muy diferente al servicio web tradicional.
otro ejemplo: la API de Google Map vs el servicio web API de dirección de Google, mientras que el primero sirve (entrega) el archivo javascript al sitio (que luego puede usarse como una API para hacer nuevas funciones), el segundo es un servicio web Rest que entrega datos ( en formato json o xml), que puede procesarse (pero no usarse en un sentido de API).