Domanda

La mia sensazione è che nella pratica i servizi Web basati su documenti siano preferiti: è questa l'esperienza di altre persone?Sono più facili da sostenere?(Ho notato che SharePoint utilizza Any per il "tipo di documento" nella sua interfaccia WSDL, immagino che lo renda basato su documenti).

Inoltre, le persone che offrono servizi di tipo WSDL e Rest ora offrono la stessa funzionalità?WSDL è popolare per la generazione di codice, ma per front-end come PHP e Rails sembrano preferire il riposo.

È stato utile?

Soluzione

Documento rispetto a RPC è una questione solo se si utilizzano servizi Web SOAP che richiedono una descrizione del servizio (WSDL).I servizi web RESTful non utilizzano WSDL perché il servizio non può essere descritto da esso e la sensazione è che REST sia più semplice e facile da capire.Alcune persone hanno proposto WADL come un modo per descrivere i servizi REST.

Linguaggi come Python, Ruby e PHP semplificano il lavoro con REST.il WSDL viene utilizzato per generare codice C# (un proxy di servizio Web) che può essere facilmente chiamato da un linguaggio statico.Questo accade quando aggiungi a Riferimento al servizio O Riferimento Web in Visual Studio.

La fornitura di servizi SOAP o REST dipende dalla popolazione di utenti.Il fatto che i servizi debbano essere utilizzati su Internet o solo all'interno della tua organizzazione influisce sulla tua scelta.SOAP potrebbe avere alcune funzionalità (standard WS-*) che funzionano bene per B2B o per uso interno, ma fanno schifo per un servizio Internet.

In questo documento vengono descritti i documenti/letterali e RPC per i servizi SOAP Articolo di IBM DevelopWorks.Document/literal è generalmente considerato il migliore da utilizzare in termini di interoperabilità (da Java a .NET ecc.).Se sia più facile da sostenere, dipende dalle circostanze.La mia opinione personale è che le persone tendono a rendere queste cose più complicate del necessario e l'approccio più semplice di REST è superiore.

Altri suggerimenti

Come accennato, è meglio scegliere il Document Literal rispetto alla codifica RPC quando possibile.È vero che le vecchie librerie Java (Axis1, Glue e altre cose preistoriche) supportano solo la codifica RPC, tuttavia nelle più moderne librerie SOAP Java di oggi semplicemente non la supportano (ad es.AXIS2, XFire, CXF).Prova quindi a esporre il servizio codificato RPC solo se sai di avere a che fare con un consumatore che non può fare di meglio.Ma forse solo XML RPC potrebbe essere d'aiuto per queste implementazioni legacy.

La risposta di BiranLy è eccellente.Vorrei solo aggiungere che anche la modalità document-vs-RPC può dipendere da problemi di implementazione.Abbiamo riscontrato che Microsoft preferisce i documenti, mentre le nostre librerie basate su Java erano basate su RPC.Qualunque cosa tu scelga, assicurati di sapere cosa penseranno anche gli altri potenziali clienti.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top