API vs Webservice [cerrado]


¿Cuál es la diferencia entre un servicio web y una API? ¿La diferencia es mayor que el protocolo utilizado para transferir datos? gracias.

Author: hippietrail, 2009-04-30

9 answers

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, que casi siempre opera sobre 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 ejemplos de servicios web específicamente, ver JABÓN, REST , y XML-RPC. Para ver un ejemplo de otro tipo de API, una escrita en C para su uso en una máquina local, consulte Linux Kernel API .

En cuanto al protocolo, una API de servicio web casi siempre usa HTTP (de ahí la parte Web), y definitivamente involucra la comunicación a través de una red. Las API en general pueden utilizar cualquier medio de comunicación que deseen. La API del núcleo Linux, por ejemplo, utiliza Interrumpe para invocar el sistema llamadas que componen su API para llamadas desde el espacio de usuario.

 159
Author: Andrew Cholakian,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-08-11 14:31:14

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:

API

Una interfaz de programación de aplicaciones (API) es un conjunto de rutinas, estructuras de datos, clases de objetos y / o protocolos proporcionado por bibliotecas y / o servicios del sistema operativo para apoyar la construcción de aplicaciones.

Webservice

Un servicio Web (también Servicio Web) es definido por el W3C 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"

 50
Author: Mark Biek,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-04-30 18:37:20

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.

 38
Author: cgp,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-04-30 18:42:39

Las API son una interfaz publicada que define cómo el componente A se comunica 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 de publicidad en línea.

Por ejemplo, llamar a GetNumberClicks (nombre de usuario)

Para implementar la API, debe agregar el Doubleclick .archivo 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 la llamada remota 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, llamar a GetNumberClicksWebService (nombre de usuario)

Y el servicio GetNumberClicksWebService llamaría a GetNumberClicks localmente.

 9
Author: nzpcmad,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-04-30 19:03:12

API(Interfaz de Programación de Aplicaciones), el formulario completo en sí mismo sugiere que es una Interfaz que permite el programa para su aplicación con la ayuda o el apoyo de alguna otra Aplicación es la Interfaz que expone algún tipo de funcionalidad que es útil para su aplicación.

Por ejemplo, mostrar los tipos de cambio actualizados en su sitio web necesitaría alguna interfaz de terceros para programar a menos que planee tener su propia base de datos con los tipos de cambio y las actualizaciones regulares a lo mismo. Este conjunto de funcionalidades 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 que están interesados en tales interacciones para que lo desplieguen en la web por medio de servicios web. Este punto final no es más que la interfaz de su aplicación que se puede programar contra por lo tanto API.

 7
Author: Manoj Dwivedi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-09-20 13:25:30

La API es una integración basada en código, mientras que el servicio web es una integración basada en mensajes con estándares interoperables que tienen un contrato como WSDL.

 4
Author: Pingala,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-09-20 13:15:05

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 a la funcionalidad, generalmente relacionada con el negocio, que se puede llegar desde la red a través de una variedad de protocolos.

 3
Author: Joshua Belden,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-04-30 18:39:38

Compruebe esto http://en.wikipedia.org/wiki/Web_service

Como el enlace mencionado, Web API es un desarrollo en servicios Web que probablemente se relaciona con Web 2.0, mientras que los servicios basados en SOAP son reemplazados 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 de los servicios web tradicionales.

 1
Author: longbkit,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-07-06 07:11:22

Otro ejemplo: google map api vs google direction api web service, mientras que el primero sirve (entrega) un archivo javascript al sitio (que luego se puede usar como una api para hacer nuevas funciones) , el último es un servicio web Rest que entrega datos (en formato json o xml), que se puede procesar (pero no se usa en un sentido api).

 0
Author: anu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-09-01 22:39:49