Si necesito un servicio web para pasar y recibir un objeto complejo, ¿hay alguna razón por la que prefiera SOAP sobre REST? Aquí está un ejemplo de la posible mensaje SOAP:¿Por qué prefieren REST sobre SOAP?
<soap:Envelope>
<soap:Header>
<Credentials>
<User>Joe</User>
<Password>abc123</Password>
</Credentials>
</soap:Header>
<soap:Body>
<MyComplexBusinessObject>
<Search>
<First>Joe</First>
<Last>Smith</Last>
</Search>
...
...
</MyComplexBusinessObject>
</soap:Body>
</soap:Envelope>
Usando resto, sería pedir al cliente que la siguiente información XML y autenticar mediante la autenticación básica:
<MyComplexBusinessObject>
<Search>
<First>Joe</First>
<Last>Smith</Last>
</Search>
...
...
</MyComplexBusinessObject>
El mensaje SOAP es un poco más complicado, pero no por mucho. Siguen siendo ambos XML, pero SOAP viene con un WSDL y la mayoría de los entornos de programación generarán clases proxy para usted. Sin embargo, la mayoría de las personas con las que hablo me dicen que debería usar REST porque es más fácil de usar. Pero no veo cómo SOAP es más difícil de usar.
¿Echo de menos algo?
Por qué XML * en absoluto * es el punto. JSON sería mucho más ordenado (desde una perspectiva de programación) y más compacto. '[{'Primero': 'Joe', 'Último': 'Smith'}, ...]' –
¿De qué otro modo pasarías un objeto complejo? Claro que podría usar JSON, pero eso no es suficiente para justificar el abandono de SOAP para REST. El objeto puede contener campos anidados y es posible que no se traduzca bien en una URL. – Books
en realidad, para este caso, una mejor coincidencia sería simplemente POSTING a '/ search' con variables POST estándar; '1 = Joe, Smith & 2 = John, Citizen & ...' por ejemplo. Si quiere algo más que buscar, ha venido a la tienda equivocada: SOAP puede tomar todo en la URL única, pero REST no es así, una URL por cosa (y si pudiera hacer '/ search/joe + smith' o algo así, sería mejor aún). –