Pregunta

Mi intuición es que en la práctica se prefieren los servicios web basados ​​en documentos: ¿es esta la experiencia de otras personas?¿Son más fáciles de apoyar?(Observé que SharePoint usa Cualquiera para el "tipo de documento" en su interfaz WSDL, supongo que eso lo hace basado en Documento).

Además, ¿las personas ofrecen ahora servicios de tipo WSDL y Rest para la misma funcionalidad?WSDL es popular para la generación de código, pero para interfaces como PHP y Rails parecen preferir el descanso.

¿Fue útil?

Solución

Documento versus RPC es solo una pregunta si está utilizando servicios web SOAP que requieren una descripción del servicio (WSDL).Los servicios web RESTful no utilizan WSDL porque el servicio no puede ser descrito por él, y la sensación es que REST es más simple y fácil de entender.Algunas personas han propuesto WADL como una forma de describir los servicios REST.

Lenguajes como Python, Ruby y PHP facilitan el trabajo con REST.El WSDL se utiliza para generar código C# (un proxy de servicio web) que se puede llamar fácilmente desde un lenguaje estático.Esto sucede cuando agregas un Referencia de servicio o Referencia web en Visual Studio.

Si proporciona servicios SOAP o REST depende de su población de usuarios.El hecho de que los servicios se utilicen a través de Internet o simplemente dentro de su organización afecta su elección.SOAP puede tener algunas características (estándares WS-*) que funcionan bien para uso B2B o interno, pero apestan para un servicio de Internet.

Documento/literal versus RPC para servicios SOAP se describen en este Artículo de IBM DevelopWorks.El documento/literal generalmente se considera el mejor para usar en términos de interoperabilidad (Java a .NET, etc.).En cuanto a si es más fácil de apoyar, depende de tus circunstancias.Mi opinión personal es que la gente tiende a hacer que estas cosas sean más complicadas de lo necesario y el enfoque más simple de REST es superior.

Otros consejos

Como se mencionó, es mejor elegir el documento literal en lugar del codificado RPC siempre que sea posible.Es cierto que las antiguas bibliotecas de Java (Axis1, Glue y otras cosas prehistóricas) solo admiten codificación RPC, sin embargo, las bibliotecas SOAP de Java más modernas de hoy simplemente no lo admiten (p. ej.AXIS2, XFire, CXF).Por lo tanto, intente exponer el servicio codificado RPC sólo si sabe que necesita tratar con un consumidor que no puede hacerlo mejor.Pero, de nuevo, tal vez solo XML RPC podría ayudar para estas implementaciones heredadas.

La respuesta de BiranLy es excelente.Solo me gustaría agregar que documento versus RPC también puede deberse a problemas de implementación.Descubrimos que Microsoft prefiere los documentos, mientras que nuestras bibliotecas basadas en Java estaban basadas en RPC.Elijas lo que elijas, asegúrate de saber qué asumirán también otros clientes potenciales.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top