¿Cuál es la diferencia entre una API web y un servicio web?

136

¿Hay alguna diferencia entre una API web y un servicio web ? ¿O son uno y lo mismo?

sansh
fuente
Ver también: API
vs.Servicio web
2
Ver también programadores. SE
hippietrail
3
Una API es la interfaz publicada, mientras que el servicio es la implementación que se ejecuta en el backend.
Rasika Perera
1
Por favor, lea las respuestas con precaución. Algunos de ellos están desactualizados o no son válidos
Menuka Ishan
simplemente agregando una explicación brillante más: quora.com/What-is-the-difference-between-web-services-and-API
Ashish Shetkar

Respuestas:

71

Un servicio web generalmente ofrece un WSDL desde el cual puede crear stubs de cliente automáticamente. Los servicios web se basan en el protocolo SOAP . ASP.NET Web API es un nuevo marco de Microsoft que le ayuda a construir interfaces basadas en REST . La respuesta puede ser JSON o XML, pero no hay forma de generar clientes automáticamente porque la API web no ofrece una descripción del servicio como WSDL de los servicios web. Por lo tanto, depende de sus requisitos cuál de las técnicas desea utilizar. Quizás incluso WCF se ajuste mejor a sus requisitos, solo mire la documentación de MSDN.

TMK
fuente
77
Los servicios web NO se basan necesariamente en el protocolo SOAP.
horcrux
3
respuesta técnicamente desactualizada
Arun Raaj
44
"ASP.NET Web API" es un marco de Microsoft, no "Web API" en sí.
Amir Hossein Ahmadi
respuesta desactualizada, visite este enlace microsoft-techies.blogspot.com/2014/03/…
Ganesh Karewad
41

La diferencia básica entre servicios web y API web

Servicio web:

1) Es un servicio basado en SOAP y devuelve datos como XML.

2) Solo es compatible con el protocolo HTTP.

3) No es de código abierto, pero puede ser utilizado por cualquier cliente que entienda XML.

5) Requiere un protocolo SOAP para recibir y enviar datos a través de la red, por lo que no es una arquitectura ligera.

API web:

1) Una API web es un servicio basado en HTTP y devuelve datos JSON o XML de forma predeterminada.

2) Es compatible con el protocolo HTTP.

3) Se puede alojar dentro de una aplicación o IIS.

4) Es de código abierto y puede ser utilizado por cualquier cliente que entienda JSON o XML.

5) Tiene una arquitectura ligera y buena para dispositivos con ancho de banda limitado, como los dispositivos móviles.

Vaibhav Shiledar
fuente
77
Un servicio web puede alojarse en muchos lugares, no solo en IIS
Ignacio Soler Garcia
3
Prácticamente todos los puntos están equivocados. No puedo entender cómo 40 usuarios podrían haber votado.
horcrux el
1
@horcrux Estoy de acuerdo. Un servicio web no es necesariamente un servicio basado en SOAP.
Ryan Shillington
La respuesta más confusa que he visto.
mhrsalehi
23

API vs servicio web

Acabo de pegar el resumen del artículo vinculado:

Resumen:

  1. Todos los servicios web son API, pero no todas las API son servicios web.

  2. Es posible que los servicios web no realicen todas las operaciones que realizaría una API.

  3. Un servicio web usa solo tres estilos de uso: SOAP, REST y XML-RPC para la comunicación, mientras que API puede usar cualquier estilo para la comunicación.

  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 interacción directa con una aplicación, mientras que un servicio web es ...

Leer más: Diferencia entre API y servicio web | Diferencia entre | API vs Servicio web http://www.differencebetween.net/technology/internet/difference-between-api-and-web-service/#ixzz3e3WxplAv

Vea el enlace de arriba para la respuesta completa.

Zia Ur Rahman
fuente
10
Pero, la pregunta es sobre la diferencia entre WebAPI y WebService, no "API"
Kulbhushan Singh
Además, el punto 3 no es correcto. Es engañoso y solo ayuda a confundir el tema "SOAP vs. REST".
horcrux el
9

para más detalles visite este enlace Diagrama

Adiii
fuente
2
¿por qué? de esta imagen parece que los servicios web SOAP no se pueden usar en teléfonos inteligentes ... o incluso en computadoras de escritorio. ¿De Verdad? alguien te obliga a leer JSON en lugar de XML en esas plataformas?
AndreaCi
si leer xml no significa que el servicio base SOT REST también sea compatible con valores separados por comandos (CSV), notación de objetos JavaScript (JSON) y sindicación realmente simple (RSS).
Adiii
7

Un servicio web si lo desea es una API web. Específicamente, API web generalmente significa servicio web RESTful (basado en HTTP) y Servicio web generalmente significa SOAP + WSDL (+ HTTP o SMTP o JMS ...).

Típicamente, los servicios web RESTful se oponen a los servicios web (WSDL, SOAP), pero recientemente se ha introducido el término servicios web RESTful (con 'W' mayúscula) que significa RESTful + WSDL + SOAP.

