REST

REST (representational state transfer)[1] on tarkvaraarhitektuuri laad, mis seab veebirakenduse loomisele kindlad piirid. Tihti kutsutakse selliseid veebirakendusi ka RESTful veebirakendusteks. Veebirakendused, mis on ehitatud REST arhitektuuril, tagavad internetis rakenduste koostoimimise. RESTful rakendused lubavad teistel süsteemidel juurde pääseda ja manipuleerida enda ressursse, kasutades selleks eelnevalt kindlaks määratud ilma olekuta päringuid. Muud arhitektuurid, näiteks SOAP, kasutavad omaenda toimingukomplekte.[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 vorming ei ole kindlaks määratud ja oleneb rakenduse tüübist. Levinumad vormingud on JSON, HTML ja XML. Rakenduselt saadud vastus sisaldab 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 toimingute hulka kuuluvad GET-, POST-, PUT-, DELETE- ja PATCH-toimingud, tihti tuntud ka kui CRUD-toimingud.[2]

Kasutades sobivaid protokolle ja standardseid toiminguid, püüavad RESTful-süsteemid komponentide uuesti kasutamise ja värskendamisega saavutada suurt jõudlust, töökindlust 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.[3][5][6] 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]

  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 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. Originaali arhiivikoopia seisuga 4.12.2018. Vaadatud 30.11.2018.

Developed by StudentB