"Moja muza je digitalni svet."
RESTful API predstavlja poznati interfejs za programiranje aplikacija. U nazivu REST API, web API ili samo API označava programski interfejs koji omogućava interakciju sa drugim RESTful web uslugama.
Roi Fielding je bio taj koji je kreirao ovaj interfejs za programiranje aplikacija koji ima
arhitektonski stil REST, a ovaj informatičar je definitivno znao kako da izmisli nešto što će
biti sposobno da izgradi i integriše različite protokole u samo jedan softver.
Ponekad ljudi povezuju REST API sa nečim drugim, poput ugovora koji služi kao veza
između korisnika informacija i dobavljača informacija. Dakle, sadržaj koji se zahteva od
potrošača najbolje bi se objasnio kao poziv, dok bi odgovor bio onaj koji dolazi od
proizvođača.
Zbunjujuće? Objasnimo sve ovo na jednom primeru. Kako bi izgledao API dizajn za neke
vremenske usluge, poput vremenske prognoze? Ovde korisnik daje poštanski broj. API to
prepoznaje. Šta radi proizvođač? Oni daju odgovor, ali takav odgovor se sastoji iz dva dela.
Na primer, u ovoj priči o vremenskim uslugama, tj. proznozi, prvi odgovor bi bio visoka
temperatura, a drugi odgovor bi bila niska temperatura.
Generalno, API je sposoban da Vam pomogne u mnogim tipovima komunikacija, na primer
kada pokušavate da komunicirate sa nekim sistemom ili računarom. Želite li da obavlja
određenu funkciju? API će Vam pomoći da to i postignete. Ispunjavanje zahteva je lakše uz
korišćenje REST API-ja.
API je lako razumljiv kao posrednik. Kada korisnici žele da dobiju određene web usluge, API
im to i omogućava.
Hajde da vidimo ko ima pristup čemu...
Srećom, API ne služi samo kao posrednik između usluge i korisnika, već i čini tu vezu
sigurnom, što korisnici vole i smatraju važnim. Delovi za proveru autentičnosti i kontrole, kao
i informacije i resursi takođe se kontrolišu i upravljaju putem API-ja. U svakom slučaju,
možete biti potpuno sigurni ko čemu može da pristupi.
Pitate se da li bi bilo korisno znati specifičnosti keširanja? Srećom, sa API-jem zapravo ne
morate da znate kako se izvor preuzima. Takođe, ne treba da brinete odakle on potiče. Upravo
iz navedenih razloga API olakšava svima da ga isprobaju i iskoriste sve prednosti koje može
da ponudi.
REST deo
Sigurno ste primeteili da smo uglavnom razgovarali samo o API delu u ovom članku? Da, ali
ne brinite, sada ćemo podeliti puno korisnih informacija o REST delu.
Arhitektonska ograničenja su ono što čini REST. Ova ograničenja nisu ni standard ni
protokol. Dakle, ako ste API programer ili ste pak samo znatiželjni kako REST deo može da
se primeni, znajte da postoje brojne varijacije koje možete isprobati, a upravo ćemo ih i
navesti ovde.
Recimo da je klijent uputio neke zahteve preko REST API-ja. Sledeće šta se dešava je da se ti
zahtevi zapravo prenose kroz predstavu koja dolazi iz određenog resursa, a kasnije šalju na
krajnju tačku ili na sam zahtev.
Zamislite reprezentaciju kao informaciju. Dalje dešavanje ide u pravcu slanja u određenim
formatima, kao što je JavaScript Object Notation (HTTP: JSON), Pithon, PHP, HTML,
običan tekst i još mnogo toga. Ipak, jedan od ovih formata je definitivno najomiljeniji među
korisnicima iz razloga što ga mogu čitati i računari i ljudi, a to je, naravno, JavaScript Object
Notation (ili jednostavno JSON).
Dobro, sada kada smo shvatili kako REST deo šalje informacije, postoji još nešto što bi Vam
moglo biti važno da znate ovde. Zaglavlja i parametri. Veoma su važni kada govorimo o
HTML delovima različitih zahteva za REST API. To su oni delovi koji nose i donose važne
stvari, kao što su autorizacija, kolačići, keširanje i metapodaci.
Kako API može postati RESTful?
Da bi API mogao da postane RESTful, mora da ispuni sledeće kriterijume:
1. Slojeviti sistem koji je sposoban da organizuje sve vrste servera. Balansiranje tereta i
sigurnost bili bi dobri primeri za slojeviti sistem.
2. Jedinstveni interfejs. Ovo je važno kako bi se informacije mogle obrađivati u svom
standardnom obliku.
3. Podaci koji se mogu keširati. Zašto nam ovo treba? Jednostavno zato što je takav API
sposoban da dovrši različite interakcije vezane za klijent-server protokole.
4. ''Stateless'' komunikacija. Ovo je povezano i sa interakcijama klijent-server. Važno je da
klijent nema podataka koji se čuvaju između zahteva.
5. I poslednje, ali najvažnije - arhitektura orijentisana na klijenta i server. Naravno, i kao
što je ranije već pomenuto i objašnjeno, sastoji se od različitih klijenata, usluga i resursa koji
su im potrebni za interakciju i komunikaciju. Imajte na umu da se takvi zahtevi uvek
obavljaju putem HTTP-a.
Kod-na-zahtev je opcioni kriterijum za API da postane RESTful. Proširivanje funkcionalnosti
klijenta nije neophodno, ali definitivno dodaje na važnosti.
Da li vam je ovaj članak bio koristan?
Koje su najveće prednosti korišćenja REST API-ja?
Kako Vam on može koristiti?