Quindi sono un po 'nuovo ai servizi Web e una situazione recente è arrivata dove abbiamo aggiunto un elemento a un tipo di dati che viene restituito al client. I clienti si sono lamentati del fatto che questo ha rotto la loro implementazione perché si è soffocata sul nuovo elemento che non si aspettava. (stiamo fornendo i servizi tramite Axis2).Retrocompatibilità e servizi Web
Per me questo sembra un cambiamento innocuo che il client dovrebbe essere in grado di gestire con garbo (ho lavorato con alcuni framework non-web-service in cui aggiungere informazioni opzionali era completamente accettabile). Potrei capire se abbiamo eliminato o rinominato alcuni campi che causerebbero problemi al client.
Fondamentalmente mi aspetto che wsdl si comporti come un'interfaccia. Se apportassimo una modifica a sottotipi che si interfacciano in modo sostanziale, mi aspetterei che il cliente ignorasse felicemente gli elementi estranei. È solo una breve venuta di servizi web, oppure esiste un modo sano per apportare modifiche passive ai servizi in modo che i nuovi clienti possano ottenere i dati aggiuntivi mentre i vecchi clienti possono aggiornare a loro piacimento?
Io suggerirei che è possibile che il client lo stia utilizzando e non utilizzi un'interfaccia SOAP e magari analizzi la risposta con un orribile parsing manuale/espressione regolare fudge (è incredibile quante persone lo facciano). Dico questo mentre creo regolarmente interfacce SOAP client e server in C#, PHP, Perl e JavaScript su sistemi Unix e Windows (per applicazioni web, lato server e app client desktop) e non ho mai incontrato questo problema (aggiungendo campi opzionali nella richiesta o nella risposta non ha mai causato un problema). Chiederei loro a che tipo di client SOAP stanno utilizzando. :-) –