IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

1. diel - Úvod do webových API v Java Spring

Vitajte v e-learning kurze Spring Boot, kde sa zoznámime s tvorením moderných webových aplikácií pomocou REST API. Práve API sú najčastejšie typy projektov v Java Spring. Naším cieľom bude vytvoriť jednoduché RESTful API pre správu databázy filmov. Dáta o filmoch, režiséroch a hercoch budeme môcť pridávať, upravovať alebo mazať a samozrejme si ich aj prezerať.

Pre komunikáciu s naším API v Jave budeme využívať už existujúceho javascriptového klienta v React alebo Angular. Ukážme si, ako bude práca s naším API vyzerať:

Spring Boot pre pokročilých

V dnešnom Java Spring tutoriále si vysvetlíme, prečo sa moderné webové aplikácie robia pomocou API.

Minimálne požiadavky

Kurz predpokladá znalosti:

Pokiaľ niektoré zo znalostí nemáte, absolvujte prvý daný kurz.

Výhodou je skúsenosť s:

Pokiaľ nemáte znalosti JavaScriptu, budete môcť kurz rovnako prejsť. Len nebudete rozumieť tomu, ako klient funguje, čo v zásade nevadí - Zameriavame sa tu na server v Jave a Springu.

Motivácia

V doterajších kurzoch frameworku Spring sme si vytvorili aplikáciu kompletne len v Spring Boot. V minulosti sa aplikácie naozaj takto tvorili a doteraz sa nejaké aplikácie takto aj tvoria, hlavne tie, ktoré sú zamerané na články (napr. ITnetwork takto funguje).

V praxi sa dnes ale na webe používa množstvo aplikácií, ktoré sú naozaj skôr aplikáciami než webovými stránkami s článkami, napr. Spotify alebo Google Docs. Od takej aplikácie čaká používateľ skôr funkčnosť ako majú napríklad desktopové aplikácie bežiace v systéme Windows a nie ako webové stránky, kde sa celá stránka prenačíta vždy, keď sa na niečo klikne. Preto sa dnes server už nepoužíva na posielanie celej stránky do prehliadača, ale iba na posielanie dát, ktoré si stránka alebo aplikácia spracováva bez toho, aby sa musela neustále obnovovať a preblikávať.

Ako funguje aplikácia s API?

Takáto webová aplikácia má potom 2 časti a jedná sa v podstate o 2 oddelené aplikácie:

  • API server - Aplikácia s databázou bežiacou na vzdialenom serveri, posiela a prijíma dáta. Túto aplikáciu budeme v tomto kurze vytvárať.
  • Tučný klient - Webová stránka v JavaScripte alebo mobilná aplikácia, ktorá so serverom komunikuje. Túto aplikáciu si len stiahneme a budeme ju používať na komunikáciu s naším API serverom. Pre záujemcov sa jedná o aplikáciu vytvorenú podľa kurzov Základy React alebo Základy Angular frameworku, môžete sa teda pozrieť, ako bola vytvorená a prípadne si ju aj upraviť.
Výhodou servera je samozrejme to, že dáta našej aplikácie sú na internete, a teda stále aktuálne. Ktokoľvek si spustí klienta, uvidí posledné dáta, napr. aké boli dnes pridané nové filmy.

API

API je skratka pre Application Programming Interface, po slovensky aplikačné programové rozhranie. Je to všeobecne čokoľvek, čo umožňuje jednotlivým častiam softvéru komunikovať medzi sebou. Komunikácia medzi serverom a klientom musí byť samozrejme presne definovaná, inak si aplikácie medzi sebou nebudú rozumieť. Náš server teda naprogramujeme podľa dokumentácie, aby poskytoval API (rozhranie), s ktorým daný klient vie pracovať.

API si môžeme predstaviť ako čašníka v reštaurácii, ktorý zaisťuje (a prekladá) komunikáciu medzi hosťom a kuchárom. Alebo ako palubnú dosku automobilu, ktorá pomocou presne definovaných metód (tlačidla na doske) odovzdá to, čo vodič (jeden komponent) chce inému komponentu (motoru). A návod k autu je ako API dokumentácia, kde sú jednotlivé metódy (tlačidlá) popísané.

Existujú grafické API, API pre frameworky a knižnice, API operačných systémov, ale nás budú zaujímať hlavne webové API.

