Šta je API? Vodič za pravljenje aplikacija bez programiranja
API (application programming interface) je definisan način na koji jedan softver traži od drugog podatke ili da mu nešto uradi. Vaša aplikacija šalje zahtev u dogovorenom formatu — „daj mi sutrašnje rezervacije”, „naplati ovu karticu 20 evra”, „sažmi ovaj tekst” — a drugi sistem vraća strukturisan odgovor. API-ji su način na koji se delovi aplikacije međusobno povezuju, i kako vaša aplikacija koristi spoljne servise poput plaćanja, email-a, mapa i AI-ja.
Zašto su API-ji važni kad pravite uz AI
Gotovo svaka korisna aplikacija sastavljena je od delova koji komuniciraju preko API-ja:
- Unutar vaše aplikacije, ekrani u pregledaču pozivaju API vaše pozadine da učitaju i sačuvaju podatke.
- Van vaše aplikacije, vaša pozadina poziva API-je drugih kompanija: Stripe za naplatu, provajdera email-a za slanje računa, provajdera AI modela za generisanje teksta.
Kada od AI alata zatražite da „naplaćuje plaćanja” ili „dodaj AI sažetak”, on zapravo piše kod koji poziva API. Osnove vam pomažu da razumete šta AI treba od vas (obično nalog kod tog servisa i API ključ), gde stvari mogu da krenu naopako i koliko će koštati.
Svakodnevna analogija
Zamislite restoran. Ne ulazite u kuhinju i ne kuvate sami. Čitate jelovnik, kažete konobaru šta želite na način koji kuhinja razume, a konobar donosi hranu — ili kaže da je jelo rasprodato.
- Jelovnik je dokumentacija API-ja: spisak onoga što možete da tražite i kako.
- Konobar je API: jedan dogovoren način na koji zahtevi ulaze, a odgovori izlaze.
- Kuhinja je drugi sistem: ne morate da znate kako radi unutra.
- Vaša porudžbina je zahtev; tanjir je odgovor.
Kuhinja može da promeni rernu i osoblje, a da vas to ne pogodi, sve dok jelovnik ostaje isti. U tome je prava vrednost API-ja: dva sistema mogu da rade zajedno, a nijedan ne mora da zna kako je drugi napravljen.
Kako radi zahtev ka veb API-ju
Većina API-ja koje ćete sresti su veb API-ji koji rade preko HTTP-a, istog protokola koji koristi vaš pregledač. Svaki zahtev ima nekoliko delova:
| Deo | Šta je | Primer |
|---|---|---|
| Metoda | Vrsta radnje | GET (čitanje), POST (kreiranje) |
| URL / krajnja tačka | Adresa stvari nad kojom radite | https://api.example.com/bookings |
| Zaglavlja | Dodatne informacije, uključujući ko ste | Authorization: Bearer <vaš ključ> |
| Telo | Podaci koje šaljete, za kreiranje i izmene | {"name": "Lena", "time": "14:00"} |
A svaki odgovor ima:
| Deo | Šta je | Primer |
|---|---|---|
| Statusni kod | Broj koji kaže kako je prošlo | 200 OK, 201 Created, 404 Not Found |
| Telo | Vraćeni podaci, obično kao JSON | {"id": 5001, "status": "confirmed"} |
JSON (JavaScript Object Notation) je jednostavan tekstualni format sa imenima i vrednostima u vitičastim zagradama. To je standardan način na koji veb API-ji razmenjuju podatke.
REST: najčešći stil
REST je široko korišćena konvencija za projektovanje veb API-ja. Svaka vrsta stvari dobija svoju URL adresu, a standardne metode govore šta se radi s njom. Evo kako bi REST API za aplikaciju za rezervacije mogao da izgleda:
| Metoda | Krajnja tačka | Šta radi |
|---|---|---|
GET | /api/bookings | Lista rezervacija |
GET | /api/bookings/5001 | Vraća jednu rezervaciju |
POST | /api/bookings | Pravi novu rezervaciju |
PATCH | /api/bookings/5001 | Menja deo rezervacije, na primer vreme |
DELETE | /api/bookings/5001 | Otkazuje (briše) rezervaciju |
PUT takođe postoji i po konvenciji zamenjuje ceo zapis, dok PATCH menja samo polja koja pošaljete.
Statusni kodovi koje ćete najčešće videti:
| Kod | Značenje |
|---|---|
200 / 201 | Uspeh / kreirano |
400 | Loš zahtev — nešto u onome što ste poslali je pogrešno ili nedostaje |
401 | Nije autentifikovano — nema važeće prijave ili ključa |
403 | Zabranjeno — poznati ste, ali ne smete ovo da uradite |
404 | Nije pronađeno |
429 | Previše zahteva — dostigli ste ograničenje brzine |
500 | Server je imao grešku |
Kada vaša aplikacija pukne, statusni kod je često najbrži trag. 401 od provajdera plaćanja obično znači da ključ nedostaje ili je pogrešan; 429 znači da zovete previše često.
REST nije jedini stil — postoje i GraphQL i RPC API-ji — ali REST je ono što koristi većina servisa i backend-ova pravljenih uz AI.
Radni primer: potvrda rezervacije
Kada klijent rezerviše šišanje u aplikaciji salona, za sekund ili dva može da se dogodi nekoliko poziva API-ja:
- Stranica za rezervaciju u pregledaču šalje
POST /api/bookingssa uslugom, terminom i podacima klijenta vašoj pozadini. - Vaša pozadina proverava da li je termin slobodan, čuva rezervaciju u bazi podataka i vraća
201 Created. - Vaša pozadina poziva API provajdera email-a sa njegovim tajnim ključem: „pošalji ovu potvrdu na lena@example.com.”
- Ako postoji depozit, vaša pozadina traži od API-ja provajdera plaćanja da napravi sesiju za plaćanje i šalje klijenta tamo.
- Kasnije, provajder plaćanja poziva vašu aplikaciju da kaže da je plaćanje uspelo. Taj obrnuti poziv je webhook.
Prva dva koraka su vaš sopstveni API između frontenda i backend-a. Koraci 3–5 su API-ji trećih strana.
Uobičajeni pojmovi objašnjeni
| Pojam | Značenje |
|---|---|
| Krajnja tačka (endpoint) | Jedna konkretna URL adresa na koju API odgovara. |
| API ključ | Tajna niska koja identifikuje vašu aplikaciju kod servisa. Tretirajte je kao lozinku. |
| Autentifikacija | Dokazivanje ko poziva — ključem, tokenom ili prijavom. Pogledajte šta je autentifikacija. |
| Ograničenje brzine (rate limit) | Gornja granica broja zahteva koje možete poslati u određenom periodu. |
| SDK | Gotova biblioteka koda koja olakšava pozivanje određenog API-ja. |
| Dokumentacija | „Jelovnik”: koje krajnje tačke postoje, šta primaju i vraćaju. |
| Sandbox / test režim | Verzija servisa za testiranje bez pravog novca ili pravih podataka. |
| Webhook | Poziv iz drugog servisa u vašu aplikaciju kada se nešto desi. |
Česte greške i zablude
- Stavljanje tajnih ključeva u frontend. Sve u kodu koji se izvršava u pregledaču može da vidi svako ko poseti stranicu. Tajni ključevi moraju ostati na serveru, u promenljivim okruženja ili tajnama.
- Lepljenje ključeva u chat. Istorija chata može biti sačuvana. Umesto toga koristite funkciju tajni vašeg alata, a svaki ključ koji ste izložili zamenite novim.
- Pretpostavka da je API besplatan. Mnogi API-ji naplaćuju po zahtevu ili po jedinici korišćenja — AI API-ji naplaćuju po tokenima. Proverite cene i postavite ograničenja potrošnje. Pogledajte kako koristiti LLM API-je.
- Nerukovanje greškama. Spoljni servisi padnu, isteknu im rokovi i dostignu ograničenja. Tražite razumne poruke o greškama i ponavljanje pokušaja.
- Verovanje pregledaču. Vaš sopstveni API mora sam da proverava dozvole. Sakrivanje dugmeta ne sprečava nekoga da pozove krajnju tačku direktno.
- Korišćenje živih ključeva u testiranju. Koristite ključeve test režima dok ne budete spremni za lansiranje.
Šta tražiti od AI alata
- „Koje spoljne API-je ova aplikacija koristi i koliko svaki košta?”
- „Pozivaj API za plaćanja samo sa servera. Čitaj ključ iz promenljive okruženja.”
- „Navedi svaku krajnju tačku u našem API-ju, šta radi i ko sme da je poziva.”
- „Proveri na serveru da ulogovani korisnik poseduje rezervaciju pre nego što je izmeniš ili obrišeš.”
- „Ako API za email ne uspe, ipak sačuvaj rezervaciju i zabeleži grešku.”
- „Za sada koristi test režim provajdera.”
API-ji u Mythex-u
Mythex može da napravi sopstveni API — kao deo web aplikacije ili kao zaseban backend u Node-u, Python-u (FastAPI), C#-u ili Java-i koji radi uz vaš frontend — i da napiše kod koji poziva spoljne servise. API ključeve dodajete kao tajne projekta, a ne u chat, i aplikacija ih koristi u pregledu i nakon objavljivanja. Dokumentacija ima recepte za integraciju bilo kog API-ja i izgradnju REST API backend-a.
Pitanja
Šta je API jednostavno rečeno?
API (application programming interface) je definisan način na koji jedan softver traži od drugog podatke ili da nešto uradi. Vaša aplikacija šalje zahtev u dogovorenom formatu, a drugi sistem vraća odgovor — na primer vremensku prognozu, rezultat plaćanja ili AI generisan odgovor.
Šta je REST API?
REST API je čest stil veb API-ja u kome svaka vrsta stvari (rezervacije, klijenti) ima svoju URL adresu, a koristite standardne HTTP metode — GET za čitanje, POST za kreiranje, PUT ili PATCH za izmenu, DELETE za brisanje. Podaci se obično vraćaju kao JSON.
Šta je API ključ i gde ga čuvati?
API ključ je tajna niska koja identifikuje vašu aplikaciju kod nekog servisa i često joj omogućava da troši novac ili pristupa podacima. Čuvajte ga u promenljivim okruženja ili u tajnama projekta na serveru, nikad u kodu koji se izvršava u pregledaču i nikad u javnom repozitorijumu.
Koja je razlika između API-ja i webhook-a?
Kod API-ja vaša aplikacija traži nešto od drugog servisa kada to želi. Kod webhook-a drugi servis poziva vašu aplikaciju kada se nešto desi — na primer, provajder plaćanja vas obaveštava da je plaćanje uspelo.