2000. gadā programmatūras interfeisa arhitektūras dizaina jomā tika izveidots jauns klientu un serveru mijiedarbības standarts. To nosauca par REST. Galvenais šīs koncepcijas iniciators bija viens no HTTP protokola izstrādātājiem Rojs Fildings. Mūsdienu pasaulē REST API kļūst par arvien populārāku datu apmaiņas rīku, kas nodrošina efektīvu mijiedarbību starp visu veidu lietojumprogrammām.
RESTful API ir principu un noteikumu saraksts, kas organizē mijiedarbību starp klientu un serveri. Tas ļauj izstrādātājiem izveidot viegli maināmas un mērogojamas tīmekļa lietojumprogrammas. REST pamatideja ir attēlot resursus, kas ir pieejami ar unikāliem URI identifikatoriem, un manipulēt ar tiem, izmantojot standarta HTTP metodes.
Kas ir API? Tā ir saskarne, kas palīdz dažādām programmām sazināties savā starpā. Tā nosaka, kā var veikt pieprasījumus un kādas atbildes var saņemt. API kalpo par pamatu dažādu sistēmu integrācijai un ir būtiska mūsdienu lietojumprogrammu izstrādes daļa.
Kas ir REST? Tas ir arhitektūras stils, kura pamatā ir principi, kas padara tīmekļa pakalpojumu lietošanu ērtu un viegli saprotamu. Tā pamatā ir HTTP protokoli, un tajā tiek izmantotas standarta metodes, kas tiks iztirzātas tālāk. Katram resursam, kas pieejams, izmantojot API, ir savs unikāls identifikators (URI), kas atvieglo piekļuvi tam.
Galvenie ir šādi:
Šī rīka izmantošana sniedz daudz priekšrocību.
Neraugoties uz REST acīmredzamajām priekšrocībām, tirgū ir pieejamas arī citas tehnoloģijas, piemēram, SOAP un GraphQL. Pirmā tiek izmantota īpašās lietojumprogrammās un nodrošina savas funkcijas, bet otro ir izstrādājis Facebook. GraphQL ir alternatīva REST. Tā ir piemērotāka liela mēroga projektiem.
Klienta un servera mijiedarbības procesu var sadalīt vairākos posmos:
Darbam ar resursiem tiek izmantotas klasiskās HTTP metodes:
GET
: izmanto datu iegūšanai (piemēram, GET /cities
atgriež pilsētu sarakstu);POST
: izmanto jaunu resursu izveidei (piemēram, POST /istanbul
pievieno jaunu kafejnīcu Stambulā);PUT
: izmanto esošo resursu atjaunināšanai (piemēram, PUT /cities
maina pilsētu sarakstu);DELETE
: izmanto resursu dzēšanai (piemēram, DELETE /istanbul
dzēš kafejnīcu Stambulā).Katrs HTTP pieprasījums atgriež statusa kodu, kas norāda operācijas rezultātu. Kods, kas sākas ar 2, norāda uz veiksmīgu izpildi, savukārt kodi ar 4 vai 5 norāda uz kļūdām.
REST API ir kļuvis par standartu tīmekļa pakalpojumu izstrādē, tas nodrošina lietotājiem labu rīku elastīgu un mērogojamu risinājumu izveidei. Tā principi un priekšrocības ir veicinājuši tā plašu popularitāti un izmantošanu visdažādākajās lietojumprogrammās, sākot ar nelielu tīmekļa lietojumprogrammu veidošanu un beidzot ar sarežģītām sadalītām sistēmām. Šajā paplašinātajā ievadā par REST API mēs sīkāk aplūkosim tā galvenās sastāvdaļas, salīdzināsim to ar citām tehnoloģijām, apspriedīsim REST izmantošanu praksē un pievērsīsimies tā attīstības perspektīvām.
Strādājot ar REST API, ir svarīgi ņemt vērā, kādi datu formāti tiek izmantoti. Visizplatītākais formāts ir JSON (javaScript), kas ir viegli lasāms un rakstāms, tāpēc ir ideāli piemērots datu pārsūtīšanai. Tomēr dažkārt tiek izmantoti arī citi formāti, piemēram, XML un HTML. Datu formāta izvēle var būt atkarīga no lietojumprogrammas prasībām un izstrādātāja vēlmēm. JSON formāts atbalsta sarežģītas datu struktūras un nodrošina ekonomisku joslas platuma izmantošanu, kas ir vēl viena REST API priekšrocība.
Drošība ir svarīgs aspekts, strādājot ar REST API. Viena no autentifikācijas metodēm ir žetonu izmantošana. Tas nodrošina drošu piekļuvi aizsargātiem resursiem. Viena no izplatītākajām metodēm ir JWT žetonu izmantošana. Šī metode ļauj klientam piekļūt API noteiktu laiku pēc autentifikācijas. Serverim nav jāuzglabā stāvoklis, tādējādi pastiprinot REST koncepciju "bez stāvokļa".
Turklāt šādu autentifikāciju var papildināt ar OAuth 2.0. Tas nodrošina papildu drošības līmeni un vienkāršo integrāciju ar sociālajiem plašsaziņas līdzekļiem un citām platformām.
Pieaugot viedtālruņu popularitātei, REST API ir kļuvis par svarīgu rīku kopumu izstrādātājiem, kas veido mobilās lietojumprogrammas. REST API izmantošana ļauj lietojumprogrammām mijiedarboties ar attālinātiem serveriem, saņemt un atjaunināt datus reāllaikā. Tāpēc ir iespējams izveidot sarežģītas lietojumprogrammas: ziņojumapmaiņas, sociālos tīklus un citus programmatūras risinājumus, kam nepieciešama ātrdarbīga piekļuve informācijai.
Lai labāk izprastu REST API, aplūkosim hipotētisku piemēru darbam ar bibliotēkas pārvaldības API. Pieņemsim, ka mums ir REST API, kas ļauj veikt šādas darbības:
GET pieprasījumu
uz /books
, lai iegūtu informāciju par visām pieejamajām grāmatām;POST pieprasījumu
uz /books
ar datiem par jaunu grāmatu JSON formātā;PUT pieprasījums
uz /books/{id}
, kur {id}
ir unikāls grāmatas identifikators;DELETE pieprasījumu
.Šie vienkāršie piemēri parāda, kā efektīvi pārvaldīt resursus, izmantojot REST API.
Ir daudz funkciju un bibliotēku, kas atvieglo sadarbību. Piemēram, Postman ir populāra lietojumprogramma, kas ļauj izstrādātājiem sūtīt pieprasījumus, testēt un analizēt atbildes. Citi rīki, piemēram, Swagger, ļauj dokumentēt API un automātiski ģenerēt kodu dažādās programmēšanas valodās.
Python valodā var izmantot bibliotēkas (Requests), kas nodrošina vienkāršu saskarni HTTP pieprasījumu nosūtīšanai un atbilžu apstrādei. Izmantojot javascript, jo īpaši frontend izstrādē, izmantojiet Fetch API vai Axios.
REST API joprojām ir viens no populārākajiem rīkiem klienta un servera mijiedarbībai. Tā principi nodrošina elastību, mērogojamību un lietošanas ērtumu, padarot to par ideālu risinājumu lielākajai daļai mūsdienu tīmekļa lietojumprogrammu. Neskatoties uz alternatīvu parādīšanos (GraphQL.)