април 12, 2017

Градење на Веб-Услуги Остатокот Начин

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

Roger L. Costello

Роџер Л. Костело

Јас прв пат ќе обезбеди краток вовед за одмор и потоа се опише како да се изгради веб-услуги во стилот одмор.

Што е REST?

REST е термин измислен од страна на Рој Филдинг во докторирал дисертација [1] за да се опише стил архитектура на мрежни системи. REST е акроним стои за репрезентативниот членка трансфер.

Зошто е наречен репрезентативниот членка трансфер?

На веб е составен од ресурси. А ресурс е било која точка од интерес. На пример, Боинг Корп може да се дефинира на 747 ресурс. Клиентите можат да пристапите на тој ресурс со овој URL:

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

Презентацијата на ресурси е се врати (на пример, Boeing747.html). Застапеноста става на клиентска апликација во една стан. Резултатот на клиентот traversing на хиперврска во Boeing747.html е уште еден ресурс се пристапува. Новиот застапеност става на клиентска апликација во уште една држава. Така, на клиентска апликација промени (трансфери) држава едни со претставување на ресурсите -> репрезентативниот членка трансфер!

Еве објаснување на значењето на репрезентативниот членка трансфер Рој Филдинг:

“Репрезентативниот членка трансфер е наменета за да се евоцираат слика за тоа како добро дизајнирана веб апликација се однесува: мрежа на веб страници (виртуелен државна машина), каде што корисникот напредува преку апликација со избирање врски (состојба транзиции), што резултира со на следната страница (што претставува следната држава на апликацијата) се пренесува на корисникот и изречена за нивната употреба.”

Мотивација за REST

Мотивацијата за REST беше да се фати на карактеристики на веб кои го направија Веб успешна. Потоа овие карактеристики се користат за насочување на развојот на интернет.

REST – архитектонски стил, не е стандард

REST не е стандарден. Вие нема да видите на W3C ставање надвор спецификација REST. Вие нема да видите IBM или Microsoft или Sun продажба раководство REST инвеститорот. Зошто? Бидејќи REST е само архитектонски стил. Вие не може да го шишето до тој стил. Можете да го разбере само, и да дизајнирате вашата веб-услуги во тој стил. (Аналогно на клиент-сервер архитектонски стил. Не постои стандарден клиент-сервер).

Додека REST не е стандарден, тоа го прави стандарди употреба:

• HTTP
• URL
• XML/HTML/GIF/JPEG/итн (ресурси репрезентации)
• text/XML, text/HTML, image/gif, image/jpeg, итн (MIME типови)

REST систем класик

Веб е систем REST! Многу од тие веб-услуги, кои сте биле со користење на овие многу години – книга нарачување услуги, услуги за пребарување, речникот онлајн услуги, итн – се REST -базирани веб услуги. За жал, сте биле користење на REST, градење на REST услуги и вие дури и не го знаеме.

REST се занимава со “големата слика” на веб. Тоа не се занимава со имплементација детали (на пример, со употреба на Java Servlets или CGI за спроведување на веб услуга). Па ајде да погледнеме еден пример за создавање на веб услуги од гледна точка на REST “големата слика”.

Parts Depot Web Services

Parts Depot Web Services, Inc (фиктивни компанија) има распоредено некои веб услуги да им овозможи на своите корисници да:

• добиете листа на делови
• добиете детални информации за одреден дел
• поднесе нарачка

Ајде да се разгледа како секој од овие услуги се спроведуваат на мирен начин.

Земете делови листа

Веб сервис прави достапни на URL-то на листата делови ресурс. На пример, клиентот ќе го користи овој URL, за да добиете листа на дела:

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

Имајте на ум дека “како” веб сервис генерира листа на делови е целосно транспарентен за клиентот. Сите на клиентот знае е дека ако тој/таа доставува горенаведените URL тогаш документ кој содржи список на делови се враќа. Од започнувањето на примената е транспарентна за клиенти, делови депото е слободен да се промени на основните имплементација на овој ресурс без да влијае на клиенти. Ова е лабава спојка.

Тука е документ со кој клиентот добива:

<?xml version="1.0"?>
<p:Parts xmlns:p="http://www.parts-depot.com" 
         xmlns:xlink="http://www.w3.org/1999/xlink">
      <Part id="00345" xlink:href="http://www.parts-depot.com/parts/00345"/>
      <Part id="00346" xlink:href="http://www.parts-depot.com/parts/00346"/>
      <Part id="00347" xlink:href="http://www.parts-depot.com/parts/00347"/>
      <Part id="00348" xlink:href="http://www.parts-depot.com/parts/00348"/>
</p:Parts>

[Да претпоставиме дека преку содржината преговори услугата утврди дека клиентот сака застапеноста како XML (на машина-до-машина за обработка).] Имајте на ум дека листата на делови има врски за да добиете детални информации за секој дел. Ова е клучна карактеристика на REST. трансфер на клиентот од една држава до следната со испитување и избор од алтернативните адреси во документот за одговор.

Дел добиете подетални податоци

Веб сервис прави достапни на URL-то на секој дел ресурс. На пример, тука е како на барањата на клиентот дел 00345:

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

Тука е документ со кој клиентот добива:

<?xml version="1.0"?>
<p:Part xmlns:p="http://www.parts-depot.com"   
        xmlns:xlink="http://www.w3.org/1999/xlink">
      <Part-ID>00345</Part-ID>
      <Name>Widget-A</Name>
      <Description>This part is used within the frap assembly</Description>
      <Specification xlink:href="http://www.parts-depot.com/parts/00345/specification"/>
      <UnitCost currency="USD">0.10</UnitCost>
      <Quantity>10</Quantity>
