Budynek ODPOCZYNEK Usługi internetowe Droga


Original: http://www.xfront.com/REST-Web-Services.html

Roger L. Costello

Ja najpierw przedstawić krótkie wprowadzenie do REST, a następnie opisać, jak zbudować usług sieci Web w stylu REST.

 

Czym jest REST?
Reszta to termin ukuty przez Roy Fielding jego Ph.D. Rozprawa [1] do opisania stylu architektury systemów sieciowych. REST jest to skrót od Reprezentacyjne transfer państwa.
Dlaczego nazywa się Representational State transfer?
Web składa się z zasobów. Zasobów jest każdy przedmiot zainteresowania. Na przykład, Boeing Corp Samolot 747 może określać zasób. Klienci mogą uzyskać dostęp do zasobów z tego adresu URL:

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

Reprezentowanie źródła zawraca (np. Boeing747.html). Reprezentacja umieszcza aplikację kliencką w stanie. Wynik klienta przechodzącego hiperłącze w Boeing747.html inny zasób jest dostępny. Nowa reprezentacja umieszcza aplikację kliencką do kolejnego stanu. Tak więc, zmiany aplikacji klienta (transfery) z każdej reprezentacji stanu zasobów -> Representational State Transfer!

Oto wyjaśnienie Roy Fielding znaczenia Representational State Transfer:

„Representational State Transfer ma na celu wywołać obraz, jak dobrze zaprojektowana aplikacja internetowa zachowuje: sieć stron internetowych (wirtualne państwo-Machine), w którym użytkownik przechodzi przez aplikację wybierając linki (przejścia między stanami), w wyniku Następna (reprezentujący następną stanu stosowania) są przesyłane do użytkownika i świadczonych za ich użytkowanie. “

 

Motywacja do odpoczynku
Motywacja do odpoczynku było uchwycić cechy sieci Web, które wykonane pomyślnie. Następnie cechy te są wykorzystywane do prowadzenia ewolucji sieci.
REST – styl architektoniczny, nie standardowa
REST nie jest standardem. Nie będzie widać W3C gasił specyfikację REST. Nie zobaczysz IBM czy Microsoft lub Sun sprzedaży zestaw narzędzi odpocząć dewelopera. Dlaczego? Bo reszta to tylko styl architektoniczny. Butelka nie może się tego stylu. Możesz tylko zrozumieć i zaprojektować swoje usługi internetowe w tym stylu. (Analogicznie do klient-serwer stylu. Nie ma standardowy klient-serwer.)

Podczas gdy reszta nie jest standardem, to nie używać norm:

HTTP
URL
XML / HTML / GIF / JPEG / etc (zasobów Reprezentacje)
text / xml, text / html, image / gif, image / jpeg, itp (typy MIME)

Klasyczny system REST
WWW jest system REST! Wiele z tych usług internetowych, które zostały z wykorzystaniem tych wielu lat – book-zamawiania usług, usługi, usługi wyszukiwania słownik online, itp. – są oparte na REST Web services. Niestety, był używany REST, budowaniu usług REST i nawet nie wiedzieć.

REST jest zaniepokojona „duży obraz“ w sieci. To nie zajmuje się szczegółami implementacji (np. z wykorzystaniem apletów Java lub CGI do wykonania usługi sieci Web). Więc spójrzmy na przykład tworząc usługę internetową od reszty „Big Picture“ perspektywy.
Części Depot Web Services
Części Depot, Inc (fikcyjne firmy) wdrożył niektórych usług internetowych, aby umożliwić swoim klientom:

otrzymać listę części
uzyskać szczegółowe informacje na temat określonej części
złożyć Zamówienia (PO)

Przyjrzyjmy się, jak każdy z tych usług są realizowane w spokojny sposób.
Pobierz lista części
Serwis internetowy udostępnia adres URL do zasobu listy części. Na przykład, klient będzie korzystać z tego adresu, aby otrzymać listę części:

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

Zauważ, że „jak“ usługa internetowa generuje listę części jest całkowicie przezroczysty dla klienta. Wszystko klient wie, że jeśli on / ona uważa, powyższy adres URL, a następnie dokument zawierający listę części jest zwracana. Ponieważ realizacja jest przejrzyste dla klientów, Części Depot może swobodnie modyfikować leżące u podstaw realizacji tego zasobu, bez wpływu na klientów. To luźne sprzęgło.

Oto dokument, który klient otrzymuje:

<? Xml version = „1.0“?>

[Załóżmy, że w drodze negocjacji zawartości serwis ustalił, że klient chce reprezentację w formacie XML (do przetwarzania maszyna-maszyna).] Należy zauważyć, że lista części zawiera łącza, aby uzyskać szczegółowe informacje na temat każdej z części. Jest kluczowym elementem REST. Transfery klientów z jednego stanu do następnego poprzez analizę i wybór spośród alternatywnych adresów URL w dokumencie odpowiedzi.
Szczegółowe dane Part
Serwis internetowy udostępnia adres URL do każdego zasobu części. Na przykład, oto jak klient żąda części 00345:

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

Oto dokument, który klient otrzymuje:

<? Xml version = „1.0“?>
00345
Widget-
Ta część jest używana w zespole frap

0.10
<ilość> 10

Ponownie obserwować, jak dane te są związane z jeszcze więcej danych – określenie dla tej części można znaleźć przez przejeżdżające hiperłącze. Każdy dokument odpowiedź pozwala klientowi drążyć, aby uzyskać bardziej szczegółowe informacje.
Prześlij PO
Serwis internetowy udostępnia URL złożyć PO. Klient tworzy dokument instancji PO, który jest zgodny ze schematem PO, że Części Depot został zaprojektowany (i opublikowane w dokumencie WSDL). Klient twierdzi po.xml jako ładunek HTTP POST.

Usługa PO odpowiada na HTTP POST z adresu URL do przedłożonego PO. W ten sposób, klient może odzyskać PO dowolnym późniejszym terminie (do aktualizacji / edycji). PO stała się informacja, która jest dzielona między klientem a serwerem. Wspólne informacje (PO) jest podany adres (URL) przez serwer i jest narażony jako usługi sieci Web.
Logicznych adresów URL w porównaniu Fizycznych
Zasobów jest koncepcyjny podmiot. Reprezentacja jest konkretnym przejawem zasobu. Ten adres URL:

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

Adres URL jest logiczne, a nie fizyczne URL. Tak więc, nie musi być, na przykład, statyczne strony HTML dla każdej partii. W rzeczywistości, jeśli nie było to milion milion części statycznych stron HTML nie byłby bardzo atrakcyjny design.

[Szczegóły Realizacja: Części Depot może wdrożyć usługę, który otrzymuje szczegółowe dane na temat określonej części przez zastosowanie Java Servlet, który analizuje ciąg po nazwie hosta, wykorzystuje numer części do przeszukiwania bazy danych części, formułuje wyniki kwerendy w formacie XML, a powróci XML jako ładunek odpowiedzi HTTP.]

W gruncie adresów URL typu nie powinny ujawnić technikę wykonania używany. Musisz być wolny zmienić implementację bez wpływu lub ma wprowadzające w błąd klientów adresy.

 
Charakterystyka REST usług sieci Web
Oto cechy REST:

Klient-Serwer: styl oparty pociągowy interakcja: zużywa składniki wyciągnąć reprezentacje.
Bezpaństwowcem: każde żądanie od klienta do serwera musi zawierać wszystkie informacje niezbędne do zrozumienia wniosku, i nie mogą skorzystać z każdej zapisanej kontekście na serwerze.
Cache: poprawić odpowiedzi efektywności sieci musi być zdolna oznaczone jako Cacheable lub nie Cacheable.
Jednolity interfejs: wszystkie zasoby są dostępne z interfejsem rodzajowe (np. HTTP GET, POST, PUT, DELETE).
Nazwanych zasobów – System składa się z zasobów, które są nazwane przy użyciu adresu URL.
Połączonych ze sobą reprezentacje zasobów – reprezentacje zasoby są połączone za pomocą adresów URL, co umożliwia klientowi w celu przejścia od jednego stanu do drugiego.
Warstwowe elementy – pośredników, takich jak serwery proxy, serwery pamięci podręcznej, bramy, itp., można włożyć między klientami i zasobami w celu wspierania wydajności, bezpieczeństwa, itp.

Zasady projektowania usług sieci WWW RESZTA
1. Kluczem do tworzenia Web Services w sieci REST (tj. sieci Web) jest zidentyfikowanie wszystkich koncepcyjnych podmiotów, które chcesz wystawiać jako usługi. Powyżej widzieliśmy przykłady zasobów: lista części, część szczegółowych danych, zamówienia.

2. Utworzyć adres URL do każdego zasobu. Zasoby powinny być rzeczowniki, a nie czasowniki. Na przykład, nie należy korzystać z tego:

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

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

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

3. Kategoryzować zasoby według tego, czy klienci mogą po prostu otrzymać reprezentację zasobu, lub czy klienci mogą modyfikować (dodawać do) zasobu. Dla pierwszego, aby te zasoby dostępne za pomocą HTTP GET. Na później, aby te zasoby dostępne za pomocą HTTP POST, PUT, i / lub DELETE.

4. Wszystkie zasoby dostępne przez HTTP GET powinna być efektem ubocznym darmo. Oznacza to, że zasób powinien po prostu wrócić do reprezentacji zasobu. Powołując się na źródło nie powinno spowodować zmianę zasobu.

5. Żaden mężczyzna / kobieta jest wyspą. Podobnie, nie powinno być reprezentacja wyspa. Innymi słowy, umieścić hiperłącza w ramach reprezentacji zasobów, aby umożliwić klientom drążyć uzyskać więcej informacji, i / lub w celu uzyskania informacji związanych.

6. Projektujemy ujawnić dane stopniowo. Nie ujawniają wszystkiego w jednym dokumencie odpowiedzi. Zapewniają hiperłącza wyświetlić więcej szczegółów.

7. Określić format danych odpowiedzi za pomocą schematu (DTD, W3C Schema, RelaxNG lub Schematron). Dla tych usług, które wymagają POST lub umieścić do niej, także schemat, aby określić format odpowiedzi.

8. Opisać, jak twoje usługi mają być powoływane przy użyciu dokumentu WSDL, lub po prostu dokument HTML.

 

Streszczenie
W tym artykule opisano REST jako stylu architektonicznego. W rzeczywistości, jest to styl architektoniczny z sieci. REST opisuje co sprawia Web działa dobrze. Przestrzeganiu zasad REST sprawi, że usługi działają dobrze w kontekście Web.

W kolejnym artykule będę pisać o ewolucji sieci WWW przy użyciu zasad REST.
Podziękowanie
Dzięki Robert Leftwich i Philip Eskelin za bardzo pomocne uwagi w tworzenie tego dokumentu.

Comments are closed.