2010-10-16 19 views
6

estoy empezando en el mundo de servicios web y tengo algunas preguntas:RESTO frente a frente SOAP y simple página web, etc

  • Por lo que he leído, REST podría entenderse como una simple llamar a una URL que da un determinado resultado esperado. Entonces, ¿cuál es la diferencia entre un servicio web REST y un sitio web simple?

  • Los servicios web son independientes del idioma. Entonces, si estoy desarrollando un servicio web REST basado en Java con un método que devuelve un objeto de clase serializado Person, y mi cliente es una aplicación .NET, ¿cómo se puede reconstruir esta clase en el lado de .NET? ¿Cómo se hace en la práctica? ¿Debo crear una representación del objeto devuelto en el servicio web y en el lado de .NET analizarlo y compilarlo?

  • En la práctica, ¿cuál es la diferencia entre las llamadas REST y SOAP?

+0

Debería introducir más cohesión entre estas preguntas o dividirlas en publicaciones separadas. Como sitio de preguntas y respuestas, SO está muy limpio y tiene reglas diferentes a las de un foro. –

Respuesta

1

REST significa State Representative Transfer. Se basa en el hecho de que el protocolo HTTP no tiene estado, y especifica algunos métodos como PUT/GET/POST, etc. REST asocia la semántica a esos métodos. Por ejemplo, un GET significa 'Leer/Cargar'. PUT significa 'guardar'. POST significa 'actualización'. (Creo que lo entendí bien ...)

Así que REST no es una llamada a una URL, REST es un concepto. Utiliza REST realizando llamadas a Urls. La diferencia entre REST y un 'sitio web simple' es la semántica de REST. Una solicitud PUT significa una cosa, una solicitud GET significa otra, etc.

Los servicios web RESTful son independientes del idioma porque dependen del protocolo HTTP; Eso es. No dependen de ninguna característica del idioma, aparte de la capacidad de usar el protocolo HTTP.

+2

En realidad, HTTP RFC2616 concede semántica a los métodos. REST simplemente requiere que si usa HTTP, use HTTP consistentemente para cumplir con la restricción Uniform Interface. REST tampoco depende de HTTP, pero en la práctica es lo que se usa el 99% del tiempo. –

+0

@darrel, buen comentario. – hvgotcodes

6

Consulte el Richardson Maturity Model para obtener una explicación sobre qué es un servicio RESTful.

alt text

para alcanzar el nivel 3 se debe satisfacer la Hypermedia as the Engine of Application State. abrivated HATEOAS constraint (también llamada la restricción Hipermedia). Esto significa que la mayoría de los servicios por ahí no es relajante, pero los servicios CRUD Merly ... lo cual está bien ...

Un buen recurso de descanso es REST in Practice

La principal diferencia entre SOAP y REST es que los servicios REST no tiene un WSDL que defina las "operaciones", gracias a Dios por eso. Sin embargo, las estructuras de datos pueden ser definidos por un esquema de lenguaje como Schematron, XSD para XML ...

+0

La explicación de los controles hipermedia fue bastante buena. Thx para el enlace. –

0
  • REST devuelve datos XML o JSON estructurados, usted no envía de vuelta una página web entera, lo que podría ser difícil interpretar, y sería innecesariamente complicado.

  • Puede analizar datos XML o JSON en un objeto en cualquier idioma con un analizador para esto (incluidos los idiomas .net). Un objeto en este sentido no significa un objeto .net completo con un vtable, etc.

  • SOAP sobrecarga los datos POST enviados con una solicitud HTTP y, por lo tanto, en lugar de tener muchas URL a las que envía solicitudes individuales, solo tiene una URL a la que publica algunos datos XML. En realidad, la diferencia es principalmente semántica.

+1

REST no restringe el tipo de medio que devuelve. La devolución de HTML es en realidad mucho más compatible con las restricciones de REST que la devolución de la aplicación/xml y la aplicación/json, y asumiendo el valor semántico dentro de esas representaciones genéricas. –

Cuestiones relacionadas