NOVINKA - Online rekvalifikační kurz Python programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
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í.

Lekce 2 - Úvod do REST API a moderních webových aplikací

V minulé lekci, Úvod do praktického testování softwaru, jsme si vysvětlili, proč je důležité testovat. Představili jsme si základní přístupy k testování softwaru různých typů aplikací a popsali jsme si rozdíly mezi User Experience (UX) a User Interface (UI).

V dnešním tutoriálu praktického testování projektů se seznámíme s fungováním moderních webových aplikací pomocí REST API. Vysvětlíme si, proč se moderní webové aplikace pomocí API tvoří.

Naším cílem dále v kurzu bude otestovat jednoduché REST API pro správu databáze faktur. Budeme testovat přidání, úpravu nebo mazání osoby či faktury a samozřejmě i jejich prohlížení.

Pro komunikaci s naším API v Pythonu budeme využívat již existující javascriptový klient v Reactu. Ukažme si, jak bude práce s naším API v klientu vypadat:

Seznam osob v projektu - Praktické testování projektů - Manuální testování

Motivace

V minulosti se webové aplikace tvořily tak, že se na vzdáleném serveru vygenerovala celá nová stránka a ta se poslala uživateli do prohlížeče. Doteď se nějaké aplikace takto i tvoří. Hlavně ty, které jsou zaměřené na články (například ITnetwork takto funguje).

Více se o tvorbě aplikací ve frameworku Django můžete dozvědět v kurzu Django - Tvorba webů v Pythonu.

Avšak v praxi se dnes na webu používá spousta aplikací, které jsou opravdu spíše aplikacemi než webovými stránkami s články, např. Spotify nebo Google Docs:

Spotify - Praktické testování projektů - Manuální testování

Od takové aplikace uživatel čeká spíše funkčnost, jakou mají třeba desktopové aplikace běžící v systému Windows, a ne webové stránky, kde se celá stránka přenačte vždy, když se na něco klikne. Proto se dnes server již nepoužívá k posílání celé stránky do prohlížeče, ale pouze k posílání dat, která si stránka nebo aplikace zpracovává, aniž se musí neustále obnovovat a vykreslovat.

Jak funguje aplikace s API?

Taková webová aplikace má potom dvě části a jedná se v podstatě o dvě oddělené aplikace:

  • API server – Aplikace s databází běžící na vzdáleném serveru, která posílá a přijímá data.
  • Tlustý klient – Webová stránka v JavaScriptu nebo mobilní aplikace, které se serverem komunikují.

Během kurzu si ukážeme, jak testovat obě uvedené části. Zaměříme se také na ověření správné komunikace mezi serverem a klientem.

Výhodou serveru je samozřejmě to, že data naší aplikace jsou na internetu, a tudíž stále aktuální. Kdokoli si spustí klienta, uvidí poslední data, například to, jaké byly dnes přidané nové faktury.

API

API je zkratka pro Application Programming Interface, česky aplikační programové rozhraní. Je to obecně cokoli, co umožňuje jednotlivým částem softwaru komunikovat mezi sebou. Komunikace mezi serverem a klientem musí být samozřejmě přesně definovaná, jinak si aplikace mezi sebou nebudou rozumět.

Způsob komunikace mezi serverem a klientem je definován v tzv. API dokumentaci k našemu projektu. Tuto dokumentaci nalezneme v článku API dokumentace k databázi faktur.

API si můžeme představit jako číšníka v restauraci, který zajišťuje (a překládá) komunikaci mezi hostem a kuchařem. Nebo jako palubní desku automobilu, která pomocí přesně definovaných metod (tlačítka na desce) předá to, co řidič (jedna komponenta) chce, jiné komponentě (motoru). A návod k autu je jako API dokumentace, kde jsou jednotlivé metody (tlačítka) popsané.

Existují grafická API, API pro frameworky a knihovny, API operačních systémů, ale nás budou zajímat hlavně webová API.

Webová API

Webové API definuje, jak spolu komunikují nějaké komponenty po internetu. Synonymem může být webová služba. Typicky jde o jednu z následujících možností:

  • Dvě části aplikace – Webová stránka si dotahuje ze serveru potřebná data pomocí AJAX dotazu.
  • Dvě různé aplikace – Mobilní aplikace si stahuje data z webu.

