2000 m. programinės įrangos sąsajos architektūros projektavimo srityje buvo suformuotas naujas klientų ir serverių sąveikos standartas. Jis buvo pavadintas REST. Pagrindinis šios koncepcijos iniciatorius buvo Roy Fielding, vienas iš HTTP protokolo kūrėjų. Šiandieniniame pasaulyje REST API tampa vis populiaresne keitimosi duomenimis priemone, užtikrinančia veiksmingą sąveiką tarp visų rūšių programų.
RESTful API - tai principų ir taisyklių, skirtų kliento ir serverio sąveikai organizuoti, sąrašas. Jis leidžia kūrėjams kurti lengvai keičiamas ir keičiamo mastelio žiniatinklio programas. Pagrindinė REST idėja - atvaizduoti unikaliais URI identifikatoriais pasiekiamus išteklius ir jais manipuliuoti naudojant standartinius HTTP metodus.
Kas yra API? Tai sąsaja, padedanti skirtingoms programoms bendrauti tarpusavyje. Ji apibrėžia, kaip galima pateikti užklausas ir kokius atsakymus galima gauti. API tarnauja kaip pagrindas skirtingoms sistemoms integruoti ir yra esminė dabartinių programų kūrimo dalis.
Kas yra REST? Tai architektūrinis stilius, pagrįstas principais, dėl kurių žiniatinklio paslaugų taikymas yra patogus ir lengvai suprantamas. Jis pagrįstas HTTP protokolais ir naudoja standartinius metodus, kurie bus dekonstruojami toliau. Kiekvienas per API prieinamas išteklius turi savo unikalų identifikatorių (URI), kuris palengvina prieigą prie jo.
Pagrindiniai iš jų yra šie:
Naudojant šią priemonę suteikiama daug pliusų.
Nepaisant akivaizdžių REST privalumų, rinkoje yra ir kitų technologijų, pavyzdžiui, SOAP ir GraphQL. Pirmoji naudojama konkrečiose taikomosiose programose ir suteikia savų funkcijų, o antrąją sukūrė "Facebook". GraphQL yra REST alternatyva. Ji labiau tinka didelės apimties projektams.
Kliento ir serverio sąveikos procesą galima suskirstyti į kelis etapus:
Klasikiniai HTTP metodai naudojami darbui su ištekliais:
GET
: naudojamas duomenims gauti (pavyzdžiui, GET /cities
grąžina miestų sąrašą);POST
: naudojami naujiems ištekliams kurti (pavyzdžiui, POST /istanbul
prideda naują kavinę Stambule);PUT
: naudojamas esamiems ištekliams atnaujinti (pvz., PUT /cities
pakeičia miestų sąrašą);DELETE
: naudojamas ištekliams ištrinti (pvz., DELETE /istanbul
ištrina kavinę Stambule).Kiekviena HTTP užklausa grąžina būsenos kodą, kuris nurodo operacijos rezultatą. Kodas, prasidedantis skaičiumi 2, reiškia sėkmingą įvykdymą, o kodai su 4 arba 5 - klaidas.
REST API tapo žiniatinklio paslaugų kūrimo standartu, ji suteikia naudotojams gerą priemonę lankstiems ir keičiamo dydžio sprendimams kurti. Jos principai ir privalumai lėmė, kad ji plačiai paplito ir buvo naudojama įvairiose taikomosiose programose - nuo mažų žiniatinklio programų kūrimo iki sudėtingų paskirstytų sistemų. Šiame išplėstiniame įvade apie REST API išsamiau apžvelgsime pagrindinius jos komponentus, palyginsime ją su kitomis technologijomis, aptarsime REST naudojimą praktikoje ir paliesime jos plėtros perspektyvas.
Bendraujant su REST API svarbu atsižvelgti į tai, kokie duomenų formatai naudojami. Dažniausiai pasitaikantis formatas yra JSON (javaScript), kurį lengva skaityti ir rašyti, todėl jis idealiai tinka duomenims perduoti. Tačiau kartais naudojami ir kiti formatai, pavyzdžiui, XML ir HTML. Duomenų formato pasirinkimas gali priklausyti nuo taikomosios programos reikalavimų ir kūrėjo pageidavimų. JSON formatas palaiko sudėtingas duomenų struktūras ir užtikrina ekonomišką duomenų srauto pralaidumo naudojimą, o tai yra dar vienas REST API privalumas.
Saugumas yra svarbus aspektas dirbant su REST API. Vienas iš autentiškumo nustatymo būdų - žetonų naudojimas. Taip užtikrinama saugi prieiga prie saugomų išteklių. Vienas iš labiausiai paplitusių metodų yra JWT žetonų naudojimas. Šis metodas leidžia klientui naudotis API tam tikrą laiką po autentifikavimo. Serveriui nereikia saugoti būsenos, taip sustiprinant REST koncepciją "be būsenos".
Be to, tokį autentifikavimą galima papildyti naudojant OAuth 2.0. Tai suteikia papildomą saugumo lygį ir supaprastina integraciją su socialine žiniasklaida bei kitomis platformomis.
Populiarėjant išmaniesiems telefonams, REST API tapo svarbiu įrankių rinkiniu kūrėjams, kuriantiems mobiliąsias taikomąsias programas. Naudodamos REST API programos gali bendrauti su nutolusiais serveriais, gauti ir atnaujinti duomenis realiuoju laiku. Todėl galima kurti sudėtingas taikomąsias programas: pasiuntinukus, socialinius tinklus ir kitus programinės įrangos sprendimus, kuriems reikia sparčios prieigos prie informacijos.
Kad geriau suprastumėte REST API, panagrinėkime hipotetinį darbo su bibliotekos valdymo API pavyzdį. Tarkime, kad turime REST sąveikos API, kuri leidžia atlikti toliau nurodytus veiksmus:
GET užklausą
į /books
, kad gautų informaciją apie visas turimas knygas;POST užklausą
į /books
su duomenimis apie naują knygą JSON formatu;PUT užklausa
į /books/{id}
, kur {id}
yra unikalus knygos identifikatorius;DELETE užklausa
.Šie paprasti pavyzdžiai parodo, kaip efektyvus išteklių valdymas gali būti įgyvendintas naudojant REST API.
Yra daugybė funkcijų ir bibliotekų, kurios palengvina bendradarbiavimą. Pavyzdžiui, "Postman" yra populiari programa, leidžianti kūrėjams siųsti užklausas, testuoti ir analizuoti atsakymus. Kitos priemonės, pavyzdžiui, "Swagger", leidžia dokumentuoti API ir automatiškai generuoti kodą įvairiomis programavimo kalbomis.
Programoje "Python" galite naudoti bibliotekas ("Requests"), kurios suteikia paprastą sąsają HTTP užklausoms siųsti ir atsakymams apdoroti. Naudodami "JavaScript", ypač priekinės dalies kūrimo srityje, naudokite "Fetch API" arba "Axios".
REST API išlieka viena populiariausių kliento ir serverio sąveikos priemonių. Jos principai užtikrina lankstumą, mastelio keitimą ir paprastą naudojimą, todėl ji yra idealus sprendimas daugumai šiuolaikinių žiniatinklio programų. Nepaisant atsirandančių alternatyvų (GraphQL.)