Savon v0.7.0 Release Notes

Release Date: 2010-01-09 // over 14 years ago
  • This version comes with several changes to the public API! โšก๏ธ Pay attention to the following list and read the updated Wiki: http://wiki.github.com/savonrb/savon

    • ๐Ÿ”„ Changed how Savon::WSDL can be disabled. Instead of disabling the WSDL globally/per request via two different methods, you now simply append an exclamation mark (!) to your SOAP call: client.get_all_users! Make sure you know what you're doing because when the WSDL is disabled, Savon does not know about which SOAP actions are valid and just dispatches everything.

    • The Net::HTTP object used by Savon::Request to retrieve WSDL documents and execute SOAP calls is now public. While this makes the library even more flexible, it also comes with two major changes:

      • SSL client authentication needs to be defined directly on the Net::HTTP object:
        client.request.http.client_cert = ...
      

      I added a shortcut method for setting all options through a Hash similar to the previous implementation:

        client.request.http.ssl_client_auth :client_cert => ...
      
      • Open and read timeouts also need to be set on the Net::HTTP object:
        client.request.http.open_timeout = 30
        client.request.http.read_timeout = 30
      
    • ๐Ÿ‘ Thanks to JulianMorrison, Savon now supports HTTP basic authentication:

      client.request.http.basic_auth "username", "password"
      
    • Julian also added a way to explicitly specify the order of Hash keys and values, so you should now be able to work with services requiring a specific order of input parameters while still using Hash input.

      client.find_user { |soap| soap.body = { :name => "Lucy", :id => 666, :@inorder => [:id, :name] } }
      
    • Savon::Response#to_hash now returns the content inside of "soap:Body" instead of trying to go one level deeper and return it's content. The previous implementation only worked when the "soap:Body" element contained a single child. See issue #17.

    • โž• Added Savon::SOAP#namespace as a shortcut for setting the "xmlns:wsdl" namespace.

      soap.namespace = "http://example.com"