Zarábaj až 6 000 € mesačne! Akreditované rekvalifikačné kurzy od 0 €. Viac informácií.

1. diel - REST API v Django REST - Úvod do webových API Nové

Vitajte v e-learning kurze Django REST Framework, kde sa zoznámime s tvorbou moderných webových aplikácií pomocou REST API. API sú najčastejšie typy projektov v Django REST Frameworku. 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 Pythone budeme využívať už existujúceho javascriptového klienta v React alebo Angular. Ukážme si, ako bude práca s naším API v klientovi vyzerať:

Ukážka výslednej aplikácie – zobrazenie zoznamu filmov - REST API v Django - Filmová databáza - REST API v Django - Filmová databáza

V dnešnom Django REST Framework tutoriále si vysvetlíme, prečo sa moderné webové aplikácie vytvárajú pomocou API.

Minimálne požiadavky

Kurz predpokladá znalosti:

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

Výhodou je skúsenosť sa:

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 Pythone a Django REST Framework.

Čo robiť, keď mi niečo v kurze nepôjde?

Práve štartuješ rozsiahly a pokročilý kurz, v ktorom s každou zmenou musíme aktualizovať buď všetky alebo minimálne časť vzorových projektov na stiahnutie. Nie je teda už možné udržiavať vzorové projekty pre každú lekciu, ako tomu bolo napr. v Základoch programovania. V kurze je niekoľko archívov so vzorovým projektom na stiahnutie, ktoré tvoria záchytné body.

V prípade akéhokoľvek problému pokračuj vo výklade a dôjdi do najbližšej lekcie s archívom a tam si stiahni funkčný vzorový projekt. Ten si môžeš porovnať so svojim kódom a nájsť si tak chybu.

Motivácia

V predchádzajúcom kurze Základy Django frameworku pre Python sme si vytvorili aplikáciu kompletne len v Django. V minulosti sa webové 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.

Spotify - REST API v Django - Filmová databáza - REST API v Django - Filmová databáza

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á webová aplikácia má potom dve časti a jedná sa v podstate o dve 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 REST API klient v React - Filmová databáza 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. Synonymom môže byť webová služba. 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.
Naše webové API bude umožňovať vykonávať operácie nad databázou filmov, napr. vyhľadá existujúci film alebo vloží film nový. 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 na nákupy kurzov zo Slovenska. Každý riadok reprezentuje jednu menu voči slovenskej korune, stĺpce v riadku sú oddelené znakom |.

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 vo formáte JSON:

{
    "_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
}

Pokiaľ ste sa s JSON ešte nestretli, čoskoro si ho vysvetlíme. Našou úlohou teda bude vytvoriť takúto službu s databázou, s ktorou sa bude komunikovať pomocou textových správ, ako je tá vyššie.

V ďalšej lekcii, REST API v Django REST - SOAP, GraphQL, REST a JSON , sa zoznámime s rôznymi typmi aplikačných rozhraní, aby sme mohli tvoriť zaujímavé webové aplikácie.


 

Ako sa ti páči článok?
Pred uložením hodnotenia, popíš prosím autorovi, čo je zleZnakov 0 z 50-500
Všetky články v sekcii
REST API v Django - Filmová databáza
Preskočiť článok
(neodporúčame)
REST API v Django REST - SOAP, GraphQL, REST a JSON
Článok pre vás napísal Max Snítil
Avatar
Užívateľské hodnotenie:
Ešte nikto nehodnotil, buď prvý!
.
Aktivity