Building Web Services the REST Way

                                                   Roger L. Costello

Мен бірінші қалған қысқаша енгізуді қамтамасыз содан кейін REST стилінде веб-қызметтерді салу жолын сипаттайды болады.

REST не?

REST кандидаттық жылы Рой Филдинг ойлап термин болып табылады Диссертациялық [1] желілік жүйелер архитектурасы стилі сипаттау. REST Representational State трансферті тұрған аббревиатура болып табылады.

Неге Representational State Transfer аталады?

Веб ресурстар тұрады. Ресурс қызығушылық кез келген элемент болып табылады. Мысалы, Боинг Corp 747 ресурсын анықтау мүмкін. Клиенттер осы URL мекенжайына сәйкес сол ресурсқа қол мүмкін:
http://www.boeing.com/aircraft/747

ресурстың өкілдігі (мысалы, Boeing747.html) қайтарылады. өкілдігі күйде клиенттік қосымшасын орналастырады. Boeing747.html еренсілтемені шиырлап клиент нәтижесі басқа ресурс қатынасқан болып табылады. жаңа өкілдігі тағы бір мемлекетке клиент өтініш орналастырады. Осылайша, әрбір ресурс өкілдік бар, клиенттік қосымша өзгерістер (трансферттер) мемлекеттік -> Representational State Transfer!

Мұнда Representational State Transfer мағынасын Рой Филдинг ның түсіндіру болып табылады:

Пайдаланушы, соның нәтижесінде сілтемелер (мемлекеттік ауысулар) таңдау арқылы қолдану арқылы жүріп веб-беттердің желісін (виртуалды мемлекеттік машина),: «Representational State Transfer жақсы жобаланған веб бағдарлама қолданғандағы бейнесі тудыруы үшін арналған (өтініш келесі жай-күйін білдіретін) келесі бет пайдаланушыға берілетін және оларды пайдалану үшін көрсетілетін «.

Демалу үшін Мотивациясы

Демалыс үшін мотивация веб табысты жасалған Web сипаттамаларын түсіру болды. Кейіннен осы сипаттамалары Web эволюциясын басшылық үшін пайдаланылады.

REST – сәулет стилі емес, Standard

REST стандартты емес. Сіз W3C демалуға сипаттаманы жүзеге қою көре алмайсыз. Сіз IBM немесе Microsoft немесе Sun демалуға салушылардың құралдарды сату көре алмайсыз. Неге? REST тек сәулет стилі болып табылады. Сіз бұл стиль дейін шөлмек мүмкін емес. Сіз тек қана оны түсінуге және бұл стильде сіздің веб-қызметтерді жобалау болады. (Клиент-сервер сәулет стиліне ұқсас. Жоқ клиент-сервер стандартты бар.)

REST стандартты емес болғанымен, ол стандарттар пайдаланады:

  • HTTP
  • URL
  • XML / HTML / GIF / JPEG / т.б. (Resource өкілдіктері)
  • мәтінді / XML, мәтін / HTML, сурет / GIF сурет / JPEG, т.б. (MIME түрлері)

    Классикалық REST жүйесі

Веб REST жүйесі болып табылады! Кітап-тапсырыс қызметтер, іздеу қызметтер, онлайн сөздік қызметтер, т.б. – – Егер осы көп жыл пайдаланып келеді сол веб қызметтердің көптеген REST негізіндегі веб қызметтері болып табылады. Өкінішке орай, Сіз, REST пайдаланып REST қызметтерін құру және сіз тіпті оны білмеген, болды.
REST Web «үлкен сурет» қарастырады. Ол (мысалы, веб-қызметті жүзеге асыру үшін Java сервлеттер немесе CGI пайдалана отырып) жүзеге асыру егжей-қатысы жоқ. Сондықтан REST «үлкен сурет» тұрғысынан веб қызметті құру мысал қарастырайық.

Бөліктердің Depot Web Services

Бөліктердің Depot, Inc (жалған компания) өз клиенттеріне мүмкіндік беретін кейбір веб-қызметтер жайылған етті:
бөліктерінің тізімін алу
нақты бөлігі туралы егжей-тегжейлі ақпаратты алу
ұсынуға сатып алу тапсырысының (PO)
Осы қызметтердің әрбір тыныш сән жүзеге асырылуда болатынын қарастырайық.
Бөліктері тізімін алу

