Screencast: SOAP Webservices mit Savon

Obwohl REST inzwischen für viele die erste Wahl bei Webservices ist, gibt es noch einige Dienste, die aus SOAP aufbauen. Im Gegensatz zu REST ist bei SOAP ein wenig mehr Aufwand nötig, um diese APIs konsumieren zu können. Savon ist ein Plugin um dem Entwicker bei dieser Arbeit zu unterstützen und die Verwendung der Dienste zu vereinfachen. Ryan zeigt in diesem Screencast wie es eingesetzt werden kann.

 

Downloads in verschiedenen Formaten:

mp4
m4v
webm
ogg

 

Resourcen:

Gemfile

gem 'savon'

rails console

client = Savon::Client.new("http://www.webservicex.net/uszip.asmx?WSDL")
client.wsdl.soap_actions
client.request :web, :get_info_by_zip, body: { "USZip" => "90210" }

models/zip_code.rb

class ZipCode
  attr_reader :state, :city, :area_code, :time_zone
  def initialize(zip)
    # Gyoku.convert_symbols_to :camelcase
    client = Savon::Client.new("http://www.webservicex.net/uszip.asmx?WSDL")
    response = client.request :web, :get_info_by_zip, body: { "USZip" => zip }
    if response.success?
      data = response.to_array(:get_info_by_zip_response, :get_info_by_zip_result, :new_data_set, :table).first
      if data
        @state = data[:state]
        @city = data[:city]
        @area_code = data[:area_code]
        @time_zone = data[:time_zone]
      end
    end
  end
end

Eingestellt am 18.10.2011 um 08:15

Kategorie: Tutorials

Be Sociable, Share!

Kommentare für diesen Artikel wurden geschlossen.

Suchen auf rubyonrails.de

Aktuelle Rails Version + Abhängigkeiten:

Gem rails-3.0.0
actionmailer (= 3.0.0, runtime)
actionpack (= 3.0.0, runtime)
activerecord (= 3.0.0, runtime)
activeresource (= 3.0.0, runtime)
activesupport (= 3.0.0, runtime)
bundler (~> 1.0.0, runtime)
railties (= 3.0.0, runtime)

Rails auf Rubyforge
Rails auf Github