PyCon CZ 23, inspirováno pyworkingem cojeapi
Vyzkoušíme si vytvořit jednoduchou Flask aplikaci, která bude implementovat REST API a přijímat zprávy ve formátu JSON.
Výsledkem bude běžná CRUD aplikace s možností uložit a načíst stav z lokálního souboru.
Poslední část workshopu budeme věnovat diskuzi a nápadům, jak by aplikace šla rozšířit na základě obecných znalostí nebo na základě znalostí nabytých z ostatních přednášek v rámci konference.
python3 -m venv venv
source venv/bin/activate
python -m pip install -r requirements.txt
flask --app 09_api.py run
flask --app 09_api.py run --debug
Cílem je napsat si jednoduchou API službu. Služba umožní evidovat projekce na filmovém festivalu, kde každá projekce obsahuje:
- začátek
- délku
- název filmu
- krátký popisek
JSON: Něco jako slovník v Pythonu, ale funkční napříč mnoha dalšími teachnologiemi.
Ukázka
{
"description": "Popkulturní klasika no 2",
"duration": 99,
"name": "Rambo 2",
"start_time": "2023-09-17 18:30:00.000"
}Klient: Doplněk do prohlížeče Yet Another REST Client pro Chrome, zkušenější mohou použít rovněž curl nebo Postman.
Nejjednodušší možná verze API tzn. "hello world" ve Flasku.
Přidáváme kód který nefunguje a zkusíme si to opravit a použít --debug.
Ukáza toho jak lze pomocí URL předat do kódu různé parametry.
Ukáže jak lze do kódu předat různé metody HTTP.
Test toho jak pracovat s endpointy které mají růzmé metody HTTP a parametry.
Přidáváme CRUD operace pro naše API podle REST konvencí. První endpoint pro vypsání všech projekcí.
Přiidáváme pomocné fukce, které se použijí napříč celým API
Vytvoříme si ukázková data a následně i metodu pro vypsání projekce podle ID.
API rozšíříme o metody pro vytvoření, aktualizaci a smazání projekce.