V roku 2000 sa v oblasti návrhu architektúry softvérového rozhrania vytvoril nový štandard interakcie medzi klientmi a servermi. Nazýval sa REST. Hlavným iniciátorom tohto konceptu bol Roy Fielding, jeden z vývojárov protokolu HTTP. V dnešnom svete sa API REST stáva čoraz populárnejším nástrojom na výmenu údajov, ktorý poskytuje efektívnu interakciu medzi všetkými druhmi aplikácií.
RESTful API je zoznam zásad a pravidiel na organizáciu interakcie medzi klientom a serverom. Umožňuje vývojárom vytvárať ľahko meniteľné a škálovateľné webové aplikácie. Základnou myšlienkou REST je reprezentovať zdroje, ktoré sú prístupné pomocou jedinečných identifikátorov URI, a manipulovať s nimi pomocou štandardných metód HTTP.
Základné pojmy rozhrania API REST
Čo je to API? Je to rozhranie, ktoré pomáha rôznym programom navzájom komunikovať. Definuje, ako možno zadávať požiadavky a aké odpovede možno prijímať. API slúži ako základ na integráciu rôznych systémov a je základnou súčasťou súčasného vývoja aplikácií.

Čo je REST? Je to architektonický štýl založený na princípoch, ktoré umožňujú pohodlné a zrozumiteľné používanie webových služieb. Je založený na protokoloch HTTP a využíva štandardné metódy, ktoré si rozoberieme ďalej. Každý zdroj dostupný prostredníctvom API má svoj vlastný jedinečný identifikátor (URI), ktorý uľahčuje prístup k nemu.
Princípy fungovania rozhrania REST API
Hlavné z nich sú:
- Klient-server. Oddelenie klientskej a serverovej časti uľahčuje nezávislý vývoj a zmeny oboch strán.
- Nestabilita. Server neukladá stav klientskych požiadaviek, vďaka čomu je každá požiadavka nezávislá a sebestačná.
- Ukladanie do vyrovnávacej pamäte. Možnosť ukladania údajov odpovede do vyrovnávacej pamäte pomáha zlepšiť výkon aplikácie znížením počtu opakovaných požiadaviek na server.
- Jednotné rozhranie. Zjednodušuje interakcie a robí systémy predvídateľnejšími vďaka použitiu štandardných prvkov.
- Viacúrovňový systém. Architektúra môže pozostávať z niekoľkých vrstiev, z ktorých každá zodpovedá za špecifické aspekty systému. Tým sa zvyšuje bezpečnosť a spravovateľnosť.
- Kód na vyžiadanie. Tento kód sa odovzdáva klientovi s cieľom rozšíriť možnosti aplikácie.
Výhody rozhrania API REST
Používanie tohto nástroja poskytuje mnoho plusov.
- Škálovateľnosť. Oddelením komponentov klienta a servera sa aplikácia dá ľahko škálovať.
- Flexibilita. Rozhranie REST API podporuje rôzne programovacie jazyky a platformy a umožňuje integráciu rôznych systémov.
- Výkon. Použitie vyrovnávacej pamäte zvyšuje rýchlosť odozvy a znižuje zaťaženie servera.
- Bezpečnosť. Viacúrovňová architektúra systému zvyšuje bezpečnosť tým, že umožňuje izolovať kritické zdroje.
Napriek zjavným výhodám REST sú na trhu aj iné technológie, ako napríklad SOAP a GraphQL. Zatiaľ čo prvá z nich sa používa v špecifických aplikáciách a poskytuje vlastné funkcie, druhú vyvinula spoločnosť Facebook. GraphQL je alternatívou k REST. Je vhodnejšia pre rozsiahle projekty.
Ako funguje rozhranie API REST?

Proces interakcie medzi klientom a serverom možno rozdeliť do niekoľkých fáz:
- Odoslanie požiadavky. Klient odošle údaje na server a naformátuje ich podľa dokumentácie API.
- Overenie totožnosti. Server overí prístupové právo klienta. V prípade neúspešného overenia sa vráti chyba 403.
- Spracovanie požiadavky. Po úspešnej autentifikácii server prijme požiadavku, vykoná potrebné manipulácie a vytvorí odpoveď.
- Vrátenie odpovede. Server odošle klientovi odpoveď. Obsahuje stav vykonania príkazu a požadované údaje.
Metódy HTTP v rozhraní REST API
Na prácu so zdrojmi sa používajú klasické metódy HTTP:
GET: Slúži na získanie údajov (napríkladGET /citiesvráti zoznam miest);POST: Používa sa na vytváranie nových zdrojov (napríkladPOST /istanbulpridá novú kaviareň v Istanbule);PUT: Používa sa na aktualizáciu existujúcich zdrojov (napr.PUT /citieszmení zoznam miest);DELETE: slúži na odstránenie zdrojov (napr.DELETE /istanbulodstráni kaviareň v Istanbule).
Každá požiadavka HTTP vracia stavový kód, ktorý označuje výsledok operácie. Kód začínajúci číslom 2 znamená úspešné vykonanie, zatiaľ čo kódy s číslom 4 alebo 5 označujú chyby.
Rozhranie REST API sa stalo štandardom pri vývoji webových služieb, poskytuje používateľom dobrý nástroj na vytváranie flexibilných a škálovateľných riešení. Jeho princípy a výhody prispeli k jeho širokej popularite a používaniu v najrôznejších aplikáciách, od budovania malých webových aplikácií až po komplexné distribuované systémy. V tomto rozšírenom úvode do API REST sa bližšie pozrieme na jeho hlavné komponenty, porovnáme ho s inými technológiami, rozoberieme využitie REST v praxi a dotkneme sa perspektív jeho rozvoja.
Dátové typy a formáty pri práci s API REST

