2011-07-26 23 views
32

Wdrażam usługę internetową i wdrożyłem zarówno wersję REST, jak i SOAP, aby zobaczyć, które odpowiadają moim potrzebom. Postanowiłem wybrać REST ze względu na jego prostotę i prawdopodobnie będę rozwijał aplikację na iPhone'a, aby ją wykorzystać. Moje pytanie jest naprawdę proste, czy jest możliwe utworzenie pliku WSDL lub WADL dla mojej usługi REST i czy jest to konieczne?Usługa WWW REST usługi WSDL?

Dzięki

Odpowiedz

35

Dzięki dobrej usłudze RESTful nie jest konieczne generowanie dla niej WADL (nie mówiąc już o dużo mniej dopasowanym WSDL), ponieważ będzie on sam się opisywał. Przez "samoopisanie" mam na myśli, że dostarczy dokumenty opisujące wszystkie (odpowiednie) zasoby publikowane przez usługę i że użycie standardowego żądania HTTP OPTIONS na którymkolwiek z nich da podstawowe informacje o tym, jak interakcje. Jedyną realną korzyścią z używania WADL jest to, że pozwala on wywołującemu odkryć schematy złożonych dokumentów, które muszą działać z wyprzedzeniem; Sam REST nie zapewnia tam żadnej pomocy (a niektórzy RESTians uważają, że robienie takich rzeczy przynosi efekt przeciwny do zamierzonego, z czym nie jestem pewien, czy się z nim zgadzam).

Oczywiście nie przechwytuje to głębszych wzorców interakcji, ale nie ma też znaczącej większości opisów WSDL usług, więc nie ma tam żadnych zmian.


Dla przypomnienia, używam apache cxf do tworzenia usług RESTful (przy użyciu JAX-RS) oraz która publikuje WADL dla nich.

3

Oczywiście jest to możliwe, ale na odpowiedź, jeśli jest to konieczne, czy nie, nie dostarczyły wystarczającej informacji.

Proponuję zapoznać się z witryną developerworks IBM, która zawiera interesujący artykuł na temat: http://www.ibm.com/developerworks/webservices/library/ws-restwsdl/
Mam nadzieję, że pomoże.


Ściśle z WSDL 1.0 można”t, ale z WSDL2 można, ponieważ został opracowany dla zaakceptować tego rodzaju żądanie,

” ... WSDL 2.0 w WS-I profil odpowiadający wymaganiom usługi WWW w stylu REST dla usługi REST w stylu RET. Dodanie polecenia GET w SOAP 1.2 i kilku dodatkach w WSDL 2.0, takich jak bezpieczeństwo operacji, możliwość opisu komunikatów odnoszących się do innych usług WWW oraz poprawionego powiązania HTTP teraz umożliwiają opisywanie usług internetowych w stylu REST. ", Arthur Ryman.

1

Myślę, że WSDL nie jest odpowiedni dla REST i WADL nie jest konieczne. HTTP ujawnia już to, co WADL mógłby opisać w osobnym pliku. Na przykład nagłówek "Zezwalaj" zwraca dozwoloną metodę HTTP, a Negocjacja zawartości służy do wyboru właściwego formatu.

3

Jako, że @GiuliaDiFederico powiedziała "oczywiście, że to możliwe" (z WSDL2), pokazuje dobry link źródłowy o tym, jak to zrobić. @DonalFellows poprzez drugiej strony nie zachęca do korzystania z WSDL ...

myślę wykorzystanie WSDL jest kwestia

  • Formalizacja LEVEL: z WSDL można wyrazić więcej formalnie wszystkie istotne szczegóły twojego webservice.
  • POZIOM STABILNOŚCI: jeśli potrzebujesz długoterminowych umów i unikasz ryzyka zmian w środowisku, w którym twój serwis jest narażony, WSDL pomaga zachować stabilność.
  • POTRZEBA STANDARDÓW: jeśli klienci wolą usługi internetowe, które można uznać za "zgodne ze standardami", należy zastosować standardy. Jedynym jest W3C, a W3C wymaga XML, SOAP i WSDL.
5

Podano formalną rekomendację dla REST documentation standard na podstawie WSDL 2.0. Oto cytat z IBM article:

Określenie usług sieci Web jest zazwyczaj związane z Operation lub działania usług opartych używając mydła i WS * standardami, takimi jak WS-Addressing i WS-Security. Termin Usługi sieci Web REST ogólnie odnosi się do opartej na zasobach architektury usług WWW, która używa HTTP i XML. Każdy z tych architektonicznych stylów usług sieciowych ma swoje miejsce, , ale do niedawna standard WSDL nie obsługiwał obu stylów zarówno w stylu . Powiązanie HTTP WSDL 1.1 było niewystarczające do opisania komunikacji z HTTP i XML, więc nie było możliwości oficjalnego opisania usług sieci Web REST za pomocą WSDL. Publikacja WSDL 2.0, , która została zaprojektowana z myślą o usługach REST Web, jako o World Wide Web Rekomendacja konsorcjum (W3C) oznacza, że ​​obecnie istnieje język do oznaczania usług sieciowych REST w języku .