Budowanie usługi www pozostała DROŻNA

Source : http://xfront.com/REST-Web-Services.html

Roger L. Costello

Będę najpierw krótkie wprowadzenie do odpoczynku, a następnie opisz jak budować serwisy www w stylu wypoczynku.

Jaka jest reszta?

Reszta to termin ukuty przez Roya Fielding w doktoranckich dysertacji [1] opisują styl architektury systemów sieciowych. Reszta to akronim krăłlewskim reprezentacyjne Państwo przesłać.

Dlaczego jest to tak zwane Państwo Przedstawicielskie Transfer?

Web sklada sie z zasobów. Zasób to każdy przedmiot zainteresowania. Na przykład samoloty Boeing Corp może określić 747 resource. Klienci mogą uzyskać dostęp do tego zasobu ten adres URL:

Top of Form

Http://www.boeing.com/aircraft/747

Dół formularza

Reprezentacja zasób zostanie zwrócone (np. Boeing747.html). Reprezentacja miejsc aplikacji klienckiej w państwie . Wynik client przemierzając hyperlink Boeing747.html jest inny zasób jest dostępny. Nowe reprezentacyjne miejsca aplikacji klienckiej do jeszcze innego państwa. W ten sposób aplikacja kliencka zmienia (transfers) państwo z każdego zasobu reprezentacja –> Państwo Przedstawicielskie Transfer!

Tutaj jest Roy Fielding, wyjaśnienie znaczenia twórczości nieprzedstawiającej stanu transferu:

“Państwo Przedstawicielskie Transfer ma przywołują obraz tego, jak dobrze zaprojektowana aplikacja zachowuje się: sieć stron www (wirtualne państwo-machine), w którym użytkownik się rozprzestrzeniało poprzez aplikację poprzez wybranie łącza (migracje), w wyniku czego na następnej stronie (reprezentujący następny stan aplikacji) są przesyłane do użytkownika i świadczonych na ich wykorzystanie”.

Motywacja do reszty

Motywacją do reszta była do uchwycenia cech Web, która dokonała udanej www. Później cechy te są używane w celu naprowadzenia ewolucji sieci.

Reszta – stylem architektonicznym, a nie standardowe

Odpoczynek nie jest normą. Użytkownik nie będzie widział W3C gaszeniu reszta specyfikacji. Użytkownik nie będzie widział IBM czy Microsoft czy slonce sprzedających a reszta Developer’s toolkit. Dlaczego? Bo reszta jest po prostu stylem architektonicznym. Nie możesz butelkować czy stylu. Można jedynie ją zrozumieć, i projektować serwisy www w tym stylu. (analogicznie do client-server w stylu architektonicznego. Nie ma w środowisku klient-serwer standard).

Podczas odpoczynku nie jest standardowy, nie ma ona zastosowania norm:

  • HTTP
  • URL
  • XML/HTML/GIF/JPEG/etc (reprezentacje zasobu)
  • Text/xml, text/html, image/gif, image/jpeg, etc (Typy MIME)

Klasyczny System ODPOCZYNKU

Internet to reszta systemu! Wiele z tych serwisów internetowych, które zostały za pomocą tych wielu lat – książka-zlecanie usług, usług wyszukiwania, online dictionary usług, etc – to reszta opartych na Web services. Ach, masz już z resztą budynku, pozostałe usługi i możesz nawet nie wiedzieć.

Reszta związana jest z “big picture” w Internecie. Nie opracować szczegóły realizacji (np. za pomocą Servlety Java lub CGI aby implementował Web service). Tak więc spójrzmy na przykład tworzenie Web service od reszty “big picture” perspektywy.

Magazynu Web Services

Magazynu części, Inc (fikcyjne spółki) wdrożyła usługi sieci web, aby umożliwić swoim klientom:

  • Pobierz wykaz części
  • Uzyskaj szczegółowe informacje na temat poszczególnych części
  • Wyślij zamówienie zakupu (PO)

Rozważmy, w jaki sposób każda z tych usług są zaimplementowane w wyśmienity sposób.

Pobierz wykaz części

Serwis internetowy udostępnia adres URL do listy części zasobu. Na przykład, klient będzie wykorzystywał ten adres URL, aby uzyskać listę elementów:

Top of Form

Http://www.parts-depot.com/parts

Dół formularza