веб қызметі бөлшектер тізімі ресурсқа қол жетімді URL мекенжайын етеді. Мысалы, клиент бөліктері тізімін алу үшін, осы URL мекенжайын пайдаланыңыз еді:
http://www.parts-depot.com/parts

«Қалай» веб-қызмет бөліктері тізімін жасайды клиентке толығымен мөлдір екенін ескеріңіз. Барлық клиент ол / ол содан кейін бөлшектер тізімін қамтитын құжат қайтарылады жоғарыда URL мекенжайын ұсынады егер біледі. іске асыру клиенттерге мөлдір болғандықтан, бөліктері Depot клиенттерді ықпал етпей осы ресурстың негізінде жатқан іске асыру өзгертуге тегін. Бұл сусымалы тіркелу болып табылады.

Мұнда клиент алады құжаттың:

<?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 ретінде өкілдік қалайтынын анықталады мазмұны келіссөздер арқылы деп есептейік.] Бөлшектер тізімі әрбір бөлігінде туралы егжей-тегжейлі ақпарат алу үшін сілтемелер бар екенін ескеріңіз. Бұл демалыс негізгі ерекшелігі болып табылады. тексеру және жауап құжатта баламалы URL мекенжайлары арасынан таңдау арқылы келесі бір жай клиенттік аударымдар.

Толық Part Деректерді алу

веб қызметі әрбір бөлігі ресурсқа қол жетімді 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>

осы бөлігі үшін спецификация гиперсілтемені шиырлап арқылы табылуы мүмкін – Тағы да, бұл деректер әлі көп деректер байланысты қалай сақтауға. Әрбір жауап құжатта клиент неғұрлым егжей-тегжейлі ақпарат алу үшін төмен бұрғылау мүмкіндік береді.

ПО жіберу

веб қызметі ПО ұсынуға қол жетімді URL мекенжайын етеді. клиенттік бөліктері Depot жобаланған (және WSDL құжатында жарияланған) болды PO схемасына сәйкес келетін PO сатыдағы құжатты жасайды. клиент HTTP POST пайдалы жүктемесінің ретінде PO.xml ұсынады.
PO қызмет ұсынылған PO үшін URL мекенжайына бар HTTP POST жауап. Осылайша, клиент PO (/ өңдеу, оны жаңарту үшін), содан кейін кез келген уақытта ала аласыз. PO клиент пен сервер арасында ортақ ақпарат бөлігі айналды. бөлісті ақпарат (PO) сервері арқылы мекенжай (URL) беріледі және веб-қызмет ретінде ұшырайды.

Физикалық URL мекенжайлары салыстырғанда Логикалық URL мекенжайлары

Ресурс тұжырымдамалық тұлға болып табылады. А өкілдігі ресурстың нақты көрінісі болып табылады. Бұл URL:
http://www.parts-depot.com/parts/00345

логикалық URL емес, физикалық URL болып табылады. Осылайша, мысалы, әрбір бөлігі үшін статикалық HTML бетін бар қажеті жоқ. миллион бөлшектер болған жағдайда Шын мәнінде, содан кейін млн статикалық HTML беттер өте тартымды дизайн болуы мүмкін емес еді.
[Іске асыру егжей-тегжейлі: Parts Depot хост атауынан кейін жолды талдайды бір Java Servlet жалдаушы арқылы нақты бөлігі туралы деректерді егжей-тегжейлі алады қызметті жүзеге асыру мүмкін, XML ретінде сұрау нәтижелерін тұжырымдау, бөлшектер деректер базасын сұрау үшін бөлік нөмірін пайдаланады, және содан кейін HTTP жауап пайдалы жүктеме ретінде XML қайтарады.]
стилі URL мекенжайлары мәселе ретінде пайдаланылатын асыру техниканы анықтауға тиіс емес. Сіз клиенттерді әсер ететін немесе жаңылыстыратын URL мекенжайларын қажетінсіз сіздің іске асыру өзгерту еркін болуы керек.

REST веб-қызметтері сипаттамасы

