2011-02-09 20 views
8

Esiste un buon motivo per distribuire o utilizzare un servizio SOAP senza utilizzare un "file" WSDL?perché SOAP senza WSDL?

Spiegazione:

Sono in una situazione in cui un 3rd-party ha creato un servizio SOAP che non segue il file WSDL molto hanno anche creato. Penso di essere costretto ad ignorare il file WSDL per poter utilizzare questo servizio. Pertanto sto cercando come fare questo.

Quello che mi chiedo davvero è perché è persino possibile farlo? Qual è l'intenzione?

È progettato in modo che possiamo utilizzare i servizi scadenti di programmatori scadenti? Sicuramente ci deve essere una ragione migliore. Vorrei quasi che non fosse possibile. Quindi potrei chiedere che lo scrivano correttamente.

risposta

10

Il WSDL dovrebbe essere un documento pubblico che descrive il servizio SOAP, quindi descrive le firme di tutti i metodi disponibili nel servizio.

Naturalmente ci possono essere fornitori di servizi che desiderano esporre un servizio a determinati consumatori, ma che non vogliono rendere pubblica la firma del servizio, se non altro per rendere un po 'più difficile per le persone che don' t desidera utilizzare il servizio per trovarlo o tentare di usarlo. Ad esempio, la firma dei servizi potrebbe esporre alcune informazioni private sullo schema dei loro dati.

Ma non vedo alcuna scusa per scrivere un WSDL che non corrisponde al servizio. Mi preoccuperei che se non riescono a ottenere il WSDL come dovrebbe essere la qualità del servizio?

Per rispondere all'altra domanda, si può utilizzare il servizio senza WSDL. Se si utilizza Visual Studio, ad esempio, è possibile che VS crei un proxy per l'utente in base al WSDL errato e quindi lo modifichi in modo che corrisponda alle firme del metodo di servizio corrette. Devi solo assicurarti che i contratti di dati e i contratti di metodo nel tuo proxy corrispondano ai contratti di dati di servizio e ai contratti di metodo effettivi.

+0

Sì, questo è un buon punto per non rendere il WSDL non accessibile al pubblico. Tuttavia, esiste un caso di utilizzo per nessuno? Per creare un servizio SOAP senza WSDL? –

+0

WSDL è generalmente un documento pubblico. Forse non vuoi rendere pubbliche le tue firme di servizio. Ad esempio, potresti semplicemente fornire ai consumatori un proxy nella lingua scelta e i consumatori non devono mai sapere qual è la firma del servizio. –

+0

... un altro caso d'uso (probabilmente più rilevante qui) ... non è necessario e semplicemente non lo vogliono. –

Problemi correlati