====== 2. Laboratoř ====== * [[:courses:A4M39WA2:solutions:02:start]] Probraná látka: * Základy intelli J * Princip dependency injection a IoC * Technologie servletů (životní cyklus, container apod.) * HTTP metody * Základy RESTful * Project Statelessness * Serializace dat v Java * Úvod do témat semestrálních prací ===== Pokyny pro cvičení ===== - Implementujte systém, který bude simulovat datové pozadí pro autopůjčovnu. - Autopůjčovna obsahuje evidenci o libovolném množštví aut, které mají další vlastnosti (barvu, atd.). - Systém bude vystavovat webové API, přes které půjde přistupovat k samotné evidenci aut. - Systém dále udržuje informace o zákaznících, kteří si mohou jednotlivá auta vypůjčovat. - Persistenci dat implementujte pomocí serializace jetnotlivých entit do samostatných souborů. ---- snippet lambda výrazu z 1. cvičení ''Files.walk(Paths.get(Location)).forEach( file -> { if(Files.isRegularFile(file)){ Car car = null; try { car = (Car)deserialize(file); } catch (IOException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } result.add(car); } } );'' ---- Domácí úkol: pomocí serializace entit do souboru vytvořit funkční datastore pro ukládání entit a vztahů mezi entitami. Jako klienta pro demonstraci funkcionality použijte například GET metody z libovolného prohlížeče, či případně REST klienta (dostupné jako doplňky do Browsers) Entity: *Auto + alespoň jeden jeho potomek (nákladní auto?) s jinými parametry *Zákazník *Zákazník X Auto (Vztah zákazník si půjčil auto) Dostupné metody: *CRUD ke všem entitám *Výpis všech aut pro jednoho zákazníka (na základě ID)