Ogarnąłem RESTy i nie mogę zrozumieć SOAP.

0

Pobawiłem się trochę RESTem i jest dla mnie on zrozumiały. Zacząłem teraz robić sobie SOAPy i to już jest większa abstrakcja .. Nie wiem czy dobrze zrozumiałem, ale w tym podejściu chodzi o to, że udostępnia się / konsumuje intefejsy serwisów ? W sensie, że ja np mam napisany jakiś serwis BooksService i chciałbym go udostępnić SOAPowo, to po drugiej stronie konsumując ten serwis normalnie sobie wywołuje metody tego serwisu ? Np. booksService.getBook(2L) ? Tylko skąd po stronie konsumenta mam wziąć klasę tego intefejsu BooksService ? Do tego dochodzą tam jeszcze jakieś dokumenty xsd i WSDL. Ktoś mógłby mi to rozjaśnić ? Też nie rozumiem czym idą te dane. No bo przy REST to jest łatwe - wszystko idzie w urlu albo w body, a tutaj ?

1

Źle to rozumiesz.
XSD/wsdl to jedyne rzeczy które udostępnia SOAPowy serwis. Tam wcale nie musi być żadnych klas, bo przecież implementacja może być w różnych jezykach! Klient do serwera przesyła XML z odpowiednimi parametrami (tak samo jak w REST wysyłasz typ zapytania GET, POST, PUT... i parametry) a serwer tego xmla sobie parsuje i wykonuje operacje.
To w jaki sposób klient sobie będzie generował te XMLe i jak je wysyłał to jest sprawa klienta. Jest wiele narzędzi które generują na podstawie xsd i wsdla klasy dla Javy, ale one nie maja nic wspólnego z klasami na serwerze który to potem wykonuje. A te wygenerowane klasy po prostu proxują operacje, więc ty w tym kodzie robisz jakieś booksService.getBook() a ten wygenerowany z wsdla kod na podstawie tego buduje odpowiedniego XMLa i wysyła do serwera.

0

Przejrzyj sobie np. ten tutorial: to bedziesz mial jakies wyobrazenie o co chodzi

0

Ok czyli WSDL/XSD używa się wymiennie tak ? Czyli to polega na tym, że każde zapytanie to utworzenie dokumentu XML, przesłanie pliku XML na serwer, odczytanie go i wykonanie jakiejś operacji tak ?

0

Czyli to polega na tym, że każde zapytanie to utworzenie dokumentu XML, przesłanie pliku XML na serwer, odczytanie go i wykonanie jakiejś operacji tak ?

Tak

Ok czyli WSDL/XSD używa się wymiennie tak ?

Nie. WSDL to jest opis endpointu, czyli jakie operacje udostępnia, jakie typy parametrów itd. XSD to jest opis dokumentu XML. W pewnym sensie wsdl to jest plik XSD.

0

Dzięki @Shalom, dzięki @WhiteLightning - ogarnę ten film i w razie jeszcze jakiś niejasności odezwę się.

1 użytkowników online, w tym zalogowanych: 0, gości: 1