Kasutaja:Kristokarp/REST arhitektuur: erinevus redaktsioonide vahel

Allikas: Vikipeedia
Eemaldatud sisu Lisatud sisu
HPook (arutelu | kaastöö)
Resümee puudub
HPook (arutelu | kaastöö)
Resümee puudub
1. rida: 1. rida:
'''REST''' ('''Representational State Transfer''')<ref name="definitsioon">{{Netiviide|URL=https://akit.cyber.ee/term/10843%20AKIT%20REST|Pealkiri=REST definitsioon|Kasutatud=30.11.2018}}</ref> on tarkvaraarhitektuuri stiil, mis seab veebirakenduse loomisel kindlad piirid. Tihti kutsutakse sellised veebirakendusi ka RESTful veebirakendusteks. Veebirakendused, mis on ehitatud REST arhitektuuril, tagavad [[internet|internetis]] rakenduste koostoimimise. RESTful rakendused lubavad teistel süsteemidel ligi pääseda ja manipuleerida enda ressursse, kasutades selleks eelnevalt kindlaks määratud ilma [[olekuta]] päringuid. Muud arhitektuurid, nagu näiteks [[SOAP]], kasutavad oma enda operatsioonide komplekte.<ref name="www">{{Netiviide|Autor=World Wide Web Consortium|URL=https://www.w3.org/TR/2004/NOTE-ws-arch-20040211/#relwwwrest|Pealkiri=Web Services Architecture|Väljaanne=|Aeg=11. veebruar 2004|Kasutatud=04.11.2018}}</ref>
'''REST''' ('''Representational State Transfer''')<ref name="definitsioon">{{Netiviide|URL=https://akit.cyber.ee/term/10843%20AKIT%20REST|Pealkiri=REST definitsioon|Kasutatud=30.11.2018}}</ref> on tarkvaraarhitektuuri stiil, mis seab veebirakenduse loomisel kindlad piirid. Tihti kutsutakse sellised veebirakendusi ka RESTful veebirakendusteks. Veebirakendused, mis on ehitatud REST arhitektuuril, tagavad [[internet|internetis]] rakenduste koostoimimise. RESTful rakendused lubavad teistel süsteemidel ligi pääseda ja manipuleerida enda ressursse, kasutades selleks eelnevalt kindlaks määratud ilma [[olekuta]] päringuid. Muud arhitektuurid, nagu näiteks [[SOAP]], kasutavad oma enda operatsioonide komplekte.<ref name="www">{{Netiviide|Autor=World Wide Web Consortium|URL=https://www.w3.org/TR/2004/NOTE-ws-arch-20040211/#relwwwrest|Pealkiri=Web Services Architecture|Väljaanne=|Aeg=11. veebruar 2004|Kasutatud=04.11.2018}}</ref>




REST arhitektuuri põhiidee seisneb selles, et tehakse erinevat tüüpi päringuid REST arhitektuuriga üles seatud erinevatele [[URI|URI-dele]], mis seejärel vastavad sobiva vastusega. Vastuse formaat seejuures ei ole kindlaks määratud ja oleneb rakenduse tüübist. Enamlevinud formaadid on [[JSON]], [[HTML]] ja [[XML]]. Rakenduselt saadud vastus sisaldab endas [[staatuse koodi]], mis ütleb, kas tehtud päring oli edukas, ja olenevalt päringust ka lisaandmeid, mida rakenduselt küsiti. Kui kasutatakse [[HTTP|HTTP-d]], mis on kõige levinum protokoll RESTful rakenduste jaoks, siis olemasolevate operatsioonde hulka kuuluvad GET, POST, PUT, DELETE ja PATCH operatsioonid, tihti tuntud ka kui [[CRUD]] operatioonid.<ref name="www"></ref>
REST arhitektuuri põhiidee seisneb selles, et tehakse erinevat tüüpi päringuid REST arhitektuuriga üles seatud erinevatele [[URI|URI-dele]], mis seejärel vastavad sobiva vastusega. Vastuse formaat seejuures ei ole kindlaks määratud ja oleneb rakenduse tüübist. Enamlevinud formaadid on [[JSON]], [[HTML]] ja [[XML]]. Rakenduselt saadud vastus sisaldab endas [[staatuse koodi]], mis ütleb, kas tehtud päring oli edukas, ja olenevalt päringust ka lisaandmeid, mida rakenduselt küsiti. Kui kasutatakse [[HTTP|HTTP-d]], mis on kõige levinum protokoll RESTful rakenduste jaoks, siis olemasolevate operatsioonde hulka kuuluvad GET, POST, PUT, DELETE ja PATCH operatsioonid, tihti tuntud ka kui [[CRUD]] operatioonid.<ref name="www"></ref>

Redaktsioon: 2. detsember 2018, kell 22:35

REST (Representational State Transfer)[1] on tarkvaraarhitektuuri stiil, mis seab veebirakenduse loomisel kindlad piirid. Tihti kutsutakse sellised veebirakendusi ka RESTful veebirakendusteks. Veebirakendused, mis on ehitatud REST arhitektuuril, tagavad internetis rakenduste koostoimimise. RESTful rakendused lubavad teistel süsteemidel ligi pääseda ja manipuleerida enda ressursse, kasutades selleks eelnevalt kindlaks määratud ilma olekuta päringuid. Muud arhitektuurid, nagu näiteks SOAP, kasutavad oma enda operatsioonide komplekte.[2]

REST arhitektuuri põhiidee seisneb selles, et tehakse erinevat tüüpi päringuid REST arhitektuuriga üles seatud erinevatele URI-dele, mis seejärel vastavad sobiva vastusega. Vastuse formaat seejuures ei ole kindlaks määratud ja oleneb rakenduse tüübist. Enamlevinud formaadid on JSON, HTML ja XML. Rakenduselt saadud vastus sisaldab endas staatuse koodi, mis ütleb, kas tehtud päring oli edukas, ja olenevalt päringust ka lisaandmeid, mida rakenduselt küsiti. Kui kasutatakse HTTP-d, mis on kõige levinum protokoll RESTful rakenduste jaoks, siis olemasolevate operatsioonde hulka kuuluvad GET, POST, PUT, DELETE ja PATCH operatsioonid, tihti tuntud ka kui CRUD operatioonid.[2]

Kasutades sobivaid protokolle ja standardseid operatsioone, püüavad RESTful süsteemid komponentide uuesti kasutamise ja värskendamisega saavutada suurt jõudlust, usaldusväärsust ja võimet laieneda, ilma kogu töötavat süsteemi mõjutamata.[2]

Termini representational state transfer defineeris ja võttis kasutusele Roy Fielding 2000. aastal oma doktoritöös.[3][4] Fieldingi töö seletas RESTi põhimõtteid, mida senimaani nimetati "HTTP objekti mudeliks", mis oli kasutusel aastast 1994 ja seda kasutati HTTP 1.1 ja URI standardite disainimiseks.[5][6][3] Mõiste eesmärk on kujundada hästi kavandatud veebirakenduse käitumine: see on veebiressursside võrk (virtuaalne olek-masin), kus kasutaja edastab rakenduse kaudu, valides lingid, näiteks /user/tom ja sellised toimingud nagu GET või DELETE (seisundi muudatus), mille tulemuseks edastatakse kasutajale järgmine ressurss, mis esindab rakenduse järgmist seisundit.[7]

Ajalugu

Roy Fielding esinemas OSCON-il 2008.

Roy Fielding määratles REST arhitektuuri oma 2000. aasta doktoritööga "Arhitektuuri stiilid ja võrgupõhiste tarkvaraspetsifikaatide projekteerimine" California Ülikoolis. Ta arendas 1996.–1999. aastatel HTTP 1.1 protokolli, mis baseerus 1996. aastal loodud HTTP 1.0 peal.[8] Tagasiulatuvalt REST arhitektuuri arendamisele ütles Fielding järgmist:


Arhitektuuri omadused

REST arhitektuuri stiili piirangud mõjutavad järgmisi arhitektuurilisi omadusi:

  • komponentidevaheliste interaktsioonide jõudlus, mis võib olla kasutaja tajutava jõudluse ja võrgu tõhususe domineeriv tegur;[3]
  • skaleeruvus, mis võimaldab toetada suurt hulka komponente ja nendevahelisi interaktsioone;
  • ühtse liidese lihtsus;
  • komponentide muutmine uute vajaduste rahuldamiseks, isegi kui rakendus töötab;
  • teenindusagentide ja komponentide vahelise kommunikatsiooni läbipaistvus;
  • komponentide teisaldatavus programmi koodi ja andmete abil;
  • süsteemi stabiilsus pistikühendustes, komponentides või andmetes esinevate tõrgete korral.

Roy Fielding kirjeldab RESTi skaleeruvust järgmiselt:

URLi ja sobivate HTTP meetodite kasutamine

Järgnev tabel demonstreerib, kuidas HTTP meetodeid tavaliselt REST API-des kasutatakse:

HTTP meetodid
Uniform Resource Locator (URL) GET PUT PATCH POST DELETE
Kollektsioon
https://api.example.com/resources/
Tagastatakse list kollektsiooni elementide URI-dest ja vahel ka muust nendega seonduvast infost. Asendatakse kogu kollektsiooni teise kollektsiooniga. Üldiselt seda ei kasutata. Luuakse uus kirje kollektsiooni. Uue kirje on URI on loodud automaatselt ja on tavaliselt ka vastuses tagastatud. Kustutatakse kogu kollektsioon.
Element
 https://api.example.com/resources/item17
Tagastatakse kollektsiooni elemendi andmed sobivad meediatüübis. Asendatakse olemasolev element või luuakse selle puudumisel uus element. Uuendatakse olemasolevat elementi uute andmetega. Üldiselt seda ei kasutata, kuid kasutamisel on selle eesmärk muuta element omakorda kollektsiooniks.[9] Kustutatakse element kollektsioonist.

Viited

  1. "REST definitsioon". Vaadatud 30.11.2018.
  2. 2,0 2,1 2,2 World Wide Web Consortium (11. veebruar 2004). "Web Services Architecture". Vaadatud 04.11.2018.
  3. 3,0 3,1 3,2 3,3 Roy Thomas Fielding (2000). "Architectural Styles and the Design of Network-based Software Architectures". University of California, Irvine. Vaadatud 30.11.2018.
  4. "Fielding discussing the definition of the REST term". groups.yahoo.com. Vaadatud 08.08.2017.
  5. T. Berners-Lee, R. Fielding, H. Frystyk (mai 1996). "RFC 1945". Vaadatud 02.12.2018.{{netiviide}}: CS1 hooldus: mitu nime: autorite loend (link)
  6. R. Fielding, J. Gettys, J. Mogul, H. Frystyk, L. Masinter, P. Leach, T. Berners-Lee (juuni 1999). "RFC 2616". Vaadatud 02.12.2018.{{netiviide}}: CS1 hooldus: mitu nime: autorite loend (link)
  7. "REST principles explained". Servage. Vaadatud 30.11.2018.
  8. 8,0 8,1 "Fielding discusses the development of the REST style". Tech.groups.yahoo.com. Originaali arhiivikoopia seisuga 11.11.2009. Vaadatud 14.09.2014.
  9. Jeremy H (16. mai 2012). "API Example Using REST". Vaadatud 04.11.2018.