Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/savonrb/savon

Heavy metal SOAP client
https://github.com/savonrb/savon

ruby soap soap-client

Last synced: 4 days ago
JSON representation

Heavy metal SOAP client

Awesome Lists containing this project

README

        

# Savon

Heavy metal SOAP client

[Documentation](https://www.rubydoc.info/gems/savon/) | [Support](https://stackoverflow.com/questions/tagged/savon) |
[Mailing list](https://groups.google.com/forum/#!forum/savonrb) | [Twitter](http://twitter.com/savonrb)

[![Ruby](https://github.com/savonrb/savon/actions/workflows/ci.yml/badge.svg)](https://github.com/savonrb/savon/actions/workflows/ci.yml)
[![Gem Version](https://badge.fury.io/rb/savon.svg)](http://badge.fury.io/rb/savon)
[![Code Climate](https://codeclimate.com/github/savonrb/savon.svg)](https://codeclimate.com/github/savonrb/savon)
[![Coverage Status](https://coveralls.io/repos/savonrb/savon/badge.svg)](https://coveralls.io/r/savonrb/savon)

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](https://www.rubydoc.info/find/gems?q=savon).

## Installation

Savon is available through [Rubygems](http://rubygems.org/gems/savon) and can be installed via:

```
$ gem install savon
```

or add it to your Gemfile like this:

```
gem 'savon', '~> 3.0.0'
```

## Usage example

``` ruby
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](https://github.com/savonrb/savon/tree/version2/spec/integration).

## Upgrading from v2.x to v3.x

See [UPGRADING.md](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

```bash
$ 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 https://github.com/savonrb/savon/issues/488 for more info

## Documentation

Please be sure to [read the documentation](https://www.rubydoc.info/github/savonrb/savon/).