Status: Unstable. Savon v3 is currently under development and available for testing on GitHub. Use this version if you can handle changes and want to provide feedback.
Savon version 3 is driven by major improvements to the WSDL parser. In contrast to previous versions, we now resolve WSDL and XML Schema imports, which means we can finally rely on these documents and use them to find better ways to assist you.
Supported Ruby versions
- MRI 1.9.2, 1.9.3 and 2.0
- JRuby (1.8 and 1.9 mode)
- Rubinius (1.8 and 1.9 mode)
Summary of changes
Version 3 requires a valid WSDL document to work with. If you don't have a WSDL document, please continue using version 2. We're currently supporting Document/literal and RPC/literal style documents. Document/encoded is not WS-I compliant and rarely used. RPC/encoded is also not WS-I compliant and implements a whole new type system.
Gyoku and Nori will be replaced with a new type system based on XML Schema. This means both request and response Hashes will change to be more consistent and reliable. Don't worry though, Savon can create an example requests for you!
Support for extendable SOAP message headers is still a little rough, but will be improved before the official release to properly support WSSE authentication.
Instead of wrapping various HTTP options and then passing them to HTTPI, Savon now uses a very simple adapter class based on HTTPClient. You can change and extend the adapter to handle complex HTTP scenarios and use your favourite HTTP client.
Since we got rid of all those dependencies, it made sense to integrate Wasabi into Savon. This removes the need to coordinate features and releases between various projects all pointing to Savon and should allow for more frequent updates.