Header Ads Widget

Ticker

6/recent/ticker-posts

¿Cuál es la diferencia entre servicios web y API?

 



Los servicios web y las API son dos de esos términos tecnológicos superpuestos que a menudo se confunden. Es posible que incluso hayas escuchado estas palabras usadas indistintamente, pero ¿son lo mismo?

Si bien se superponen, los servicios web y las API son dos conceptos diferentes. Si necesita una explicación rápida y sencilla, lo tenemos cubierto. En artículos anteriores, analizamos la diferencia entre microservicios y API , SDK y API , ¡y hoy haremos lo mismo con los servicios web y las API !

Nota: Existe cierto desacuerdo entre los desarrolladores sobre qué define exactamente un servicio web o API y en qué se diferencian los dos. Hemos hecho todo lo posible por ceñirnos a los hechos, pero tenga en cuenta que todos tienen su opinión sobre a qué se refieren estos conceptos.

¿Qué es una API?

El término "API" significa Interfaz de programación de aplicaciones . Si lo desglosa palabra por palabra, puede comprender bastante bien lo que significa. Una API es una interfaz que se puede utilizar para programar software que interactúa con una aplicación existente. En la práctica, una API es "un conjunto de funciones y procedimientos" que le permiten acceder y desarrollar los datos y la funcionalidad de una aplicación existente.

“Las API se han descrito como el pegamento que mantiene unida a Internet. Están integrados en la estructura de la mayoría de las cosas que los usuarios finales hacen en sus dispositivos. ¿Alguna vez te has preguntado cómo puedes jugar a Spotify desde un Uber? Las API permiten que dos entidades que de otro modo estarían distanciadas se comuniquen entre sí en un formato más estandarizado ". ¿Qué es una API? , API nórdicas

Las API han existido durante los años de Donkey. Poco después de que se creara la primera aplicación informática, los desarrolladores inteligentes se dieron cuenta de que podía sacar mucho más provecho de distintas aplicaciones al vincularlas, y así nació la API.

Hoy en día, cuando hablamos de API, normalmente nos referimos a las API web , que exponen los datos y la funcionalidad de una aplicación a través de Internet. Si observa de cerca, verá que las API web impulsan nuestra vida cotidiana:

  • Cuando inicia sesión en un sitio web con su perfil de Facebook
  • Cuando enciendes Netflix y ves docenas de películas nuevas inundando la pantalla
  • Cuando buscas vuelos en Google

… Y la lista sigue y sigue

Técnicamente hablando, las API web suelen enviar datos de un lado a otro mediante solicitudes HTTP. Estas solicitudes suelen devolver datos textuales en forma de respuesta JSON o XML.

¿Qué es un servicio web?

En pocas palabras, un servicio web es un recurso que está disponible en Internet. Por lo tanto, los servicios web, por definición, requieren una red . El término "servicio web" está definido por W3C (el Consorcio World Wide Web) y, por lo tanto, técnicamente sigue una gran cantidad de estándares.

Un servicio web es un sistema de software diseñado para admitir la interacción interoperable de máquina a máquina a través de una red. Tiene una interfaz descrita en un formato procesable por máquina (específicamente WSDL). Otros sistemas interactúan con el servicio web de la manera prescrita por su descripción utilizando mensajes SOAP, que normalmente se transmiten mediante HTTP con una serialización XML junto con otros estándares relacionados con la web.

En lo que respecta a muchos desarrolladores, los servicios web utilizan principalmente SOAP , un protocolo de mensajería donde los datos XML se comparten a través de solicitudes HTTP. Otros no están de acuerdo con esto, diciendo que los servicios web no tienen que usar SOAP, pero es una cuestión de semántica más que cualquier otra cosa.

Por último, los servicios web suelen estar asociados con la arquitectura orientada a servicios . La Arquitectura Orientada a Servicios, o SOA, es un patrón arquitectónico para diseñar aplicaciones de software donde las características se dividen y se ponen a disposición como servicios en una red.

API vs servicios web

Al contrario de lo que podría pensar, las API y los servicios web no se excluyen mutuamente. De hecho, uno es un subconjunto del otro: cada servicio web es una API, ya que expone los datos y / o la funcionalidad de una aplicación, pero no todas las API son un servicio web. Esto se debe a que la definición de un servicio web es bastante restrictiva cuando se trata de implementación:

  • Los servicios web requieren una red. Si bien las API pueden estar en línea o sin conexión, los servicios web deben usar una red.
  • Las API son independientes del protocolo . Si bien las API pueden usar cualquier protocolo o estilo de diseño, los servicios web generalmente usan SOAP (pero a veces REST, UDDI y XML-RPC).

Hay otra gran distinción. Muchas API públicas son transparentes, con documentación abierta y portales de autoservicio para una rápida incorporación de desarrolladores. Eso es porque el objetivo de muchas API modernas es, después de todo, facilitar la interacción con una aplicación. Por otro lado, los servicios web no han disfrutado de un historial tan abierto: en cambio, tienden a ofrecer datos y / o funcionalidades específicas a socios específicos; no están ahí para ser pirateados .

SOA dio un mal nombre a los servicios web

Para los desarrolladores para quienes los servicios web necesariamente significan SOA, existe un gran problema con los servicios web. En la Arquitectura Orientada a Servicios, los servicios deben diseñarse con anticipación a cómo se usarán finalmente y quién los usará. Si hay una falta de planificación adecuada, o si las necesidades cambian con el paso del tiempo, los desarrolladores pueden encontrarse rápidamente uniendo una mezcolanza de servicios para construir la implementación correcta.

Inherentemente, los servicios web no tienen este problema. Solo cuando los servicios web se utilizan en una arquitectura orientada a servicios pueden surgir estos problemas. En verdad, entonces, SOA ha dado a los servicios web un poco de mala fama.

Pensamientos finales

Ahí lo tienes: una API es una interfaz que te permite construir sobre los datos y la funcionalidad de otra aplicación, mientras que un servicio web es un recurso basado en la red que cumple una tarea específica. Sí, existe una superposición entre los dos: todos los servicios web son API, pero no todas las API son servicios web.

Tanto los servicios web como las API son, en esencia, muy útiles y muy utilizados en la actualidad. Sin embargo, son los servicios web asociados con SOAP y / o Arquitectura Orientada a Servicios los que están cayendo en desgracia.


Publicar un comentario

0 Comentarios