2010-04-22 7 views
5

Wiem, że WSDL służy do definiowania usług sieci Web opartych na SOAP, ale w większości WSDL widziałem w sieci, w WSDL jest zdefiniowany również RESTful "usługa sieci Web" -http :wiążący.Jak wygenerować klienta RESTful w JAVA dla REST zdefiniowanego w WSDL

Do generowania klienta dla SOAP Użyłem narzędzia wsimport z JAX-WS (generuje również klasy klientów dla REST, ale nie działa).

Pytanie brzmi, jak wygenerować klienta REST na podstawie WSDL?

Odpowiedz

3

Nigdy nie słyszałem o nikim korzystającym z WSDL do generowania klientów REST. WADL tak, ale nie WSDL.

W każdym razie generowanie klientów dla usług REST nie ma sensu. Jeśli myślisz, że chcesz to zrobić, to tracisz zalety REST i starasz się przestrzegać ograniczeń REST, co spowoduje, że wykonasz dodatkową pracę za darmo.

+0

Czytałem również w Internecie, że WSDL nie ma służyć do definiowania REST. Ale w wielu (naprawdę wielu) znalazłem opis REST. Na przykład: http://www.webservicex.com/globalweather .asmx? WSDL http://www.webservicex.net/WeatherForecast.asmx?wsdl – Milan

+0

To interesujące. Słyszałem, że ostatnie wersje WSDL mogą opisywać HTTP apis, ale nigdy nie widziałem, żeby był używany. Nadal uważam, że takie dokumenty metadanych są zupełnie niepotrzebne i potencjalnie szkodliwe dla systemów REST. –

+0

Duży +1 do odpowiedzi Darrela. Jeśli klienci polegają na opisach usług uzyskanych w czasie projektowania, twój system nie jest RESTful. –

1

Właściwie możesz automatycznie wygenerować SOAP, taki jak skrót dla JAX-RS, ale używa on WADL, który moim zdaniem jest wariantem WSDL.

Apache CXF does this a jeśli to nie działa, automatycznie utworzy również punkty końcowe SOAP i klientów SOAP.

0

Możesz użyć RestDescribe do generowania i kompilowania WSDL, możesz generować klientów za pomocą php, ruby, python, java i C#. Generuje czysty kod i istnieje dobra zmiana, że ​​trzeba trochę go poprawić po generowaniu kodu, można znaleźć dobrą dokumentację i ukryte myśli za narzędziem here.

Istnieje kilka interesujących i przydatnych WADL tools wymienionych na Wintermute.

0

IBM Developer network: WSDL2 can describe REST services.

myślę programistów w nurt jest święta wojna SOAP (klasyczny) - usługi REST. Nikt nie chce tej wojny, te koncepcje mogą współistnieć - widzę, że jest to opinia nie tylko mojej i niewielu osób, ale ma poparcie w standardach.