16.4. Jak napisać klienta SOAP?

Podziękowania dla Kevina Marshalla

Problem

Chcemy wywołać zdalną metodę za pośrednictwem usługi sieciowej SOAP.

Rozwiązanie

Można skorzystać ze sterownika SOAP RFC dostępnego w standardowej bibliotece języka Ruby.

Poniższy prosty program wyświetla cytat dnia. Program ten wykorzystuje sterownik SOAP RFC w celu połączenia się z usługą sieciową pod adresem codingtheweb.com.

require 'soap/rpc/driver'
driver = SOAP::RPC::Driver.new(
            'http://webservices.codingtheweb.com/bin/qotd',
            'urn:xmethods-qotd')

Po skonfigurowaniu sterownika zdefiniujemy metodę usługi sieciowej, którą zamierzamy wywołać (getQuote). Następnie można ją wywołać tak, jak standardową metodę języka Ruby i wyświetlić wyniki:

driver.add_method('getQuote') ...

Get Ruby. Receptury now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.