Мұнда демалыс сипаттамалары:

  • Клиент-сервер: алынбалы негізделген өзара қарым-қатынас стилі: тұтынатын компоненттері өкілдіктері тартыңыз.
  • Азаматтығы жоқ: клиент серверге әрбір сұрауы түсіну үшін қажетті барлық ақпаратты қамтуы тиіс, және кез келген серверде сақталған контексте артықшылығын мүмкін емес.
  • Кэш: желілік тиімділігі жауап жақсарту үшін кэштелетін немесе қолма-кэштелетін ретінде белгіленген жатқан қабілетті болуы тиіс.
  • Бірыңғай интерфейс: барлық ресурстар жалпы интерфейсі (мысалы, HTTP GET, POST, PUT, DELETE) бар кіруге болады.
  • Ресурстар атындағы – жүйе URL мекенжайын пайдаланып аталған ресурстардың тұрады.
  • Өзара байланысты ресурстық өкілдіктері – ресурстарды өкілдіктері осылайша бір мемлекеттен прогреске клиентті беретін URL мекенжайларын пайдаланып бірімен байланысты.
  • Қабатты компоненттері – т.б. прокси сервер, кэш серверлер, шлюздер және т.б., өнімділікті қолдау үшін клиенттер мен ресурстар арасындағы салынғанын болады, қауіпсіздік, сондай-ақ делдалдар,

    REST Web Service жобалау принциптері

1. REST желі (яғни, Web) веб-қызметтерді құру кілті сіз қызметтер сияқты әсеріне ниет тұжырымдамалық тұлғалардың барлық анықтау болып табылады. Біз ресурстарды кейбір мысалдар көрдім жоғарыда: қосалқы бөлшектер тізімі, толық бөлігі деректерді, сатып алу тәртібі.

2. Әрбiр ресурсқа URL мекенжайын жасау. ресурстар зат есім, етістік емес болуы тиіс. Мысалы, осы пайдаланбаңыз:

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

етістік, getPart Ескерту. Оның орнына, зат пайдаланыңыз:

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

3. клиенттер ғана ресурс өкілдігін алуға болады, немесе клиенттер (қосу) ресурсты өзгертуге болады ма сәйкес сіздің ресурстар санаты. Бұрынғы үшін, HTTP GET пайдаланатын ресурстар қол жетімді етеді. кейінірек үшін, PUT, HTTP POST пайдаланатын ресурстар қол жетімді етіп және / немесе жою.

4. HTTP GET арқылы қолжетімді барлық ресурстар тегін жанама әсері болуы тиіс. Яғни, ресурстық ғана ресурс өкілдігін қайтаруға тиіс. ресурсты шақыру ресурсын өзгерту әкеп тиіс емес.

5. Ешқандай адам / әйел арал болып табылады. Сол сияқты, ешқандай өкілдігі арал болуы тиіс. Басқаша айтқанда, қосымша ақпарат алу үшін төмен бұрғылауды клиенттерін қосатын, және / немесе тиісті ақпаратты алу үшін ресурс өкілдіктерінің шеңберінде гиперсілтемелерді қойды.
біртіндеп деректерді анықтауға мүмкіндік

6. жобалау. бір жауап құжатта бәрін ашып қоймаңыз. толығырақ алуға гиперсілтемелерді қамтамасыз ету.

7. схемасын (DTD, W3C схемасы RelaxNG немесе Schematron) пайдалана отырып, жауап деректердің пішімін көрсетіңіз. лауазымына талап немесе оған қойылған сол қызметтері үшін, сондай-ақ жауап пішімін көрсету схемасын қамтамасыз етеді.

8. Егер қызметтер WSDL құжатты, немесе жай ғана HTML құжатты немесе пайдалану арқылы шақыруға болады қалай сипаттаңыз.

Кысқаша мазмұндама

Бұл мақалада сәулет стилінде ретінде REST сипатталған. Шын мәнінде, ол Web архитектуралық стиль. REST ақ Web жұмысын жасайды сипаттайды. REST принциптерін ұстана сіздің қызметтер Web тұрғысында жақсы жұмыс жасайды.
болашақ мақалада мен REST қағидаттарын пайдалана отырып, Web эволюциясы туралы жазады.

Таныстыру

Осы құжатты жасау, олардың өте пайдалы ескертулер үшін Роберт Leftwich және Филип Eskelin арқасында.

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

 

Leave a Reply

Your email address will not be published. Required fields are marked *