</p:Part>

Повторно се набљудува како овие податоци е поврзано со уште повеќе податоци – спецификација за овој дел може да се најде со напречни на хиперврска. Секој документ одговор им овозможува на клиентот да разбивка да добиете подетални информации.

Испраќање на PO

На веб сервис прави располагање рачно да ги достават на PO. На клиентот создава пример документ на PO која е во согласност PO шема на кои делови депото е дизајниран (и тоа се објавува во документ на WSDL). На клиентот поднесува PO.xml како товар на HTTP POST.
Услугата PO одговара на HTTP POST со URL на доставените PO. Така, на клиентот може да се добие на PO секое време потоа (да се ажурираат/уредување тој). На PO стана дел од информациите што се дели помеѓу клиентот и серверот. На заедничка информации (PO) е дадена адреса (URL), од страна на серверот, и е изложено како веб сервис.

Логички адреси наспроти просторно адреси

А ресурс е концептуален лице. Презентацијата е конкретна манифестација на ресурс. Оваа URL:

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

URL-то е логично, а не физичка адреса. На тој начин, што не треба да биде, на пример, статични HTML страница за секој дел. Всушност, ако имало милион делови потоа милион статични HTML страни нема да биде многу атрактивен дизајн.
[Детали имплементација: складиште за резервни делови може да се спроведе на услугата што се добива детални податоци за одреден дел од вработување на Java Servlet кој parses низа по името на домаќинот, го користи бројот на делот да се пребарува базата на податоци на делови, составување на резултатите од Барањето, како XML, и потоа се врати на XML како на товар на одговорот на HTTP.]

Како прашање на стил URL не треба да се открие техника спроведувањето користи. Вие треба да бидат слободни да ја промените вашата имплементација без да влијае на клиенти или имаат погрешни адреси.

REST Веб услуги карактеристики

Еве ги карактеристиките на REST:

• Клиент-Сервер: една фотелја базирани стил интеракција: конзумирање компоненти се повлече репрезентации.
• Без државјанство: секое барање од клиентот до серверот мора да ги содржи сите информации потребни за да се разбере на барањето, и не може да ги искористат предностите на било кој контекст се чуваат на серверот.
• Кеш: да се подобри ефикасноста на мрежата одговори мора да бидат способни да се етикетирани како кеш во можност или не-кеш во можност.
• Единствен интерфејс: сите ресурси се достапни со генерички интерфејс (на пример, HTTP GET, POST, PUT, DELETE).
• Именуван ресурси – системот е составен од ресурси кои се именувани со користење на URL-то.
• Меѓусебно поврзани репрезентации ресурси – претставите на ресурси меѓусебно се поврзани со URL-и, со тоа се овозможува на клиентот да напредува од една до друга држава.
• Слоевит компоненти – посредници, како прокси сервери, кеш сервери, портали, итн, може да се вметнува помеѓу клиентите и ресурси за поддршка на перформанси, безбедност, итн.

Принципи на REST Веб дизајн служба

1. Клучот за создавање на веб услуги во REST мрежа (на пример, веб) е да се идентификуваат сите концептуални елементите што сакате да го покажете и услуги. Над видовме некои примери на ресурси: листа делови, детални податоци дел, нарачка.

2. Креирање на URL-то на секој ресурс. Средствата треба да бидат именки, глаголи не. На пример, не го користете овој:

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

Забелешка глаголот, getPart. Наместо тоа, користете именка:

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

3. Категоризирате вашите ресурси во согласност со тоа дали клиенти може само да добие претстава на ресурси, или дали клиентите може да го менува (додадете) ресурс. За поранешна, направи достапни овие ресурси со користење на HTTP GET. За подоцна да ги направи достапни овие средства користејќи HTTP POST, PUT и/или DELETE.
4. Сите ресурси достапни преку HTTP GET треба да биде пропратен ефект бесплатно. Тоа е, на ресурси само треба да се врати на претставување на ресурсите. Повикувајќи се на ресурси не треба да резултира со менување на ресурс.
5. Не маж/жена е остров. Исто така, не треба да биде застапеност остров. Со други зборови, се стави линкови во рамките на ресурс репрезентации да им овозможи на клиентите да разбивка за повеќе информации и/или да се добие повеќе информации.
6. Дизајн за да се открие податоци постепено. Не откриваат што е во еден документ одговор. Обезбеди линкови за да се добие повеќе детали.
7. Одредете го форматот на податоците реакција со користење на шема (DTD, W3C Schema, RelaxNG, или Schematron). За оние услуги кои бараат еден пост или да се стави на него, исто така, обезбеди шема за да се определи форматот на одговор.
8. Опишете како вашата услуги треба да се повика со употреба на WSDL документ, или едноставно HTML документ.

Резиме

Оваа статија е опишано REST како архитектонски стил. Всушност, тоа е архитектонски стил на веб. REST опишува она што ја прави веб работат добро. Да се почитуваат принципите на остатокот ќе го направат вашиот услуги работат добро во контекст на веб.
Во иднина напис јас ќе пишувам за еволуцијата на Интернет со користење на принципите REST.

Признание

Благодарение на Роберт Лефтвих и Филип Ескелин за нивните многу корисни коментари во креирањето на овој документ.

Референци

[1] http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm