Integracja SOAP a REST

0

Wiekszosc naszych klientow korzysta z Resta, integracja naszego projektu polegala na napisaniu kodu, ktory dostarcza odpowiednie parametry do ich API i wykorzystuje wyniki zwrocone przez ich metody restowe.

Nasz kolejny klient uzywa SOAP'a. Czy tu sprawa z uzyciem takiego api u nas moze sie skomplikowac, czy tez sprowadzi sie do obsluzenia metod udostepnianych przez klienta ?

0

hmm.. trochę dziwne pytanie, bo przecież nie wiemy jak bardzo "zależni" jesteście od konkretnego protokołu.
Bierzesz wsdl'a, generujesz z niego i .... wywołujesz metodę od cała filozofia, co niby ma się skomplikować ?

0

wsimport na WSDL, generujesz klienta i używasz. Praca z SOAP to bułka z masłem. Pomijając kwestie wydajnościowe i overhead na ciężki XML, który w wewnętrznych projektach często i tak nie ma znaczenia, jest to dość przyjemny protokół, szczególnie jeśli chodzi o generowanie klientów.

0

Po prostu nigdy nie pracowalem z SOAP'em :P

Podsumowaujac, biore wsimport wygeneruje kod (api naszego klienta), dociagne do mojego projektu. Od tego momentu praca już bedzie wygladac jak z moim ulubionym restem ?

0

Praca z RESTem wygląda różnie. Czasem używa się JAX-RS Client API, czasem Apache HttpClient.

Generalnie ja robiłem tak z SOAP, że budowałem sobie service, który korzystał klasy z wygenerowanego kodu za pomocą wsimport (taki wrapper). A service używałem tak jak zawsze, za pomocą DI. Podobne trochę do obsługi bazy danych, tyle że zamiast bazy danych był ws.

Jeśli chodzi o klasy wsimport to są one budowane przy każdym budowaniu projektu (maven). Jest to o tyle fajne, że jeśli WSDL się zmieni (np. zostanie dodana nowa metoda), to wystarczy go zaktualizować, a maven zbuduje odpowiednie klasy odpowiedzialne za komunikację.

Według mojego subkietywnego odczucia praca z WSDL jest szybsza niż praca z REST (JAX-RS 2.0 Client API) w przypadku komunikacji Java - Java.

0

"Jeśli chodzi o klasy wsimport to są one budowane przy każdym budowaniu projektu (maven). Jest to o tyle fajne, że jeśli WSDL się zmieni (np. zostanie dodana nowa metoda), to wystarczy go zaktualizować, a maven zbuduje odpowiednie klasy odpowiedzialne za komunikację."

Jak to zrobic ? Ja zakladalem, ze wygeneruje sobie klasy API za pomoca wsimport i dociagne je do kodu projektu i bede uzywal.

Jak to zrobic, by automatycznei je generoac przy budowaniu i wrzucac w odpowiednio miejsce ?

0

Dopisać sobie jakiś task(tak przynajmniej było u mnie) - antowy task, i przekopiowywanie wygenerowanego kodu gdzie trzeba.

Jakim cudem zostałeś programistą zadając takie pytania ? bo coś mi tu śmierdzi...

0

"Jakim cudem zostałeś programistą zadając takie pytania ? bo coś mi tu śmierdzi... "

I to zarabiam 15k. Po prostu jestem leniwy, a czasem warto zapytac :P

0

Jest do tego plugin do Mavena. Jeśli korzystasz z NetBeans to IDE pomogą w konfiguracji wsimport (polecam). Ja WSDL trzymam w katalogu z projektem (np. src/main/resources/wsdl).

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