Consulte este cuadro para ver las diferencias entre los tres conceptos: http://www2.mokabyte.it/cms/figureproviderservlet?figureId=IUS-6NS-OBV_7f000001_19624184_5621ef4e--Fig02.jpg

¡Espero eso ayude!

Gabe
fuente
4

El servicio web es absolutamente igual que la API web, solo que un poco más restringido en términos de formato de datos subyacente. Ambos usan el protocolo HTTP y ambos permiten crear servicios RESTful. Y no se olvide de otros protocolos como JSON-RPC, tal vez se ajusten mejor.

Vincent
fuente
1
No es "absolutamente lo mismo" si hay restricciones ahora, ¿verdad?
Ojonugwa Jude Ochalifu
0

En el contexto de ASP.Net, una API web es un controlador cuya clase base es ApiController y no utiliza vistas. Un servicio web es una clase derivada de WebService y tiene generación automática de WSDL. Por defecto, es una API SOAP, pero también puede usar JSON agregando un ScriptServiceAttribute .

jmoffatt
fuente
0

API y servicio web sirven como un medio de comunicación.

La única diferencia es que un servicio web facilita la interacción entre dos máquinas en 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 interactúan fácilmente con otros programas. Un servicio web está diseñado para tener una interfaz que se representa en un formato procesable por máquina, generalmente especificado en el lenguaje de descripción de servicio web (WSDL)

Todos los servicios web son API, pero no todas las API son servicios web.

Un servicio web es simplemente una API envuelta en HTTP.


Esta aquí artículo proporciona un buen conocimiento sobre el servicio web y API.

KamalDeep
fuente
-2

Bueno, TMK puede estar en el mundo de Microsoft, pero en el mundo de todo el software, incluido Java / Python / etc., creo que no hay diferencia. Son lo mismo.

Ryan Shillington
fuente
-2

La diferencia entre el servicio web y la API web se explica muy bien aquí:

/software/38691/difference-between-web-api-and-web-service

Texto del enlace:

Servicios web: ese es el estándar definido por W3C, por lo que se puede acceder de forma semiautomática o automática (WSDL / UDDI). Todo se basa en XML, por lo que cualquiera puede llamarlo. Y cada aspecto del servicio está muy bien definido. Hay un estándar de descripción de parámetros, un estándar de paso de parámetros, un estándar de respuesta, un estándar de descubrimiento, etc., etc. Probablemente podría escribir un libro de 2000 páginas que describiera el estándar. Incluso hay algunos estándares "adicionales" para hacer cosas "estándar", como la autenticación.

A pesar del hecho de que la invocación y el descubrimiento automáticos apenas funcionan porque los clientes son bastante pobres y no tienes ninguna garantía real de que se pueda llamar a ningún servicio desde ningún cliente.

La API web generalmente se realiza como HTTP / REST, nada está definido, la salida puede ser, por ejemplo. JSON / XML, la entrada puede ser XML / JSON / o datos sin formato. No hay estándares para nada => no hay llamadas y descubrimiento automáticos. Puede proporcionar alguna descripción en archivo de texto o PDF, puede devolver los datos en Windows-1250 en lugar de Unicode, etc. Para describir el estándar, sería un folleto de 2 páginas con información simple y definirá todo lo demás.

Web está cambiando hacia API web / REST. Los servicios web no son realmente mejores que la API web. Muy complicado de desarrollar y consumen muchos más recursos (ancho de banda y RAM) ... y debido a todas las conversiones de datos (SOLICITUD-> XML-> DATOS-> RESPUESTA-> XML-> VALIDACIÓN-> CONVERSIÓN-> DATOS) son muy lento.

P.ej. En WebAPI puede empaquetar los datos, enviarlos comprimidos y descomprimir + desempaquetar en el cliente. En SOAP solo puedes comprimir la solicitud HTML.

csh
fuente
-2

Todos los servicios web son API pero todas las API no son servicios web, la API que se expone en la web se llama servicios web.

Pavan T
fuente
El servicio web es el estándar definido por W3C, un servicio bien documentado para que el software de terceros interactúe a través de XML (WSDL / UDDI). Web API es la API sobre HTTP, no está bien documentada, tiene su propio estándar. Y la API en general es algo que puede o no tener acceso a Internet para hablar con otras aplicaciones y también puede tener otros protocolos, por ejemplo, API para llamadas al sistema para hablar su terminal / cmd en el sistema operativo.
Imam Bux
-3

Dos cosas son muy simples de entender,

  1. API: es una capa en la aplicación que puede atender otras solicitudes de aplicaciones localmente.
  2. Servicio web: es una API que puede atender solicitudes y responder a través de la red desde un sistema remoto a través de la web o Internet.

Nota: Todos los servicios web son API, pero no todas las API son servicios web.

Pavan T
fuente
Encendido localmente y en línea
Pavan T