Více se o technologii AJAX můžete dozvědět v článku AJAX v JavaScriptu - Základní dotazy.

U našeho webového API budeme testovat provádění operací nad databází osob a faktur, například otestujeme nalezení existující osoby nebo uložení nové faktury. Webová API samozřejmě nejsou omezena jen na databáze, můžeme prostřednictvím nich posílat SMS, zjistit aktuální počasí a podobně.

Ukázka webového API

Malé, ale velmi populární API mezi českými e-shopy běží na stránkách České národní banky. Konkrétně na této adrese. Na adrese jsou dostupné kurzy měn pro aktuální den. Nejde však o žádnou HTML stránku, nýbrž o surová data ve formátu CSV.

Webová API totiž nejsou určená lidem, ale programům. Výstup tohoto API vypadá takto:

27.12.2024 #250
země|měna|množství|kód|kurz
Austrálie|dolar|1|AUD|15,027
Brazílie|real|1|BRL|3,900
Bulharsko|lev|1|BGN|12,886
Čína|žen-min-pi|1|CNY|3,309
Dánsko|koruna|1|DKK|3,379
EMU|euro|1|EUR|25,205
Filipíny|peso|100|PHP|41,595
Hongkong|dolar|1|HKD|3,112
Indie|rupie|100|INR|28,256
Indonesie|rupie|1000|IDR|1,488
Island|koruna|100|ISK|17,371
Izrael|nový šekel|1|ILS|6,570
Japonsko|jen|100|JPY|15,307
Jižní Afrika|rand|1|ZAR|1,291
Kanada|dolar|1|CAD|16,802
Korejská republika|won|100|KRW|1,639
Maďarsko|forint|100|HUF|6,127
Malajsie|ringgit|1|MYR|5,402
Mexiko|peso|1|MXN|1,192
MMF|ZPČ|1|XDR|31,503
Norsko|koruna|1|NOK|2,128
Nový Zéland|dolar|1|NZD|13,622
Polsko|zlotý|1|PLN|5,895
Rumunsko|leu|1|RON|5,063
Singapur|dolar|1|SGD|17,783
Švédsko|koruna|1|SEK|2,196
Švýcarsko|frank|1|CHF|26,821
Thajsko|baht|100|THB|71,045
Turecko|lira|100|TRY|68,723
USA|dolar|1|USD|24,157
Velká Británie|libra|1|GBP|30,337

Toto API používá například web ITnetwork, který si z něj v pravidelných časových intervalech aktualizuje kurz EUR pro nákupy kurzů ze Slovenska. Každý řádek reprezentuje jednu měnu vůči české koruně, sloupce v řádku jsou oddělené znakem |.

Ukázka API pro získání detailu osoby

Pro ilustraci si ukažme také to, jak bude vypadat odpověď API, které budeme v kurzu testovat. Níže je uvedena odpověď na požadavek klienta na konkrétní osobu ve formátu JSON:

{
  "name": "ITnetwork s.r.o.",
  "identificationNumber": "05861381",
  "taxNumber": "CZ05861381",
  "accountNumber": "123456789",
  "bankCode": "5500",
  "iban": "CZ000123456789",
  "telephone": "+420 123 123 123",
  "mail": "[email protected]",
  "street": "Karlovo náměstí 290/16, Nové Město (Praha 2)",
  "zip": "120 00",
  "city": "Praha",
  "country": "CZECHIA",
  "note": "Největší IT akademie v Česku.",
  "_id": 4
}

Pokud jste se s JSON ještě nesetkali, nemusíte mít strach, brzy si jej vysvětlíme. Naším úkolem tedy bude otestovat takovouto službu s databází, s níž se bude komunikovat pomocí textových zpráv, jako je ta výše.

V další lekci, Webová API - SOAP, GraphQL, REST a formát JSON, si vysvětlíme pojmy jako REST API, SOAP, GraphQL a JSON. REST API si ukážeme na projektu, který budeme v tomto kurzu testovat.


 

Předchozí článek
Úvod do praktického testování softwaru
Všechny články v sekci
Praktické testování projektů - Manuální testování
Přeskočit článek
(nedoporučujeme)
Webová API - SOAP, GraphQL, REST a formát JSON
Článek pro vás napsal David Novák
Avatar
Uživatelské hodnocení:
30 hlasů
Autor se věnuje vývoji webových aplikací v ASP.NET Core MVC
Aktivity