usar - JSON, REST, SOAP, WSDL y SOA: ¿Cómo se vinculan todos juntos
soap rest difference (2)
Imagine que está desarrollando una aplicación web y decide desacoplar la funcionalidad de la presentación de la aplicación, ya que ofrece una mayor libertad.
Usted crea una API y permite que otros implementen sus propios frontales sobre ella también. Lo que acabas de hacer aquí es implementar una metodología SOA , es decir, usar servicios web.
Los servicios web hacen que los bloques de construcción funcionales sean accesibles a través de protocolos estándar de Internet, independientemente de las plataformas y los lenguajes de programación.
Entonces, diseñas un mecanismo de intercambio entre el back-end (servicio web) que hace el procesamiento y la generación de algo útil, y el front-end (que consume los datos), que podría ser cualquier cosa. (Una aplicación web, móvil o de escritorio u otro servicio web). La única limitación aquí es que el front-end y el back-end deben "hablar" el mismo "idioma".
Ahí es donde entran SOAP y REST. Son formas estándar que elegirías para comunicarte con el servicio web.
JABÓN:
SOAP internamente usa XML para enviar y recibir datos. Los mensajes SOAP tienen una estructura rígida y el XML de respuesta necesita ser analizado. WSDL es una especificación de qué solicitudes se pueden realizar, con qué parámetros y qué devolverán. Es una especificación completa de su API.
DESCANSO:
REST es un concepto de diseño.
La World Wide Web representa la implementación más grande de un sistema que se ajusta al estilo arquitectónico REST.
No es tan rígido como SOAP. Los servicios web RESTful usan URI y métodos estándar para realizar llamadas al servicio web. Cuando solicita un URI, devuelve la representación de un objeto, que luego puede realizar operaciones (por ejemplo, GET, PUT, POST, DELETE). No está limitado a elegir XML para representar datos, puede elegir cualquier cosa realmente (JSON incluido)
La API REST de Flickr va más allá y te permite devolver imágenes también.
JSON y XML, son funcionalmente equivalentes, y cualquiera podría ser elegido. Se piensa que XML es demasiado detallado y más difícil de analizar, por lo que muchas veces, los datos se representan de forma más adecuada con JSON. (Por ejemplo, serialización)
Sin embargo, es una elección.
Actualmente estoy haciendo algunos exámenes y estoy luchando con algunos conceptos. Todos estos han sido ''mencionados'' en mis notas realmente, pero realmente no entendí cómo se relacionaron todos. Por lo que yo entiendo,
SOA: una solución para hacer que los consumidores / proveedores de servicios se comuniquen. (por lo que entiendo, este es el término general para todo lo demás)
WSDL: un lenguaje que describe el servicio del proveedor.
SOAP: un contenedor de protocolo XML utilizado por los servicios para enviar mensajes. ¿Funciona junto con WSDL para proporcionar parámetros?
REST: ¿un patrón de diseño que es similar a SOAP en función pero evita el XML? (realmente no estoy seguro de esto)
JSON: ¿una alternativa a XML que usa javascript? (No estoy seguro acerca de este tampoco)
Al mirar en Internet no parece haber una definición clara de lo que son todos estos y cómo se relacionan.
WSDL : representa el lenguaje de descripción del servicio web
En SOAP (protocolo simple de acceso a objetos), cuando utiliza el servicio web y agrega un servicio web a su proyecto, sus aplicaciones cliente no conocen las funciones del servicio web. Hoy en día es algo anticuado y para cada tipo de cliente diferente debe implementar diferentes archivos WSDL
. Por ejemplo, no puede usar el mismo archivo para .Net
y php
client. El archivo WSDL
tiene algunas descripciones sobre las funciones del servicio web. El tipo de este archivo es XML
. SOAP
es una alternativa para REST
.
RESTO : representa la transferencia de estado representacional
Es otro tipo de servicio de API, es realmente fácil de usar para los clientes. No es necesario que tengan una extensión de archivo especial, como los archivos WSDL
. La operación CRUD puede implementarse mediante diferentes HTTP Verbs
(GET para lectura, POST para creación, PUT o PATCH para actualización y SUPRIMIR para eliminar el documento deseado). Están basados en protocolo HTML
y la mayoría de las veces la respuesta es en JSON
o XML
formato. Por otro lado, la aplicación cliente debe llamar exactamente al HTTP Verb
relacionado a través de nombres y tipos de parámetros exactos. Debido a que no tiene un archivo especial para la definición, como WSDL
, es un trabajo manual que utiliza el punto final. Pero no es gran cosa porque ahora tenemos muchos complementos para diferentes IDE para generar la implementación del lado del cliente.
SOA : soportes para la arquitectura orientada a servicios
Incluye toda la programación con conceptos de servicios web y arquitectura. Imagine que desea implementar una aplicación a gran escala. Una práctica puede consistir en tener algunos servicios diferentes, llamados microservicios, y todo el mecanismo de la aplicación llamaría al servicio web necesario en el momento adecuado. Los servicios web REST
y SOAP
son una especie de SOA
.
JSON : representa la javascript Object Notation
cuando serializa un objeto para javascript, el tipo de formato de objeto es JSON. imagina que tienes la clase humana:
class Human{
string Name;
string Family;
int Age;
}
y tienes algunas instancias de esta clase:
Human h1 = new Human(){
Name=''Saman'',
Family=''Gholami'',
Age=26
}
cuando serializas el objeto h1 a JSON, el resultado es:
[h1:{Name:''saman'',Family:''Gholami'',Age:''26''}, ...]
javascript
puede evaluar este formato mediante la función eval()
y crear una matriz asociativa a partir de esta cadena JSON
. Este es un concepto diferente en comparación con otros conceptos que describí anteriormente.