Vzdelávanie
22.12.2025
Skillmea
Čo je REST API a ako funguje? Kompletný sprievodca pre začiatočníkov
Ak ste niekedy premýšľali, ako spolu komunikujú webové aplikácie, mobilné aplikácie a servery, odpoveď je jednoduchá: REST API. REST (Representational State Transfer) je dnes najrozšírenejší štandard pre výmenu dát medzi systémami na internete.
V tomto článku sa dozviete, čo je REST API, ako funguje, aké sú jeho základné princípy a prečo sa stal štandardom moderného webového vývoja. Či už ste začínajúci programátor, IT analytik alebo sa len chcete zorientovať v technológiách, tento návod vám všetko vysvetlí jednoducho a zrozumiteľne.
Čo je REST?REST (Representational State Transfer) je architektonický štýl, ktorý definuje pravidlá pre komunikáciu medzi systémami na webe. Jeho hlavným cieľom je zjednodušiť interakciu medzi klientom (napríklad webový prehliadač alebo mobilná aplikácia) a serverom poskytovaním konzistentného prístupu k dátam.
Systémy, ktoré dodržiavajú princípy REST, sa nazývajú RESTful systémy. Tieto systémy sú postavené na dvoch kľúčových princípoch:
1. Architektúra klient-serverV REST architektúre je klient oddelený od servera. To znamená, že:
• Kód na strane klienta môže byť zmenený bez ovplyvnenia servera
• Kód na strane servera môže byť upravený bez ovplyvnenia klienta
• Oba systémy musia len vedieť, v akom formáte si vymieňajú správy
Táto separácia prináša obrovské výhody:
• Flexibilitu - používateľské rozhranie môže byť rôzne na webe, mobile či tablete
• Škálovateľnosť - server je jednoduchší a ľahšie sa rozširuje
• Modularitu - každá časť systému sa vyvíja nezávisle
Predstavte si to ako reštauráciu: hosť (klient) komunikuje cez jedálny lístok (API), ale nemusí vedieť, čo sa deje v kuchyni (server). Kuchár môže zmeniť recept, ale hosť stále objedná cez ten istý jedálny lístok.
2. Bezstavovosť (Statelessness)Systémy založené na REST sú bezstavové, to znamená, že server si nepamätá predchádzajúce požiadavky klienta. Každá požiadavka musí obsahovať všetky potrebné informácie na jej spracovanie.
Príklad:
• ❌ Server si nepamätá: "Tento používateľ už je prihlásený"
• ✅ Každá požiadavka obsahuje: "Tu je môj autentifikačný token"
Bezstavovosť zabezpečuje:
• Spoľahlivosť - ak spadne jedna požiadavka, neovplyvní to ďalšie
• Výkon - server nemusí uchovávať stav tisícov klientov
• Škálovateľnosť - požiadavky môžu byť spracované na rôznych serveroch
Tieto dva princípy pomáhajú RESTful aplikáciám dosahovať vysokú spoľahlivosť, výkon a škálovateľnosť.
Čo je REST API?REST API (Application Programming Interface), známe aj ako RESTful API, je spôsob, akým aplikácie komunikujú cez internet podľa princípov REST. Je to kontrakt medzi klientom a serverom, ktorý definuje, ako si vymieňať dáta.
REST API poskytuje štruktúrovaný spôsob prístupu k zdrojom (resources), ako sú používatelia, produkty, objednávky alebo články, pomocou štandardizovaných HTTP metód (GET, POST, PUT, DELETE).
Ako vyzerá REST API v praxi?V REST API je každý zdroj identifikovaný unikátnym URI (Uniform Resource Identifier) a dáta sa vymieňajú v ľahkých formátoch ako JSON alebo XML.
Príklad:
• Chcete získať zoznam všetkých produktov v e-shope
• Vaša aplikácia pošle požiadavku: GET https://eshop.sk/api/produkty
• Server vráti zoznam produktov vo formáte JSON
{
"produkty": [
{
"id": 1,
"nazov": "Notebook Dell XPS",
"cena": 1299
},
{
"id": 2,
"nazov": "iPhone 15 Pro",
"cena": 1399
}
]
}REST API je teda most medzi vašou aplikáciou (frontend) a databázou na serveri (backend), ktorý zabezpečuje, že komunikácia prebieha presne a predvídateľne.
Ako funguje komunikácia v REST API?Keď klient komunikuje so serverom cez REST API, prebieha to formou požiadaviek (requests) a odpovedí (responses). Pozrime sa, ako to funguje detailne.
Ako sa tvoria požiadavky (Requests)Každá REST API požiadavka obsahuje tieto základné komponenty:
1. HTTP metóda (verb)
Definuje, akú operáciu chcete vykonať:
• GET - Načítanie dát (zobrazenie zoznamu alebo konkrétneho záznamu)
• POST - Vytvorenie nového záznamu
• PUT - Aktualizácia existujúceho záznamu
• DELETE - Vymazanie záznamu
Príklad použitia:
GET /produkty → Zobraz všetky produkty
GET /produkty/15 → Zobraz produkt s ID 15
POST /produkty → Vytvor nový produkt
PUT /produkty/15 → Aktualizuj produkt s ID 15
DELETE /produkty/15 → Vymaž produkt s ID 15
2. Hlavička (Header)
Obsahuje metadáta o požiadavke, napríklad:
• Accept - aký formát dát klient očakáva (JSON, XML, HTML)
• Content-Type - aký formát dát klient posiela
• Authorization - autentifikačný token pre zabezpečené API
Príklad hlavičky:
GET /produkty/15
Accept: application/json
Authorization: Bearer abc123xyz
3. Cesta k zdroju (Path)
URI, ktoré špecifikuje, na aký zdroj sa žiadosť vzťahuje.
Dobré praktiky pre cesty:
• Používajte množné číslo: /produkty (nie /produkt)
• Buďte hierarchickí: /objednavky/123/polozky = položky objednávky č. 123
• Používajte ID pre konkrétne záznamy: /zakaznici/456
Príklady:
GET /zakaznici → Všetci zákazníci
GET /zakaznici/456 → Zákazník s ID 456
GET /zakaznici/456/objednavky → Objednávky zákazníka 456
POST /zakaznici → Vytvor nového zákazníka
4. Telo požiadavky (Body) - voliteľné
Pri vytváraní alebo aktualizácii dát (POST, PUT) posielate dáta v tele požiadavky:
POST /zakaznici
Content-Type: application/json
{
"meno": "Ján Novák",
"email": "jan.novak@email.sk",
"telefon": "+421901234567"
}Ako vyzerajú odpovede (Responses)Server odpovedá na požiadavku dvoma hlavnými časťami:
1. Stavové kódy (Status Codes)
Číselný kód, ktorý hovorí, či operácia prebehla úspešne alebo došlo k chybe.
Najdôležitejšie stavové kódy:
[Najdôležitejšie stavové kódy REST API]
Príklad odpovede:
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": 15,
"nazov": "Notebook Dell XPS",
"cena": 1299,
"sklad": 5
}
2. Content-Type hlavička
Server informuje klienta, v akom formáte posiela dáta:
Content-Type: application/json → JSON formát
Content-Type: application/xml → XML formát
Content-Type: text/html → HTML stránka
Content-Type: image/png → Obrázok PNGMIME typy - čo to je?MIME (Multipurpose Internet Mail Extensions) typy špecifikujú formát obsahu. Pozostávajú z typu a podtypu, oddelených lomítkom.
Bežne používané MIME typy:
Text:
• text/html - HTML stránka
• text/css - CSS súbor
• text/plain - Čistý text
Obrázky:
• image/jpeg - JPEG obrázok
• image/png - PNG obrázok
• image/gif - GIF animácia
Audio/Video:
• audio/mpeg - MP3 súbor
• video/mp4 - MP4 video
Aplikácie:
• application/json - JSON dáta (najpoužívanejšie v API)
• application/xml - XML dáta
• application/pdf - PDF dokument
• application/octet-stream - Binárne dáta
Praktické príklady REST API požiadaviekPredstavme si, že vytvárame e-shop s oblečením na adrese modnyboutique.sk. Pozrime sa na konkrétne príklady.
GET požiadavky - Načítanie dátNačítanie všetkých zákazníkov:
GET https://modnyboutique.sk/api/zakaznici
Accept: application/jsonOdpoveď servera:
200 OK
Content-Type: application/json
{
"zakaznici": [
{
"id": 1,
"meno": "Jana Kováčová",
"email": "jana@email.sk"
},
{
"id": 2,
"meno": "Peter Horváth",
"email": "peter@email.sk"
}
]
}Načítanie konkrétneho zákazníka:
GET https://modnyboutique.sk/api/zakaznici/1
Accept: application/jsonOdpoveď:
200 OK
Content-Type: application/json
{
"id": 1,
"meno": "Jana Kováčová",
"email": "jana@email.sk",
"telefon": "+421901234567"
}POST požiadavky - Vytvorenie nového záznamuVytvorenie nového zákazníka:
POST https://modnyboutique.sk/api/zakaznici
Content-Type: application/json
{
"meno": "Martin Lukáč",
"email": "martin@email.sk",
"telefon": "+421905555555"
}Odpoveď servera:
201 Created
Content-Type: application/json
{
"id": 3,
"meno": "Martin Lukáč",
"email": "martin@email.sk",
"telefon": "+421905555555"
}Server automaticky vygeneroval ID 3 pre nového zákazníka.
PUT požiadavky - Aktualizácia existujúceho záznamuAktualizácia emailu zákazníka:
PUT https://modnyboutique.sk/api/zakaznici/3
Content-Type: application/json
{
"meno": "Martin Lukáč",
"email": "martin.lukac.novy@email.sk",
"telefon": "+421905555555"
}Odpoveď:
200 OK
Content-Type: application/json
{
"id": 3,
"meno": "Martin Lukáč",
"email": "martin.lukac.novy@email.sk",
"telefon": "+421905555555"
}DELETE požiadavky - Vymazanie záznamuVymazanie zákazníka:
DELETE https://modnyboutique.sk/api/zakaznici/3Odpoveď:
204 No ContentStavový kód 204 znamená, že operácia bola úspešná a server nevracia žiadne dáta (záznam bol vymazaný).
Návrh REST API systému - Praktický príkladPredstavme si, že vytvárame aplikáciu na zdieľanie fotografií z rôznych miest. Potrebujeme API pre správu používateľov, miest a fotografií.
Dátové modelyModel používateľa:
{
"user": {
"id": 1,
"username": "jana_photographer",
"email": "jana@email.sk"
}
}Model fotografie:
{
"photo": {
"id": 45,
"venue_id": 12,
"author_id": 1,
"url": "https://cdn.photoapp.sk/photos/45.jpg"
}
}Model miesta:
{
"venue": {
"id": 12,
"name": "Bratislavský hrad",
"address": "Hrad, 811 06 Bratislava"
}
}REST API endpointyPoužívatelia:
GET /users → Zoznam všetkých používateľov
GET /users/:id → Detail používateľa
POST /users → Vytvorenie používateľa
PUT /users/:id → Aktualizácia používateľa
DELETE /users/:id → Vymazanie používateľaMiesta:
GET /venues → Zoznam miest
GET /venues/:id → Detail miesta
POST /venues → Vytvorenie miesta
PUT /venues/:id → Aktualizácia miesta
DELETE /venues/:id → Vymazanie miestaFotografie:
GET /venues/:id/photos → Všetky fotky z miesta
GET /venues/:id/photos/:photo_id → Konkrétna fotka
POST /venues/:id/photos → Nahratie fotky na miesto
DELETE /venues/:id/photos/:photo_id → Vymazanie fotkyTáto hierarchická štruktúra je jasná a intuitívna - už z URL vidíte, že /venues/12/photos/45 znamená "fotografia č. 45 z miesta č. 12".
Výhody a nevýhody REST API✅ Výhody REST1. Jednoduchosť REST využíva známe HTTP metódy a stavové kódy, čo je pre vývojárov intuitívne a ľahko naučiteľné.
2. Škálovateľnosť Vďaka bezstavovosti môžete ľahko pridávať ďalšie servery a zvyšovať výkon systému bez zmeny architektúry.
3. Flexibilita REST podporuje rôzne formáty dát (JSON, XML, HTML, text) podľa potrieb klienta.
4. Interoperabilita Štandardizovaný prístup umožňuje komunikáciu medzi rôznymi platformami a jazykmi (Java, Python, JavaScript, PHP...).
5. Oddelenie klienta a servera Frontend a backend tímy môžu pracovať nezávisle, pokiaľ dodržiavajú API kontrakt.
❌ Nevýhody REST1. Over-fetching a Under-fetching
• Over-fetching - dostanete viac dát, než potrebujete
• Under-fetching - potrebujete viac požiadaviek na získanie všetkých dát
Príklad: Chcete meno autora článku, ale GET /articles/15 vráti celý článok vrátane obsahu, tagov, komentárov...
2. Výkonnostné limity
Pre získanie prepojených dát potrebujete viacero požiadaviek:
GET /zakaznici/1 → Zákazník
GET /zakaznici/1/objednavky → Jeho objednávky
GET /objednavky/5/polozky → Položky objednávky= 3 samostatné požiadavky namiesto jednej
3. Neexistuje striktný štandard
Rôzni vývojári môžu implementovať REST rôzne, čo vedie k nekonzistencii API.
4. Nie vždy efektívne pre zložité scenáre
Pre komplexné dopyty môže byť lepšou voľbou GraphQL, ktoré umožňuje načítať presne to, čo potrebujete, v jednej požiadavke.
REST API vs iné technológieREST API vs GraphQL[Porovnanie REST API a GraphQL]
Kedy použiť REST: Štandardné CRUD operácie, jednoduché API, dobré pre verejné API.
Kedy použiť GraphQL: Komplexné dopyty, mobilné aplikácie (šetrenie dát), keď potrebujete flexibilitu.
REST API vs SOAP[Porovnanie REST API a SOAP]
Kedy použiť REST: Moderné webové a mobilné aplikácie.
Kedy použiť SOAP: Finančné systémy, enterprise aplikácie s vysokými bezpečnostnými požiadavkami.
Ako sa naučiť pracovať s REST API?Ak chcete prakticky zvládnuť REST API, odporúčame tieto kroky:
1. Pochopte základy HTTPBez HTTP nemôžete pochopiť REST. Naučte sa:
• HTTP metódy (GET, POST, PUT, DELETE)
• Stavové kódy (200, 404, 500...)
• Hlavičky (Headers)
• Telá požiadaviek a odpovedí
2. Vyskúšajte existujúce APIZačnite s verejnými API, ktoré nevyžadujú zložitú autentifikáciu:
• JSONPlaceholder - falošné REST API pre testovanie
• OpenWeatherMap - API pre informácie o počasí
• REST Countries - informácie o krajinách sveta
3. Používajte nástroje na testovanie• Postman - najpoužívanejší nástroj na testovanie API
• Insomnia - alternatíva k Postman
• cURL - príkazový riadok pre pokročilých
4. Vytvorte vlastné REST APINajlepší spôsob učenia je praxou. Vytvorte si jednoduché API:
• Node.js + Express - rýchle, jednoduché
• Python + Flask/Django - pre Python fanúšikov
• Java + Spring Boot - pre enterprise aplikácie
• PHP + Laravel - pre webových vývojárov
5. Naučte sa best practices• Používajte správne HTTP metódy
• Vracajte správne stavové kódy
• Verzujte svoje API (/api/v1/...)
• Dokumentujte API pomocou Swagger/OpenAPI
• Implementujte rate limiting a autentifikáciu
ZáverREST API sa stal základným kameňom moderného webového vývoja vďaka svojej jednoduchosti, flexibilite a škálovateľnosti. Umožňuje rôznym systémom - od webových stránok cez mobilné aplikácie až po IoT zariadenia - bezproblémovo komunikovať a vymieňať si dáta.
Či už sa chystáte stať backend vývojárom, frontend programátorom alebo full-stack developerom, pochopenie REST API je kľúčové. Je to zručnosť, ktorá vám otvorí dvere v modernom softvérovom vývoji.
Na Skillmea ponúkame praktické kurzy, kde sa naučíte tvoriť REST API od základov až po pokročilé techniky. Naši lektori sú aktívni programátori z praxe, ktorí vás naučia presne to, čo potrebujete v reálnych projektoch.
Časté otázky o REST API1. Používajú všetky REST API JSON?Nie. JSON je dnes najobľúbenejší formát pre svoju jednoduchosť a čitateľnosť, ale REST API môžu používať aj XML, YAML alebo obyčajný text. Závisí to od hlavičky Accept v požiadavke a implementácie servera.
2. Je REST API to isté ako HTTP?Nie. REST je architektonický štýl, nie protokol. Väčšina REST API využíva HTTP ako transportný protokol, ale REST princípy môžu byť aplikované aj cez iné protokoly. HTTP sa stal štandardom vďaka svojej jednoduchosti a rozšíreniu.
3. Potrebujem autentifikáciu pre REST API?Závisí od použitia. Verejné API (napr. informácie o počasí) môžu byť bez autentifikácie. Pre citlivé operácie (vytvorenie, editácia, mazanie) používajte autentifikáciu:
• API kľúče - jednoduchý token v hlavičke
• OAuth 2.0 - bezpečné pre prácu s používateľskými dátami
• JWT (JSON Web Tokens) - moderný, bezstavový prístup
4. Aký je rozdiel medzi API a REST API?API je všeobecný pojem pre akékoľvek rozhranie, ktoré umožňuje aplikáciám komunikovať. REST API je špecifický typ API, ktorý dodržiava REST princípy. Nie každé API je REST API - existujú aj SOAP API, GraphQL API, gRPC API a ďalšie.
5. Môžem používať REST API pre mobilné aplikácie?Áno! REST API je ideálne pre mobilné aplikácie. Mobilná aplikácia pošle HTTP požiadavku na server, server vráti dáta vo formáte JSON a aplikácia ich zobrazí používateľovi. Väčšina moderných mobilných aplikácií (Facebook, Instagram, Uber) používa REST API.