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

2. diel - Úvod do REST API a moderných webových aplikácií Nové

V minulej lekcii, Úvod do praktického testovania softvéru, sme si vysvetlili, prečo je dôležité testovať. Predstavili sme si základné prístupy k testovaniu softvéru rôznych typov aplikácií a popísali sme si rozdiely medzi User Experience (UX) a User Interface (UI).

V dnešnom tutoriále praktického testovania projektov sa zoznámime s fungovaním moderných webových aplikácií pomocou REST API. Vysvetlíme si, prečo sa moderné webové aplikácie robia pomocou API.

Naším cieľom ďalej v kurze bude otestovať jednoduché RESTful API pre správu databázy faktúr. Budeme testovať pridanie, úpravu alebo mazanie osoby, či faktúry a samozrejme aj ich prezeranie.

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

Zoznam osôb v projekte - Praktické testovanie projektov - Manuálne testovanie

Motivácia

V minulosti sa webové aplikácie tvorili tak, že sa na vzdialenom serveri vygenerovala celá nová stránka a tá sa poslala užívateľovi do prehliadača. Doteraz sa nejaké aplikácie takto aj tvoria. Hlavne tie, ktoré sú zamerané na články (napríklad ITnetwork takto funguje).

Viac sa o tvorbe aplikácií vo frameworku Django môžeme dozvedieť v kurze Django - Tvorba webov v Pythone.

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 - Praktické testovanie projektov - Manuálne testovanie - Praktické testovanie projektov - Manuálne testovanie

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 vykresľovať.

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.
  • Tučný klient – Webová stránka v JavaScripte alebo mobilná aplikácia, ktorá so serverom komunikuje.

Počas kurzu si ukážeme, ako testovať obe uvedené časti. Zameriame sa aj na overenie správnej komunikácie medzi serverom a klientom.

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íklad, aké boli dnes pridané nové faktúry.

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ť.

Spôsob komunikácie medzi serverom a klientom je definovaný v tzv. API dokumentácii k nášmu projektu. Túto dokumentáciu nájdeme v článku API dokumentácie k databáze faktúr.

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 ide o jednu z nasledujúcich možností:

  • Dve časti aplikácie – webová stránka si doťahuje zo servera potrebné dáta pomocou AJAX dotazu.
  • Dve rôzne aplikácie - Mobilné aplikácie si sťahuje dáta z webu.

Viac sa o technológii AJAX môžeme dozvedieť v článku AJAX v JavaScripte - Základné otázky.

Pri našom webovom API budeme testovať vykonávanie operácií nad databázou osôb a faktúr, napríklad otestujeme nájdenie existujúcej osoby alebo uloženie novej faktúry. 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:

27.12.2024 #250
country|currency|amount|code|rate
Australia|dollar|1|AUD|15,027
Brazil|real|1|BRL|3,900
Bulgaria|lev|1|BGN|12,886
China|renminbi|1|CNY|3,309
Denmark|krone|1|DKK|3,379
EMU|euro|1|EUR|25,205
Philippines|peso|100|PHP|41,595
Hong Kong|dollar|1|HKD|3,112
India|rupee|100|INR|28,256
Indonesia|rupiah|1000|IDR|1,488
Iceland|króna|100|ISK|17,371
Israel|new shekel|1|ILS|6,570
Japan|yen|100|JPY|15,307
South Africa|rand|1|ZAR|1,291
Canada|dollar|1|CAD|16,802
Republic of Korea|won|100|KRW|1,639
Hungary|forint|100|HUF|6,127
Malaysia|ringgit|1|MYR|5,402
Mexico|peso|1|MXN|1,192
IMF|SDR|1|XDR|31,503
Norway|krone|1|NOK|2,128
New Zealand|dollar|1|NZD|13,622
Poland|zloty|1|PLN|5,895
Romania|leu|1|RON|5,063
Singapore|dollar|1|SGD|17,783
Sweden|krona|1|SEK|2,196
Switzerland|franc|1|CHF|26,821
Thailand|baht|100|THB|71,045
Turkey|lira|100|TRY|68,723
USA|dollar|1|USD|24,157
United Kingdom|pound|1|GBP|30,337

Toto API používa napríklad 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 českej korune, stĺpce v riadku sú oddelené znakom |.

Ukážka API pre získanie detailu osoby

Na ilustráciu si ukážme aj ako bude vyzerať odpoveď API, ktoré budeme v kurze testovať. Nižšie je uvedená odpoveď pre požiadavku klienta na konkrétnu osobu vo formáte JSON:

{
  "name": "ICTdemy",
  "identificationNumber": "05861381",
  "taxNumber": "EU05861381",
  "accountNumber": "123456789",
  "bankCode": "5500",
  "iban": "EU000123456789",
  "telephone": "123 123 123",
  "mail": "redaction@ictdemy.com",
  "street": "290/16 Charles Square",
  "zip": "12000",
  "city": "Prague",
  "country": "CZECHIA",
  "note": "The largest IT academy in the Czech Republic.",
  "_id": 3
}

Ak ste sa s JSON ešte nestretli, nemusíte mať strach, čoskoro si ho vysvetlíme. Našou úlohou teda bude otestovať 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, Webová API - SOAP, GraphQL, REST a formát JSON, si vysvetlíme pojmy ako REST API, SOAP, GraphQL a JSON. REST API si ukážeme na projekte, ktorý budeme v tomto kurze testovať.


 

Ako sa ti páči článok?
Pred uložením hodnotenia, popíš prosím autorovi, čo je zleZnakov 0 z 50-500
Predchádzajúci článok
Úvod do praktického testovania softvéru
Všetky články v sekcii
Praktické testovanie projektov - Manuálne testovanie
Preskočiť článok
(neodporúčame)
Webová API - SOAP, GraphQL, REST a formát JSON
Článok pre vás napísal David Novák
Avatar
Užívateľské hodnotenie:
Ešte nikto nehodnotil, buď prvý!
Autor se věnuje vývoji webových aplikací v ASP.NET Core MVC
Aktivity