REST API (Reprezentativni prijenos države), iliODMORNE web usluge - što su to? REST se s engleskog prevodi kao "reprezentativni državni prijenos". To je način pružanja interoperabilnosti između računalnih sustava na Internetu. Web usluge usklađene s REST-om koje omogućuju sustavima koji zahtijevaju pristup i manipulaciju tekstualnim prikazima web resursa koristeći jedan i unaprijed definirani skup operacija. Postoje i drugi oblici web usluga koji sadrže vlastite proizvoljne skupove operacija, poput WSDL i SOAP.
REST API: što je to? Definicija pojma
Web resursi izvorno su definirani uWorld Wide Web kao dokumenti ili datoteke identificirani njihovim URL-ovima. Danas imaju mnogo općenitiju i apstraktniju definiciju koja obuhvaća svaki objekt ili entitet koji se mogu identificirati, imenovati, adresirati ili obraditi na Webu. U web usluzi REST API zahtjevi otrovani URI-jem resursa pokreću odgovor koji se može oblikovati u XML, HTML, JSON ili nekom drugom formatu. Odgovor može potvrditi da su izvršene neke promjene na pohranjenom resursu, kao i pružiti hipertekstualne poveznice s drugim povezanim resursima i njihovim zbirkama. Korištenje HTTP-a kao najčešćeg protokola odnosi se na vrste dostupnih operacija koje su unaprijed definirane naredbama PUT, DELETE, HTTP GET, POST.
Korištenjem protokola bez državljanstva istandardnih operacija, REST sustavi imaju za cilj brzu izvedbu, pouzdanost i potencijal rasta ponovnom uporabom komponenata koje se mogu kontrolirati i ažurirati bez utjecaja na cijeli sustav. Korištenje REST-a često je poželjnije u odnosu na teži SOAP (Simple Object Access Protocol) stil jer REST ne koristi propusnost, što ga čini prikladnijim za upotrebu na Internetu. SOAP pristup zahtijeva pisanje ili upotrebu ponuđenog poslužiteljskog programa (za posluživanje podataka) i klijentskog programa (za traženje podataka).
Povijest tehnologije
Izraz "reprezentativni državni transfer" bio jeuveo i definirao 2000. Roy Fielding u svojoj disertaciji Arhitektonski stilovi i dizajn softverskih mrežnih arhitektura. Razvio je arhitektonski stil REST paralelno s HTTP-om 1996-1999, temeljeći se na postojećem nacrtu HTTP-a 1996. U retrospektivnom pogledu na evoluciju tehnologije, Fielding je rekao da je tijekom cijelog postupka standardizacije HTTP-a bila namijenjena zaštiti izbora dizajna na Internetu. To je vrlo težak zadatak u procesu prihvaćanja prijedloga od nekoga o temi koja brzo postaje fokus cijele industrije.
Fielding je imao komentare preko 500programeri, od kojih su mnogi izvrsni inženjeri s dugogodišnjim iskustvom. Morao je objasniti sve, od najapstraktnijih koncepata internetske interakcije do preciznih detalja HTTP sintakse. Ovim je postupkom njegov model usavršen u temeljni skup principa, svojstava i ograničenja, koji se sada nazivaju REST.
prednosti
Značajke REST stila utječu na sljedeća arhitektonska svojstva:
- Izvedba - Interakcija komponenata dominantno je svojstvo u percepciji korisnika o izvedbi i učinkovitosti mreže.
- Skalabilnost za podršku što više komponenata, testiranje REST API-ja i interakcija između njih.
- Jednostavnost objedinjenog sučelja i autorizacije REST API-ja.
- Komponente koje se mogu mijenjati kako bi udovoljile promjenjivim potrebama (čak i dok je aplikacija pokrenuta).
- Vidljivost komunikacije između komponenata i servisnih agenata.
- Sposobnost prijenosa komponenata premještanjem njihovog programskog koda s podacima.
- Pouzdanost - velika elastičnost u slučaju kvara komponenata, konektora ili podataka.
Utvrđena je podjela problema između klijenatana taj način što ovaj REST API pojednostavljuje implementaciju komponenata, smanjuje složenost semantike konektora, poboljšava podešavanje performansi i povećava skalabilnost čistih poslužiteljskih komponenti. Složena sistemska ograničenja omogućuju proxy proxyje, pristupnike i zaštitne zidove za postavljanje na različitim komunikacijskim točkama bez mijenjanja sučelja između komponenata, omogućujući im da izvrše REST prijevod poruka ili poboljšaju performanse s velikim dijeljenim predmemoriranjem. Primjer REST API-ja je kada su interakcije neovisne o stanju zahtjeva, standardne metode i vrste medija koriste se za ukazivanje na semantiku i razmjenu informacija, a odgovori izričito ukazuju na predmemoriranje.
Formalna i arhitektonska ograničenja
Karakterizira šest ograničenja koja vodeRESTful sustav. Ograničavaju načine na koje poslužitelj može obraditi i prihvatiti zahtjeve klijenta. Djelujući u okviru ovih ograničenja, usluga dobiva željena nefunkcionalna svojstva kao što su izvedba, skalabilnost, jednostavnost, varijabilnost, vidljivost, prenosivost i pouzdanost. Ako usluga krši bilo koja potrebna ograničenja, ne može se smatrati RESTful.
Prva ograničenja odnose se na arhitekturustil klijent-poslužitelj. Odvajanje zabrinutosti za korisničko sučelje od zabrinutosti za pohranu poboljšava prenosivost korisničkog sučelja na više platformi. Također poboljšava skalabilnost pojednostavljujući poslužiteljske komponente. Možda najvažnije za web, razdvajanje omogućuje da se komponente razvijaju same od sebe, podržavajući tako zahtjeve internetskih razmjera iz više organizacijskih domena.
sigurnosni
REST ne pruža ugrađenu podrškusigurnost. To je vrlo važno kod dizajniranja REST web usluga - sigurnosni i dizajnerski zahtjevi su unaprijed ispunjeni. REST web usluge koriste HTTP GET, POST, PUT i DELETE iz CRUD operacija. Mnogi preglednici ne podržavaju PUT i DELETE i najčešće su onemogućeni na razini poslužitelja zbog potencijalnih kršenja privatnosti. Ako nije pravilno konfiguriran na razini poslužitelja i klijenta, bilo koji neovlašteni korisnik može STAVITI resurs ili uništiti DELETE resurs koji se koristi. Pri razvoju sigurnosnih zahtjeva za web usluge, ove točke treba uzeti u obzir.
Arhitektonski elementi
Ključni aspekt REST-a je priroda i stanje njegovih podataka. U REST stilu postoje četiri koncepta koji opisuju ponašanje i stanje informacija.
Resurs je objekt (logički ili fizički),dostupno na Internetu. To može biti dokument pohranjen u datotečnom sustavu poslužitelja ili redak u tablici baze podataka. Krajnji korisnik komunicira s resursom kako bi postigao određeni cilj. Da bi dizajnirao sustav pomoću REST-a, programer mora poslovne objekte smatrati resursima i načinom na koji im se može rješavati.
URI - jedinstveno identificira resurs. Ovaj parametar čini resurs adresabilnim i može se mijenjati. Resursi se modificiraju pomoću aplikacijskog protokola kao što je HTTP.
Prikaz su podaci o stanju / metapodaciresursa u određenom trenutku. Klijent dobiva prikaz resursa kada se zatraži URI. Prikaz resursa može se kodirati u jednom ili više prenesenih formata kao što su XML, HTML, JSON, RSS, REST API java. O tim se formatima može pregovarati pomoću mehanizma za pregovaranje o sadržaju.
Veza - omogućuje aplikaciji navigacijuiz jedne države u drugu. Svaki resurs mora biti povezan s drugim resursima. Pogled bi trebao ponuditi vezu do sljedećeg prijelaza. Dobro povezana aplikacija omogućuje korisniku da samostalno otvori sučelje.
Konektor
Konektor konektora je sažetaksučelje koje posreduje u komunikaciji između komponenata. Budući da su REST interakcije bez stanja, konektor ne treba pohranjivati podatke o stanju. Stoga se komunikacija između komponenata može odvijati paralelno.
Klijent i poslužitelj glavni su REST konektori. Klijent pokreće zahtjev, a poslužitelj ga obrađuje.
Gotovina je druga vrsta konektora. Keširanje se može implementirati na razini klijenta, poslužitelja ili međuopreme. To smanjuje kašnjenje i korištenje mreže.
komponente
Komponente izvršavaju skup dobro definiranih metoda na resursu koji stvara pogled za hvatanje trenutnog ili namjeravanog stanja.
Korisnički agent - koristi konektor klijenta za pokretanje zahtjeva.
Izvorni poslužitelj - koristi se priključkom poslužitelja da odgovori na zahtjev.
Proxy je posrednik koji se koristi na klijentskoj strani za pružanje enkapsulacije sučelja drugim uslugama. Također se bavi prevođenjem i zaštitom podataka.
Gateway je posrednik koji poslužitelj koristi za inkapsulaciju sučelja drugim uslugama.
Perspektiva razvoja
Pitanje je uvijek relevantno:REST API - što je to za moderne internetske tehnologije? REST je temelj moderne web arhitekture koja se razvija analizom nedostataka postojećih stilova i uvođenjem novih dodataka u nju.
Koji su ciljevi REST API-ja?Predanost je iskorištavanju postojećih stilova s koordiniranim skupom ograničenja kako bi se minimalizirala mrežna komunikacija i maksimalizirala neovisna evolucija komponenata kako bi se postigla skalabilnost. Ovo je nova arhitektura distribuiranog hipermedijskog sustava. Pojavom pametnih telefona, tableta i drugih naprava, mreža i njena skalabilnost bit će uvedeni.