Co je API a proč to potřebujete
API v praxi (konkrétní příklady)
- Počasí: Aplikace pro počasí nemá vlastní meteorologickou stanici. Posílá požadavek na API (např. OpenWeatherMap) → dostane data (teplota, srážky) → zobrazí.
- Přihlášení přes Google: Web pošle požadavek na Google API → Google ověří uživatele → vrátí token → web vás přihlásí.
- Platba kartou: E-shop pošle platební údaje na API platební brány (Stripe, PayPal) → vrátí "platba úspěšná/neúspěšná".
- Mapa: Web zobrazuje mapy z Google Maps API → bez API by musel nakreslit vlastní mapy (nereálné).
Jak to funguje technicky
Zjednodušeně: API = restaurace. Vy (klient) pošlete objednávku (HTTP požadavek) → číšník (API) donese objednávku do kuchyně (server) → kuchyň připraví jídlo (data) → číšník přinese jídlo zpět (HTTP odpověď).
Technicky:
- Klient (váš program, web, aplikace) pošle HTTP požadavek na URL adresu API.
- Server (vzdálený počítač) zpracuje požadavek → provede akci (načte data z databáze, provede výpočet).
- Server pošle HTTP odpověď zpět (data ve formátu JSON nebo XML).
- Klient zpracuje data → zobrazí uživateli.
První kroky (1 hodina)
Jděte na postman.com → stáhněte desktop app (zdarma) → nainstalujte. Proč: Postman = grafické rozhraní pro odesílání HTTP požadavků. Vidíte, co posíláte a co dostáváte zpět.
Otevřete Postman → New Request → Method: GET → URL: https://jsonplaceholder.typicode.com/posts/1 → klikněte Send. Dostanete JSON data (titulek a text příspěvku). Proč: JSONPlaceholder = testovací API zdarma. Učíte se bez rizika.
Odpověď vidíte v JSON formátu: {"userId": 1, "id": 1, "title": "...", "body": "..."}. JSON = formát dat (páry klíč-hodnota). Proč: 95 % API vrací data v JSON. Musíte rozumět struktuře.
HTTP metody - co se děje při požadavku
Každý HTTP požadavek má metodu, která říká serveru, co má udělat.
GET (Načti data)
Co dělá: Načte data ze serveru. Nemění nic na serveru.
Příklad: Načíst seznam uživatelů, zobrazit článek, získat počasí.
Postman:
Method: GET
URL: https://jsonplaceholder.typicode.com/users
Odpověď: JSON seznam uživatelů.
POST (Vytvoř nová data)
Co dělá: Pošle data na server → server je uloží (např. do databáze).
Příklad: Vytvořit nový příspěvek, zaregistrovat uživatele, odeslat formulář.
Postman:
Method: POST
URL: https://jsonplaceholder.typicode.com/posts
Body (JSON):
{
"title": "Můj příspěvek",
"body": "Obsah příspěvku",
"userId": 1
}
Odpověď: Server vrátí vytvořený příspěvek (včetně ID).
PUT (Aktualizuj celý záznam)
Co dělá: Přepíše celý záznam novými daty.
Příklad: Upravit celý profil uživatele.
Postman:
Method: PUT
URL: https://jsonplaceholder.typicode.com/posts/1
Body (JSON):
{
"id": 1,
"title": "Upravený titulek",
"body": "Upravený obsah",
"userId": 1
}
PATCH (Aktualizuj část záznamu)
Co dělá: Změní jen určité pole (ne celý záznam).
Příklad: Změnit jen email uživatele (ne celý profil).
Postman:
Method: PATCH
URL: https://jsonplaceholder.typicode.com/posts/1
Body (JSON):
{
"title": "Jen nový titulek"
}
DELETE (Smaž data)
Co dělá: Smaže záznam ze serveru.
Příklad: Smazat příspěvek, odstranit uživatele.
Postman:
Method: DELETE
URL: https://jsonplaceholder.typicode.com/posts/1
Autentizace - jak prokážete, že máte právo používat API
Většina API vyžaduje autentizaci (ověření totožnosti). Proč? Aby zabránili zneužití (spam, přetížení serveru) a sledovali využití.
1. API klíč (nejčastější)
Co to je: Unikátní řetězec znaků (např. abc123xyz456), který vám poskytne služba po registraci.
Jak to funguje: Při každém požadavku pošlete API klíč v hlavičce (header) nebo v URL.
Příklad (OpenWeatherMap):
Method: GET
URL: https://api.openweathermap.org/data/2.5/weather?q=Prague&appid=VÁŠ_API_KLÍČ
Kde získat: Zaregistrujte se na openweathermap.org → Account → API keys → Copy.
2. Bearer Token (OAuth 2.0)
Co to je: Token, který dostanete po přihlášení. Má omezenou platnost (např. 1 hodina).
Jak to funguje: Pošlete přihlašovací údaje → dostanete token → ten používáte pro další požadavky.
Příklad:
Method: GET
URL: https://api.example.com/user
Headers:
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
3. Basic Auth (méně časté)
Co to je: Uživatelské jméno + heslo v každém požadavku.
Bezpečnost: Používá se jen přes HTTPS (šifrované spojení). Jinak = heslo viditelné.
Zpracování dat (JSON)
API vrací data ve formátu JSON (JavaScript Object Notation). Vypadá jako páry klíč-hodnota.
Příklad JSON odpovědi
{
"name": "Jan Novák",
"age": 30,
"email": "jan@example.com",
"address": {
"city": "Praha",
"zip": "11000"
},
"hobbies": ["běhání", "čtení", "programování"]
}
Jak s tím pracovat v kódu (JavaScript)
// Odeslat GET požadavek
fetch('https://jsonplaceholder.typicode.com/users/1')
.then(response => response.json()) // Převést odpověď na JSON
.then(data => {
console.log(data.name); // "Leanne Graham"
console.log(data.email); // "Sincere@april.biz"
});
Jak s tím pracovat v kódu (Python)
import requests
response = requests.get('https://jsonplaceholder.typicode.com/users/1')
data = response.json() # Převést na Python dictionary
print(data['name']) # "Leanne Graham"
print(data['email']) # "Sincere@april.biz"
jsonformatter.org) k zobrazení JSON v čitelnější podobě. API někdy vrací JSON na jednom řádku → nečitelné.
Testování API (Postman a curl)
Postman (grafické rozhraní)
Proč: Vidíte vše vizuálně - metodu, URL, hlavičky, tělo požadavku, odpověď.
Základní workflow:
- New Request → pojmenujte (např. "Get Users")
- Method: GET/POST/PUT/DELETE
- URL: https://api.example.com/users
- Headers: Authorization: Bearer token (pokud potřeba)
- Body: JSON data (pokud POST/PUT)
- Send → vidíte odpověď
curl (příkazová řádka)
Proč: Rychlejší než Postman pro jednoduché testy. Používají to vývojáři při debugování.
Příklad GET:
curl https://jsonplaceholder.typicode.com/posts/1
Příklad POST:
curl -X POST https://jsonplaceholder.typicode.com/posts \
-H "Content-Type: application/json" \
-d '{"title": "Test", "body": "Obsah", "userId": 1}'
Stavové HTTP kódy (response codes)
| Kód | Význam | Příklad |
|---|---|---|
| 200 OK | Úspěch | Data načtena správně |
| 201 Created | Vytvořeno | Nový záznam úspěšně vytvořen |
| 400 Bad Request | Chyba v požadavku | Špatný formát JSON, chybějící pole |
| 401 Unauthorized | Neověřeno | Chybějící nebo špatný API klíč/token |
| 404 Not Found | Nenalezeno | Požadovaný záznam neexistuje |
| 429 Too Many Requests | Přetížení | Překročen limit požadavků (rate limit) |
| 500 Internal Server Error | Chyba serveru | Problém na straně API (ne vaše chyba) |
Časté chyby začátečníků
1. Zapomenutý API klíč nebo token
Chyba: Požadavek bez hlavičky Authorization → 401 Unauthorized.
Řešení: Zkontrolujte, že posíláte API klíč v hlavičce nebo URL.
2. Špatný formát JSON
Chyba: JSON s chybějící čárkou, uvozovkami → 400 Bad Request.
Řešení: Použijte JSON validator (jsonlint.com) před odesláním.
3. GET požadavek s tělem (body)
Chyba: GET požadavek nepoužívá tělo (body) - pouze URL parametry.
Řešení: Data pro GET pošlete v URL: ?key=value&key2=value2
4. Ignorování rate limitů
Chyba: Posíláte 1000 požadavků za minutu → 429 Too Many Requests.
Realita: API mají limity (např. 60 požadavků/minutu zdarma).
Řešení: Čtěte dokumentaci API → respektujte limity, nebo plaťte za vyšší tier.
5. API klíč na GitHubu (veřejný)
Chyba: Nahrajete kód s API klíčem na GitHub → boti ho najdou během hodin → zneužijí.
Řešení: API klíč do .env souboru → přidejte .env do .gitignore.
Závěr
API = způsob, jak spolu komunikují programy přes internet. HTTP metody (GET, POST, PUT, DELETE) + autentizace (API klíč, token) + zpracování JSON dat.
Co vzít z článku:
- Nainstalujte Postman, vyzkoušejte první GET požadavek na JSONPlaceholder API.
- HTTP metody: GET (čti), POST (vytvoř), PUT/PATCH (uprav), DELETE (smaž).
- Autentizace: API klíč v hlavičce nebo URL. Nikdy API klíč do veřejného GitHub repozitáře.
- JSON = formát dat (páry klíč-hodnota). Naučte se číst strukturu JSON odpovědi.
- Stavové kódy: 2xx = úspěch, 4xx = vaše chyba, 5xx = chyba serveru.
První akce (30 minut): Stáhněte Postman → vyzkoušejte GET požadavek na https://jsonplaceholder.typicode.com/posts → podívejte se na JSON odpověď → zkuste POST požadavek (vytvořte nový příspěvek). Hotovo - máte první zkušenost s API.
Kam dál:
- Veřejná API pro praxi: OpenWeatherMap (počasí), Dog API (fotky psů), REST Countries (data o zemích)
- Dokumentace HTTP: MDN Web Docs → HTTP reference
- REST API best practices: Naučte se RESTful principy (resource-based URLs, stateless)