Zwróć uwagę, że “jak” serwis internetowy generuje listę części jest całkowicie przejrzysty dla klienta. Wszystkie klient wie, że jeśli on/ona podnosi wyżej URL, a następnie dokument zawierający listę części zostanie zwrócona. Od czasu wdrożenia jest przezroczyste dla klientów, Magazynu jest bezpłatna do modyfikacji samej implementacji tego zasobu, bez wpływu na klientów. Jest to luźne połączenie.

Oto dokument, że klient otrzyma:

Top of Form

<?xml version=”1.0″ ?>

<p:części xmlns:p=”http://www.parts-depot.com”

Xmlns:xlink=”http://www.w3.org/1999/xlink”>

<element id=”00345″ xlink:href=”http://www.parts-depot.com/parts/00345″/>

<element id=”00346″ xlink:href=”http://www.parts-depot.com/parts/00346″/>

<element id=”00347″ xlink:href=”http://www.parts-depot.com/parts/00347″/>

<element id=”00348″ xlink:href=”http://www.parts-depot.com/parts/00348″/>

</p:części>

Dół formularza

[przyjmijmy, że negocjacja treści służby ustaliły, że klient chce reprezentacji jako XML (machine-to-machine processing).] Zauważ, że lista części zawiera również łącza, aby uzyskać szczegółowe informacje na temat poszczególnych części. Jest to najważniejsza cecha odpoczynku. Klient przechodzi z jednego stanu do następnego poprzez badanie i wybór spośród alternatywnych adresów URL w dokument odpowiedzi.

Uzyskaj szczegółowe informacje o pozycji

Serwis internetowy udostępnia URL-a do każdej części zasobu. Na przykład, oto jak klient żąda 00345 pozycji:

Top of Form

Http://www.parts-depot.com/parts/00345

Dół formularza

Oto dokument, że klient otrzyma:

Top of Form

<?xml version=”1.0″ ?>

<p:xmlns:p=”http://www.parts-depot.com”

Xmlns:xlink=”http://www.w3.org/1999/xlink”>

<element ID>00345</Part-ID>

<Name>Widget-A</Name>

<description>Ta część jest wykorzystywana w obrębie zespołu frap</description>

<specyfikacji xlink:href=”http://www.parts-depot.com/parts/00345/specification”/>

<UnitCost waluta=”DOL”>0.10</UnitCost>

<Ilość>10</Ilość>

</p:element>

Dół formularza

Ponownie obserwować jak te dane są powiązane z jeszcze większej ilości danych – specyfikacja ta część może być znaleziona przez przecinające hiperłącze. Każdy dokument odpowiedzi pozwala klientowi na zjedź w dół aby uzyskać bardziej szczegółowe informacje.

Prześlij P.O.

Serwis internetowy udostępnia adres URL do złożenia zamówienia. Klient tworzy p.o.instancji dokument, który jest zgodny z p.o.schamat tego magazynu zaprojektowała (i nagłośniona w dokumencie WSDL). Klient twierdzi P.O..xml jako plik payload HTTP POST.

Zz service odpowiada na HTTP POST z adresem URL składane ZZ. Tym samym, zamawiający może pobierać po dowolnym czasie (do aktualizacji/edycji). Zz stał kawałek informacji, która jest dzielona między klientem i serwerem. Udostępniane informacje (ZZ) jest podany adres (URL) przez serwer i jest wystawiona jako Web service.

Logiczne URL wzg fizycznych adresów URL

Zasób to ideowe jednostki. Reprezentacja jest konkretnym przejawem tego zasobu. Ten adres URL:

Top of Form

Http://www.parts-depot.com/parts/00345

Dół formularza

Jest logicznym URL, a nie fizycznego adresu URL. Wynika stąd, że nie musi być, na przykład, statyczna strona HTML dla każdej części. W rzeczywistości, gdyby nie było milion części a następnie milionów statycznych stron HTML nie byłby bardzo atrakcyjny wygląd.

[Szczegóły realizacji: Magazynu może wdrożyć service, który uzyskuje szczegółowe dane na temat poszczególnych części poprzez aktywizowanie Java Servlet, który analizuje string po nazwie hosta, wykorzystuje ten numer katalogowy do zapytania do bazy danych części, formułują wyniki zapytania jako XML, a następnie wrócić do XML jako plik payload HTTP response].