Pri práci s API REST je dôležité zvážiť, aké formáty údajov sa používajú. Najbežnejším formátom je JSON (javaScript), ktorý sa ľahko číta a zapisuje, takže je ideálny na prenos údajov. Niekedy sa však používajú aj iné formáty, napríklad XML a HTML. Výber formátu údajov môže závisieť od požiadaviek aplikácie a preferencií vývojára. Formát JSON podporuje zložité dátové štruktúry a poskytuje úsporné využitie šírky pásma, čo je ďalšia výhoda rozhrania REST API.
Autentifikácia a autorizácia
Bezpečnosť je dôležitým aspektom pri práci s rozhraniami API REST. Jednou z metód overovania je používanie tokenov. To poskytuje bezpečný prístup k chráneným zdrojom. Jednou z najbežnejších metód je používanie tokenov JWT. Táto metóda umožňuje klientovi prístup k API na určitý čas po overení. Server nemusí ukladať stav, čím sa posilňuje koncepcia "bez stavu" REST.
Okrem toho je možné takéto overovanie rozšíriť o protokol OAuth 2.0. To pridáva ďalšiu úroveň zabezpečenia a zjednodušuje integráciu so sociálnymi médiami a inými platformami.
Rozhrania API REST a mobilné aplikácie
S rastúcou popularitou smartfónov sa rozhranie REST API stalo dôležitým súborom nástrojov pre vývojárov vytvárajúcich mobilné aplikácie. Používanie rozhrania REST API umožňuje aplikáciám komunikovať so vzdialenými servermi, prijímať a aktualizovať údaje v reálnom čase. Preto je možné vytvárať komplexné aplikácie: messengery, sociálne siete a iné softvérové riešenia, ktoré vyžadujú vysokorýchlostný prístup k informáciám.
Príklad fungovania rozhrania REST API v praktickej aplikácii
Pre lepšie pochopenie rozhrania REST API si uveďme hypotetický príklad práce s rozhraním API na správu knižnice. Predpokladajme, že máme k dispozícii rozhranie RESTful API, ktoré nám umožňuje vykonávať nasledujúce činnosti:
- získať zoznam kníh - klient môže vykonať
požiadavku GETna adresu/books, aby získal informácie o všetkých dostupných knihách; - pridanie novej knihy - v prípade potreby môže klient poslať
požiadavku POST naadresu/bookss údajmi o novej knihe vo formáte JSON; - oprava informácií o knihe - na zmenu informácií o existujúcej knihe sa použije
požiadavka PUTna/books/{id}, kde{id}je jedinečný identifikátor knihy; - vymazanie knihy - na vykonanie operácie sa môže poslať
požiadavka DELETEna rovnaký URI.
Tieto jednoduché príklady ukazujú, ako možno realizovať efektívnu správu zdrojov pomocou rozhrania REST API.
Nástroje a technológie na prácu s rozhraniami API REST
Existuje mnoho funkcií a knižníc, ktoré uľahčujú spoluprácu. Napríklad Postman je populárna aplikácia, ktorá umožňuje vývojárom posielať požiadavky, testovať a analyzovať odpovede. Iné nástroje, napríklad Swagger, umožňujú dokumentovať rozhrania API a automaticky generovať kód v rôznych programovacích jazykoch.
V jazyku Python môžete používať knižnice (Requests), ktoré poskytujú jednoduché rozhranie na odosielanie požiadaviek HTTP a spracovanie odpovedí. V jazyku javascript, najmä v rámci vývoja frontendov, použite Fetch API alebo Axios.
Záver
Rozhranie REST API zostáva jedným z najpopulárnejších nástrojov na interakciu medzi klientom a serverom. Jeho princípy poskytujú flexibilitu, škálovateľnosť a jednoduché použitie, vďaka čomu je ideálnym riešením pre väčšinu moderných webových aplikácií. Napriek vzniku alternatív (GraphQL.)