A long-lived project that still receives updates
Heavy metal SOAP client
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

>= 2.3.0
~> 0.14
< 4
>= 0
>= 4.3.8, < 7
>= 12.3.3
~> 3.9

Runtime

~> 1.2
>= 2.1.2
~> 1.2
>= 1.8.1
~> 2.4
>= 3.7, < 6
>= 4, < 5
~> 2.5
 Project Readme

Savon

Heavy metal SOAP client

Documentation | Support | Mailing list | Twitter

Ruby Gem Version Code Climate Coverage Status

If you're reading this on GitHub, note that this README is for the main branch and that features/changes described here might not correspond to your version. You can find the documentation for your release at rubydoc.info.

Installation

Savon is available through Rubygems and can be installed via:

$ gem install savon

or add it to your Gemfile like this:

gem 'savon', '~> 3.0.0'

Usage example

require 'savon'

# create a client for the service
client = Savon.client(wsdl: 'http://service.example.com?wsdl')

# or: create a client with a wsdl provided as a string
client = Savon.client do |config|
  wsdl_content = File.read("/path/to/wsdl")
  config.wsdl wsdl_content
end

client.operations
# => [:find_user, :list_users]

# call the 'findUser' operation
response = client.call(:find_user, message: { id: 42 })

response.body
# => { find_user_response: { id: 42, name: 'Hoff' } }

For more examples, you should check out the integration tests.

Upgrading from v2.x to v3.x

See UPGRADING.md for more information.

Ruby version support

Every savon release is tested with contemporary supported versions of ruby. Historical compatibility information:

  • main - same support as Ruby
  • 2.15.x - MRI 3.0, 3.1, 3.2, 3.3
  • 2.13.x, 2.14.x - MRI 2.7, 3.0, 3.1
  • 2.12.x - MRI 2.2, 2.3, 2.4, 2.5
  • 2.11.x - MRI 2.0, 2.1, 2.2, and 2.3

If you are running MRI 1.8.7, try a 2.6.x release.

Most changes are not backported to older versions of savon, or unsupported ruby versions.

Running tests

$ bundle install
$ bundle exec rspec

FAQ

  • URI::InvalidURIError -- if you see this error, then it is likely that the http client you are using cannot parse the URI for your WSDL. Try gem install httpclient or add it to your Gemfile.
    • See #488 for more info

Documentation

Please be sure to read the documentation.