Najlepszy samouczek Ruby Web Services Aplikacje - SOAP4R W 2024 r. W tym samouczku możesz dowiedzieć się Co to jest mydło?,instalacja SOAP4R,SOAP4R usługi,klient SOAP4R,
(SOAP, napisane dla Simple Object Access Protocol) Simple Object Access Protocol to specyfikacja protokołu wymiany danych.
SOAP jest prosta Protokół A oparty na języku XML, który umożliwia aplikacji do wymiany informacji za pośrednictwem protokołu HTTP.
Simple Object Access Protocol, to specyfikacja protokołu wymiany danych, jest lekki, prosty, oparty na XML (podzbiór SGML mocy) Protokół, który jest przeznaczony do wymiany skonstruowany w internecie i utwardzania informacji.
Proszę zobaczyć więcej SOAP Tutorial: /soap/soap-tutorial .
SOAP4R Hiroshi Nakamura opracowany przez realizację SOAP dla aplikacji Ruby.
SOAP4R Pobieranie: http://raa.ruby-lang.org/project/soap4r/ .
Uwaga: Twoje środowisko Ruby może już zainstalowany komponent.
Pod Linuksem można zainstalować komponent używając gem, następujące polecenie:
$ gem install soap4r --include-dependencies
Jeśli jesteś w środowisku programistycznym okna, należy pobrać plik zip i zainstalować poprzez wykonanie install.rb.
SOAP4R obsługuje dwa różne rodzaje usług:
Ten poradnik pokaże Ci, jak zbudować niezależne usługi SOAP. Procedura jest następująca:
Aby osiągnąć swój oddzielny serwer, trzeba napisać nową klasę, która jest SOAP :: RPC :: StandaloneServer podkategorii:
class MyServer < SOAP::RPC::StandaloneServer plplplplplplpl. end
Uwaga: Jeśli chcesz napisać FastCGI na serwerze, a następnie trzeba rozszerzyć SOAP :: RPC :: klasę CGIStub, reszta programu pozostanie niezmieniona.
Następnie określają podejście Web Services, możemy zdefiniować następujące dwa sposoby, jeden jest sumą dwóch liczb, jeden podzielony przez liczbę dwóch:
class MyServer < SOAP::RPC::StandaloneServer plplplplplplpl. # 处理方法 def add(a, b) return a + b end def div(a, b) return a / b end end
Następnie dodajemy metody zdefiniowane na serwerze, zainicjować ujawniono sposób połączeń zewnętrznych:
class MyServer < SOAP::RPC::StandaloneServer def initialize(*args) add_method(receiver, methodName, *paramArg) end end
Oto opis każdego parametru:
parametry | opis |
---|---|
odbiornik | Obiekt, który zawiera nazwę metody metody. Jeśli zdefiniujemy metodę usługi w tej samej klasie, parametr jestsamo. |
methodName | Metoda RPC Nazwa żądania wywołania. |
paramArg | Parametr nazwa i tryb parametr |
Aby zrozumiećinoutiz parametrów, należy rozważyć następujące sposoby świadczenia usług, trzeba wprowadzić dwa parametry: inParam i inoutParam, funkcja zwraca trzy wartości po zakończeniu realizacji: retval, inoutParam, outParam:
def aMeth(inParam, inoutParam) retVal = inParam + inoutParam outParam = inParam . inoutParam inoutParam = inParam * inoutParam return retVal, inoutParam, outParam end
Publikacja zaproszenia, co następuje:
add_method(self, 'aMeth', [ %w(in inParam), %w(inout inoutParam), %w(out outParam), %w(retval return) ])
Wreszcie mamy instancję klasy pochodnej i wywołać metodę start, aby uruchomić usługę:
myServer = MyServer.new('ServerName', 'urn:ruby:ServiceName', hostname, port) myServer.start
Poniżej znajduje się opis parametru żądania:
parametry | opis |
---|---|
ServerName | Nazwa usługi, można wziąć swój ulubiony |
Urna: Ruby: ServiceName | Tutajurn: Ruby jest ustalona, ale można wziąć unikalnyServiceNameza usługi |
hosta | Określ nazwę hosta |
port | Port serwis internetowy |
Następnie Poprzez powyższe kroki, aby utworzyć usługę autonomicznego:
require "soap/rpc/standaloneserver" begin class MyServer < SOAP::RPC::StandaloneServer # Expose our services def initialize(*args) add_method(self, 'add', 'a', 'b') add_method(self, 'div', 'a', 'b') end # Handler methods def add(a, b) return a + b end def div(a, b) return a / b end end server = MyServer.new("MyServer", 'urn:ruby:calculation', 'localhost', 8080) trap('INT){ server.shutdown } server.start rescue => err puts err.message end
Po wykonaniu powyższego programu, rozpocząć słuchacza na porcie 8080 z lokalnych usług i naraża na dwa sposoby: dodawanie i div.
Następnie można wykonać tle tych usług:
$ ruby MyServer.rb&
Ruby używać SOAP :: RPC :: klienta klasy sterownika SOAP rozwoju. Dalej przyjrzymy się szczegółowo z wykorzystaniem protokołu SOAP :: RPC :: Klasa sterownika.
Usługa połączeń SOAP wymaga następujących informacji:
Następnie możemy zrobić krok do stworzenia klienta SOAP do powoływania się na powyższą metodę SOAP: add, Gr:
Możemy to nazwać nową metodę instancję SOAP :: RPC :: klasy kierowcy, co następuje:
SOAP::RPC::Driver.new(endPoint, nameSpace, soapAction)
Poniżej znajduje się opis parametrów:
parametry | opis |
---|---|
Endpoint | Usługa SOAP adres URL połączenia |
namespace | Nazw dla SOAP :: RPC :: obiektu kierowcy wszystkie RPC. |
SoapAction | Dla wartości pól nagłówka SoapAction HTTP. Jeśli łańcuch jest "" domyślnie jestzerowa |
SOAP :: RPC :: Kierowca dodać metodę usługi SOAP, możemy wywołać następujące metody tytułem przykładu SOAP :: RPC :: Kierowca:
driver.add_method(name, *paramArg)
Poniżej znajduje się opis parametrów:
parametry | opis |
---|---|
nazwa | Nazwa metody zdalnych usług internetowych |
paramArg | Parametr określić zdalnego programu |
Wreszcie, możemy użyć SOAP :: RPC :: instancji sterownika do wywoływania usług SOAP:
result = driver.serviceMethod(paramArgpl.)
Rzeczywiste usługi SOAP nazwa metody serviceMethod, paramArg dla lista parametrów metody.
Na podstawie powyższych kroków, możemy napisać następujący klienta SOAP:
#!/usr/bin/ruby -w require 'soap/rpc/driver' NAMESPACE = 'urn:ruby:calculation' URL = 'http://localhost:8080/' begin driver = SOAP::RPC::Driver.new(URL, NAMESPACE) # Add remote sevice methods driver.add_method('add', 'a', 'b') # Call remote service methods puts driver.add(20, 30) rescue => err puts err.message end
Przede po prostu wprowadzić Web Services Ruby. Jeśli chcesz wiedzieć więcej można zobaczyć oficjalny dokument: Ruby z Web Services