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.
Č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.
Hlavné z nich sú:
Používanie tohto nástroja poskytuje mnoho plusov.
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.
Proces interakcie medzi klientom a serverom možno rozdeliť do niekoľkých fáz:
Na prácu so zdrojmi sa používajú klasické metódy HTTP:
GET
: Slúži na získanie údajov (napríklad GET /cities
vráti zoznam miest);POST
: Používa sa na vytváranie nových zdrojov (napríklad POST /istanbul
pridá novú kaviareň v Istanbule);PUT
: Používa sa na aktualizáciu existujúcich zdrojov (napr. PUT /cities
zmení zoznam miest);DELETE
: slúži na odstránenie zdrojov (napr. DELETE /istanbul
odstrá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.
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.
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.
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.
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:
požiadavku GET
na adresu /books
, aby získal informácie o všetkých dostupných knihách;požiadavku POST na
adresu /books
s údajmi o novej knihe vo formáte JSON;požiadavka PUT
na /books/{id}
, kde {id}
je jedinečný identifikátor knihy;požiadavka DELETE
na rovnaký URI.Tieto jednoduché príklady ukazujú, ako možno realizovať efektívnu správu zdrojov pomocou rozhrania REST API.
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.
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.)