Application Programming Interface (API) predstavlja formalizovani skup softverski kontrolisanih poziva i kompjuterskih rutina koje aplikacija može koristiti kako bi pristupila dostupnim mrežnim uslugama. Evolucija API-ja kreće sa RPC-om (Remote Procedure Call) i SOAP-om (Simple Object Access Protocol), da bi se termin REST (Representational State Transfer) prvi put uveo 2000. godine u doktorskoj disertaciji Roy Fiedling-a.

Skraćenica REST opisuje proces kojim server na zahtev, odgovora reprezentacijom nekog resursa (danas će to najčešće biti HTML, XML ili JSON dokument) i taj resurs će sadržati hipermedijske veze koje se mogu pratiti da bi se stanje sistema promenilo. Svaki takav zahtev će zauzvrat dobiti reprezentaciju resursa i tako dalje. Nakon REST-a, pojavljuju se koncepti Websocket API ali i GraphQL koji predstavlja upitni jezik za API-je.

Fiedling je tokom kreiranja REST stila identifikovao zahteve koji se primenjuju kada se kreira aplikacija zasnovana na internetu. Zahtevi se ogledaju u niskoj ulaznoj barijeri, kao što su keširanje i karakteristike klijent-server arhitekture ali i one koje su jedinstvene za REST, kao što je koncept resursa. Savremene REST usluge se fokusiraju na događaje životnog ciklusa resursa (kreiranje, ažuriranje, brisanje i pristup čitanju) predstavljene odgovarajućim HTTP metodama (PUT, POST, DELETE, GET). Standard za REST API dizajn je OpenAPI6 i zasnovan je na Swagger-u .

REST stil savršeno odgovara računarstvu u oblaku jer se mogućnosti oblaka lako mogu videti kao prvoklasni REST resursi. Kada upravljate resursima u oblaku, direktni API pozivi se retko obavljaju. Obično se API koristi preko OCI konzole , kompleta za razvoj softvera (SDK) za različite jezike, interfejsa komandne linije (OCI CLI) ili softvera infrastrukture kao koda kao što je Terraform. U svim ovim slučajevima, API pozivi su konstruisani i poslati u pozadini. Korisnik daje samo potreban unos.

oci-rest-api

OCI SDK je biblioteka za određeni programski jezik koja omogućava vašem softveru interakciju sa područjem za upravljanje oblakom Oracle Cloud Infrastructure. SDK izlaže OCI API pozive kao funkcije ili metode koje je programeru lakše koristiti i sa kojima se brže može raditi. Na ovaj način, prilagođena logika koja upravlja i nadgleda OCI resurse mogu biti ugrađeni u vaše aplikacije.

OCI CLI (interfejs komandne linije) je uslužni program komandne linije koji vam omogućava interakciju sa Oracle Cloud Infrastructure REST API-jima na skriptovan način. CLI je bogatiji opcijama u odnosu na OCI konzolu jer možete pronaći funkcije dostupne kao CLI komande koje nisu implementirane u OCI konzoli.

Terraform je alatka za obezbeđivanje infrastrukture kao koda, koja prati stanje infrastrukture kojom upravlja kako bi omogućila deklarativni pristup. Umesto definisanja i ređanja akcija u okviru interfejsa komandne linije, Terraform vam omogućava da definišete očekivano stanje vaše infrastrukture. Posao Terraforma postaje da otkrije koje akcije i kojim redosledom treba preduzeti da bi se resursi oblaka doveli u očekivano stanje. Ne morate da brinete o bilo kakvim posredničkim stanjima. Samo je rezultat bitan.

Terraform podržava raznovrstan opseg dobavljača u oblaku preko skupa dodataka koji se nazivaju provajderi. Kada pokrenete novi projekat koristeći komandu terraform init, Terraform čita vaše konfiguracione datoteke u ovom direktorijumu, otkriva kog dobavljača treba da koristite i preuzima najnoviju verziju dodatka određenog dobavljača. Dodatak dobavljača je taj koji je odgovoran za interakciju sa, u ovom slučaju, REST API-jima Oracle Cloud Infrastructure.