Jako kwestia stylu URL nie powinny ujawniać wykonania techniki. Musisz zmienić swoje życie, bez wpływu na klientów lub tez błędne adresy URL.

Pozostałe usługi internetowe charakterystyka

Oto cechy odpoczynku:

  • Omówienie: pociągnij interakcję style: zużywaniu elementów pociągnąć reprezentacje.
  • Przynaleznosci: każdego żądania od klienta do serwera muszą zawierać wszystkie informacje niezbędne do zrozumienia, a nie mogą skorzystać z jakiegokolwiek kontekstu zapisane na serwerze.
  • Cache: w celu poprawy wydajności sieci odpowiedzi musi być zdolna do oznaczonego jako zdefiniowania jako pamięć podręczna lub braku zdefiniowania jako pamięć podręczna.
  • Jednolity interfejs: wszystkie zasoby są dostępne za pomocą standardowego interfejsu (np. HTTP GET, POST, PUT, DELETE).
  • O nazwie zasoby – system składa się z zasobów, które są nazwane z wykorzystaniem adresu URL.
  • Połączonych zasobów – reprezentacje reprezentacje zasoby są połączone ze sobą za pomocą URL, umożliwiając tym samym klienta do przejścia od jednego stanu do drugiego.
  • Warstwowe elementy – pośredników, takich jak serwery proxy, Serwery cache, bramy, etc, może być umieszczona pomiędzy klientami i zasobów do obsługi wydajności, zabezpieczeń, etc.

Zasady Pozostałe usługi sieci Web Design

  1. Kluczem do tworzenia usług www a resztą sieci (czyli www) jest identyfikacja wszystkich podmiotów konceptualnych, które chcesz wystawiać jako usługi. Powyżej widzieliśmy przykłady zasobów: lista części, szczegółowe dane pozycji, zamówienie zakupu.
  2. Tworzenie adresu URL do poszczególnych zasobów. Zasoby powinny być rzeczowniki, czasowniki. Na przykład, nie używaj tego:

Top of Form

Http://www.parts-depot.com/parts/getPart?id=00345

Dół formularza

Uwaga czasownika, getPart. Zamiast tego, użyć rzeczownika:

Top of Form

Http://www.parts-depot.com/parts/00345

Dół formularza

  1. Skategoryzowanie posiadanych zasobów w zależności od tego, czy klienci mogą po prostu otrzymać reprezentacja zasobu, czy klienci mogą zmienić (dodać się) do zasobu. Dla byłego, żeby te zasoby dostępne poprzez HTTP GET. Na później, żeby te zasoby dostępne za pomocą HTTP POST i Put, i/lub usunąć.
  2. Wszystkie zasoby dostępne poprzez HTTP GET powinno być efektem ubocznym jest bezpłatne. Oznacza to, że zasób powinien wrócić do reprezentacji zasobu. Odwołując się do zasobu nie powinna powodować zmianę przydziału zasobów.
  3. Żaden Mężczyzna/kobieta jest wyspą. Podobnie, brak reprezentacji powinien być wyspą. Innymi słowy, umieścić hiperłącza w ramach zasobu zapewnień, aby umożliwić klientom zjedź w dół aby uzyskać więcej informacji, i/lub w celu uzyskania odpowiednich informacji.
  4. Konstrukcja do ujawniania danych stopniowo. Nie ujawniaj wszystkiego w pojedynczy dokument odpowiedzi. Zawierają hiperłącza aby uzyskać więcej szczegółów.
  5. Określ format danych odpowiedzi za pomocą schema (DTD, W3C Schema RelaxNG, lub Schematron). Dla tych usług, które wymagają POST lub PUT, również dostarczysz do określania formatu odpowiedzi.
  6. Opisz, w jaki sposób Twoje usługi są przywoływane za pomocą WSDL dokument, lub po prostu dokument HTML.

Podsumowanie

W tym artykule opisano resztę jako styl architektoniczny. W rzeczywistości, to styl architektoniczny www. Reszta opisuje, co sprawia, że w sieci działają dobrze. Przyległy do reszty zasad uczyni twoje usługi działają dobrze w kontekście sieci WWW.

W następnym artykule napiszę o ewolucji sieci Web przy użyciu pozostałych zasad.

Potwierdzenie

Dzięki Robert Leftwich i Philip Eskelin dla nich bardzo pomocne komentarze w tworzeniu tego dokumentu.