CAM::SOAPClient - SOAP interaction tools LICENSE Copyright 2006 Clotho Advanced Media, Inc., This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. ABOUT CLOTHO "CAM" stands for Clotho Advanced Media Inc. (www.clotho.com) which developed this module. Contact us at info@clotho.com. INSTALLATION Install via one of the following: perl Makefile.PL make make test make install or perl Build.PL perl Build perl Build test perl Build install DESCRIPTION This module simplifies interaction with SOAP web services. Mostly it's an easy-to-use wrapper around SOAP::Lite, but it contains a killer feature to simplify the programmer's life: the call() method. The call() method lets your client specify exactly which data it wants from the SOAP response, in the order it wishes to receive that data. We find this to be substantially simpler than SOAP::Lite's data returning helpers (like result() and paramsout()) which try to be smart, but end up making life harder for many applications (in particular, for applications that return tagged data in arbitrary order, instead of simple positional values). Example API (see t/server.t): The getEmployeeData() service expects a request like: 111-11-1111 and provides a response like: John Smith 1969-01-01 212-555-1212 CAM::SOAPClient style: sub getPhoneNumber_CAM_SOAP { my ($ssn, $uri, $proxy) = @_; return CAM::SOAPClient -> new($uri, $proxy) -> call('getEmployeeData', 'phone', ssn => $ssn); } Equivalent SOAP::Lite style: sub getPhoneNumber_SOAPLite { my ($ssn, $uri, $proxy) = @_; my $som = SOAP::Lite -> uri($uri) -> proxy($proxy) -> call('getEmployeeData', SOAP::Data->name(ssn => $ssn)); if (ref $som) { return $som->valueof('/Envelope/Body/[1]/phone'); } else { return; } } The simplistic server implementation is in t/lib/Example.pm