2000. aastal kujunes tarkvaraliidese arhitektuuri disaini valdkonnas uus klientide ja serverite vahelise suhtluse standard. Seda nimetati REST. Selle kontseptsiooni peamine algataja oli Roy Fielding, üks HTTP-protokolli arendajatest. Tänapäeva maailmas on REST API muutumas üha populaarsemaks andmevahetuse vahendiks, mis võimaldab tõhusat suhtlemist kõikvõimalike rakenduste vahel.
RESTful API on nimekiri põhimõtetest ja reeglitest, mis korraldavad kliendi ja serveri vahelist suhtlust. See võimaldab arendajatel teha kergesti muudetavaid ja skaleeritavaid veebirakendusi. RESTi põhiidee on esitada ressursse, mis on kättesaadavad unikaalsete URI-tunnuste abil, manipuleerides nendega standardsete HTTP-meetodite abil.
Mis on API? See on liides, mis aitab erinevatel programmidel omavahel suhelda. See määratleb, kuidas saab esitada päringuid ja milliseid vastuseid saada. API on aluseks erinevate süsteemide integreerimisel ja on praeguste rakenduste arendamise põhiline osa.
Mis on REST? See on arhitektuuristiil, mis põhineb põhimõtetel, mis muudavad veebiteenuste rakendamise mugavaks ja arusaadavaks. See põhineb HTTP-protokollidel ja kasutab standardseid meetodeid, mida järgnevalt lahti mõtestatakse. Igal API kaudu kättesaadaval ressursil on oma unikaalne identifikaator (URI), mis hõlbustab juurdepääsu sellele.
Peamised neist on järgmised:
Selle vahendi kasutamine annab palju plusse.
Vaatamata RESTi ilmsetele eelistele on turul ka teisi tehnoloogiaid, nagu SOAP ja GraphQL. Kui esimest kasutatakse konkreetsetes rakendustes ja see pakub oma funktsioone, siis viimane on välja töötatud Facebooki poolt. GraphQL on alternatiiv RESTile. See sobib paremini suuremahuliste projektide jaoks.
Kliendi ja serveri vahelise suhtluse protsessi võib jagada mitmeks etapiks:
Ressurssidega töötamiseks kasutatakse klassikalisi HTTP-meetodeid:
GET
: kasutatakse andmete saamiseks (näiteks GET /cities
tagastab linnade loetelu);POST
: kasutatakse uute ressursside loomiseks (nt POST /istanbul
lisab uue kohviku Istanbulis);PUT
: kasutatakse olemasolevate ressursside uuendamiseks (nt PUT /cities
muudab linnade nimekirja);DELETE
: kasutatakse ressursside kustutamiseks (nt DELETE /istanbul
kustutab Istanbuli kohviku).Iga HTTP päring tagastab staatuskoodi, mis näitab operatsiooni tulemust. Kood, mis algab numbriga 2, näitab edukat täitmist, koodid numbritega 4 või 5 aga vigu.
REST API on muutunud standardiks veebiteenuste arendamisel, see annab kasutajatele hea vahendi paindlike ja skaleeritavate lahenduste loomiseks. Selle põhimõtted ja eelised on aidanud kaasa selle laialdasele populaarsusele ja kasutamisele väga erinevates rakendustes, alates väikeste veebirakenduste loomisest kuni keerukate hajutatud süsteemideni. Selles REST API laiendatud sissejuhatuses vaatleme lähemalt selle põhikomponente, võrdleme seda teiste tehnoloogiatega, arutame REST-i kasutamist praktikas ja käsitleme selle arenguperspektiive.
REST APIdega suhtlemisel on oluline arvestada, milliseid andmeformaate kasutatakse. Kõige levinum vorming on JSON (javaScript), mida on lihtne lugeda ja kirjutada, mistõttu on see ideaalne andmete edastamiseks. Mõnikord kasutatakse siiski ka muid vorminguid, näiteks XML ja HTML. Andmeformaadi valik võib sõltuda rakenduse nõuetest ja arendaja eelistustest. JSON-vorming toetab keerulisi andmestruktuure ja tagab säästliku ribalaiuse kasutamise, mis on veel üks REST API eelis.
Turvalisus on REST APIdega töötamisel oluline aspekt. Üks autentimismeetoditest on märgiste kasutamine. See tagab turvalise juurdepääsu kaitstud ressurssidele. Üks levinumaid meetodeid on JWT-märkide kasutamine. See meetod võimaldab kliendile pärast autentimist teatud aja jooksul juurdepääsu API-le. Server ei pea salvestama olekut, mis tugevdab RESTi "oleku puudumise" kontseptsiooni.
Lisaks saab sellist autentimist täiendada OAuth 2.0-ga. See lisab lisaturvalisuse ja lihtsustab integratsiooni sotsiaalmeedia ja muude platvormidega.
Nutitelefonide kasvava populaarsuse tõttu on REST API muutunud oluliseks tööriistakomplektiks mobiilirakendusi ehitavate arendajate jaoks. REST API kasutamine võimaldab rakendustel suhelda kaugserveritega, saada ja ajakohastada andmeid reaalajas. Seetõttu on võimalik luua keerulisi rakendusi: sõnumitooja, sotsiaalvõrgustikke ja muid tarkvaralahendusi, mis nõuavad kiiret juurdepääsu teabele.
REST API paremaks mõistmiseks vaatleme hüpoteetilist näidet tööst raamatukoguhalduse APIga. Oletame, et meil on RESTful API, mis võimaldab meil teha järgmisi toiminguid:
GET päringu
aadressile /books
, et saada teavet kõigi olemasolevate raamatute kohta;POST päringu
aadressile /books
koos andmetega uue raamatu kohta JSON-vormingus;PUT-taotlust
aadressile /books/{id}
, kus {id}
on raamatu unikaalne identifikaator;DELETE päringu
.Need lihtsad näited näitavad, kuidas tõhusat ressursside haldamist saab teostada REST APIde abil.
On olemas palju funktsioone ja raamatukogusid, mis hõlbustavad koostööd. Näiteks Postman on populaarne rakendus, mis võimaldab arendajatel saata päringuid, testida ja analüüsida vastuseid. Teised tööriistad, näiteks Swagger, võimaldavad dokumenteerida APIsid ja genereerida automaatselt koodi erinevates programmeerimiskeeltes.
Pythonis saab kasutada raamatukogusid (Requests), mis pakuvad lihtsat kasutajaliidest HTTP-päringute saatmiseks ja vastuste töötlemiseks. Javascriptis, eriti frontend-arenduses, kasutage Fetch API või Axios.
REST API on endiselt üks populaarsemaid vahendeid kliendi ja serveri suhtlemiseks. Selle põhimõtted pakuvad paindlikkust, skaleeritavust ja kasutusmugavust, mistõttu on see ideaalne lahendus enamiku kaasaegsete veebirakenduste jaoks. Hoolimata alternatiivide (GraphQL.)