API a POSTMAN
Co je API?
- obvykle slouží ke zprostředkování nějakých dat
- komunikace mezi serverem a klientem (mobil, pc, ...)
- zprostředkovatel dat
K čemu?
- uvnitř firmy
- pochopení co dělají vývojáři
- otestování funkcionality
- rozmyšlení o produktech a jak je stavět
- komunikace s 3. stranou
- ven
- monetizace api
- jak tvořit dobré produkty
- získání informací nebo automatizace, kterou běžně nepřináší samotná aplikace
Základ - http request
- Je to jenom dopis
Základ - http request
- složen z požadavku a odpovědi
- hlavička - vlastně pravá strana pohlednice
- adresa kam doručit (url)
- typ požadavku
- další meta informace
např. kdo jsem (podpis)
- tělo
- obsahuje samotnou
zprávu
- obsahuje samotnou
- vlastně stejné pro
požadavek i response
API
- u 99,9 % aplikací se nejedná o nic jiného než posílání dopisů (možná komunikace prostřednictvím jiných protokolů)
- různé druhy API
- REST API (JSON jako body)
- založeno na získávání informací na základě url
- Graphql (JSON jako body)
- vlastní query language a přesná specifikace modelů
- SOAP (xml jako body)
- asi nejdál, kombinace REST API a Graphql, nejstarší ale nepoužívá se dnes moc
- REST API (JSON jako body)
REST API
- it is simply easy
- 😭 ale stejně to dělají skoro všichni blbě
- books API
- GET /books - získej seznam knih
- POST /books - přidej novou knihu
- GET /books/1 - dej mi knihu s id 1
- GET /books/1/authors - dej mi autory knihy
Graphql
- prostě jedna url - /graphql
- vlastní "jazyk" na dotazování (něco jako SQL)
- tento dotaz je poslán v těle požadavku
- příklad https://countries.trevorblades.com/
{
continents {
code
name
countries {
name
emojiU
}
}
}
Co je klíčové - dokumentace
- Graphql - out of the box - vychází z definice dle jazyka
- REST API
- je zapotřebí psát zároveň aktuální dokumentaci
- náročný úkol udržet dokumentaci up to date
- potřebujeme kvůli tomu aby ostatní mohli jednoduše konzumovat
- v čem?
- swagger standart - https://ur.mallaws.qestapp.cz/swagger/#/
- apiary - https://pandurangpatil.docs.apiary.io/
Autentizace
- všechny informace nejsou pro všechny
- je zapotřebí říct že jsem to já
- metody - prostě jen tajný kód do hlavičky dopisu (podepíšu se)
- hlavička se jmenuje authorization
- metody
- BASIC - jednoduché prostě dáte svoje heslo
- OAuth 2 - proces přihlášení kde dostanu dočasné heslo (token)
Jak si hrát s API
- REST API
- POSTMAN
- přímo z dokumentace swagger nebo apiary
- Graphql
- playground - https://countries.trevorblades.com/
Pojďme si hrát!
API a postman
By Radim Štěpaník
API a postman
- 429