Pergunta

Minha intuição é que os serviços da Web baseados em documentos são preferidos na prática - essa é a experiência de outras pessoas?Eles são mais fáceis de apoiar?(Observei que o SharePoint usa Any para o "tipo de documento" em sua interface WSDL, acho que isso o torna baseado em documento).

Além disso - as pessoas estão oferecendo serviços do tipo WSDL e Rest agora para a mesma funcionalidade?WSDL é popular para geração de código, mas para front-ends como PHP e Rails eles parecem preferir o descanso.

Foi útil?

Solução

Documento versus RPC é apenas uma questão se você estiver usando serviços da Web SOAP que exigem uma descrição de serviço (WSDL).Os serviços web RESTful não usam WSDL porque o serviço não pode ser descrito por ele, e a sensação é que REST é mais simples e fácil de entender.Algumas pessoas propuseram WADL como uma forma de descrever serviços REST.

Linguagens como Python, Ruby e PHP facilitam o trabalho com REST.o WSDL é usado para gerar código C# (um proxy de serviço da web) que pode ser facilmente chamado a partir de uma linguagem estática.Isso acontece quando você adiciona um Referência de serviço ou Referência da Web no Visual Studio.

O fornecimento de serviços SOAP ou REST depende da população de usuários.O fato de os serviços serem usados ​​pela Internet ou apenas dentro da sua organização afeta sua escolha.O SOAP pode ter alguns recursos (padrões WS-*) que funcionam bem para B2B ou uso interno, mas são péssimos para um serviço de Internet.

Documento/literal versus RPC para serviços SOAP são descritos neste Artigo do IBM DevelopWorks.Documento/literal é geralmente considerado o melhor para usar em termos de interoperabilidade (Java para .NET etc).Se é mais fácil apoiar, isso depende das suas circunstâncias.Minha opinião pessoal é que as pessoas tendem a tornar essas coisas mais complicadas do que o necessário, e a abordagem mais simples do REST é superior.

Outras dicas

Conforme mencionado, é melhor escolher o Literal do Documento em vez do codificado RPC sempre que possível.É verdade que as bibliotecas Java antigas (Axis1, Glue e outras coisas pré-históricas) suportam apenas codificação RPC, no entanto, nas bibliotecas Java SOAP mais modernas de hoje, simplesmente não suportam (por exemplo,EIXO2, XFire, CXF).Portanto, tente expor o serviço codificado em RPC somente se você souber que precisa lidar com um consumidor que não pode fazer melhor.Mas, novamente, talvez apenas o XML RPC possa ajudar nessas implementações legadas.

A resposta de BiranLy é excelente.Gostaria apenas de acrescentar que documento versus RPC também pode se resumir a problemas de implementação.Descobrimos que a Microsoft prefere documentos, enquanto nossas bibliotecas baseadas em Java eram baseadas em RPC.Seja qual for sua escolha, certifique-se de saber o que outros clientes em potencial também assumirão.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top