Webová API

Webové API definuje, ako spolu komunikujú nejaké komponenty po internete. Typicky sa jedná o dve časti aplikácie (webová stránka si doťahuje zo servera potrebné dáta pomocou AJAX dotazu) alebo dve rôzne aplikácie (mobilné aplikácie si sťahuje dáta z webu). Synonymom môže byť webová služba. Naše webové API bude umožňovať vykonávať operácie nad databázou filmov, napr. vyhľadá existujúci film alebo vloží nový film. Webové API samozrejme nie sú obmedzené len na databázy, môžeme cez ne posielať SMS, zistiť aktuálne počasie a podobne.

Ukážka webového API

Malinké, ale veľmi populárne API medzi českými e-shopmi beží na stránkach Českej národnej banky. Konkrétne na tejto adrese

Na adrese sú dostupné kurzy mien pre aktuálny deň. Nejde ale o žiadnu HTML stránku, ale o surové dáta vo formáte CSV. Webové API totiž nie sú určené pre ľudí, ale pre programy. Výstup tohto API vyzerá takto:

07.01.2019 #4
země|měna|množství|kód|kurz
Austrálie|dolar|1|AUD|15,947
Brazílie|real|1|BRL|6,053
Bulharsko|lev|1|BGN|13,076
Čína|žen-min-pi|1|CNY|3,262
Dánsko|koruna|1|DKK|3,425
EMU|euro|1|EUR|25,575
Filipíny|peso|100|PHP|42,647
Hongkong|dolar|1|HKD|2,852
Chorvatsko|kuna|1|HRK|3,442
Indie|rupie|100|INR|32,093
Indonesie|rupie|1000|IDR|1,586
Island|koruna|100|ISK|18,916
Izrael|nový šekel|1|ILS|6,049
Japonsko|jen|100|JPY|20,641
Jižní Afrika|rand|1|ZAR|1,612
Kanada|dolar|1|CAD|16,737
Korejská republika|won|100|KRW|1,996
Maďarsko|forint|100|HUF|7,965
Malajsie|ringgit|1|MYR|5,431
Mexiko|peso|1|MXN|1,156
MMF|ZPČ|1|XDR|31,079
Norsko|koruna|1|NOK|2,609
Nový Zéland|dolar|1|NZD|15,111
Polsko|zlotý|1|PLN|5,960
Rumunsko|leu|1|RON|5,485
Rusko|rubl|100|RUB|33,405
Singapur|dolar|1|SGD|16,467
Švédsko|koruna|1|SEK|2,502
Švýcarsko|frank|1|CHF|22,780
Thajsko|baht|100|THB|69,878
Turecko|lira|1|TRY|4,169
USA|dolar|1|USD|22,347
Velká Británie|libra|1|GBP|28,501

Toto API používa napr. web ITnetwork, ktorý si z neho v pravidelných časových intervaloch aktualizuje kurz EUR pre nákupy kurzov zo Slovenska.

Ukážka API pre získanie detailu herca

Pre ilustráciu si ukážme aj ako bude vyzerať odpoveď API, ktorú budeme v kurze vytvárať. Nižšie je uvedená odpoveď pre požiadavku klienta na konkrétneho herca:

{
    "_id": "1",
    "name": "Dwayne Johnson",
    "birthDate": "1972-05-02T00:00:00.000Z",
    "country": "USA",
    "biography": "Nejprve atlet a hráč amerického fotbalu, poté wrestler a následně herec.",
    "role": "actor",
    "__v": 0
}

Našou úlohou teda bude vytvoriť službu s databázou, s ktorou sa bude komunikovať pomocou textových správ, ako je tá vyššie. API používa formát JSON, o ktorom si povieme nabudúce.


 

Všetky články v sekcii
Spring Boot pre pokročilých
Článok pre vás napísal David Hartinger
Avatar
Užívateľské hodnotenie:
Ešte nikto nehodnotil, buď prvý!
David je zakladatelem ITnetwork a programování se profesionálně věnuje 15 let. Má rád Nirvanu, nemovitosti a svobodu podnikání.
Unicorn university David sa informačné technológie naučil na Unicorn University - prestížnej súkromnej vysokej škole IT a ekonómie.
Aktivity