Skip to content

kovihome/library

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Library Example App

A very simple Spring Boot 2 - Library example app: https://www.youtube.com/watch?v=-f-7l8X716k

Az alábbi feladatokat kell megvalósítani:

  • A könyvek entitást ki kell kiegészíteni a szerzők entitással, ami több a többhöz kapcsolatban áll a könyvekkel. A szerzőknek legyenek olyan attribútumai, mint id, name (String), birth_date (LocalDate), origin_country (enum). A két entitás között a kapocs az id.
  • Egy külön controllert kell létrehozni a szerzőknek, ahol az alap CRUD műveleteken kívül meg kell valósítani egy POST query végpontot, ahol a name, birth_date, origin_country mellett még a könyvek darabszámára is lehessen szűrni, aminek a megvalósítása CriteriaBuilder segítségével történjen. A válasznak egy saját DTO-nak kell lennie, ami a szerzők és könyveik adatai mellett ezt a számított értéket is tartalmazza.
  • Az adatstruktúra létrehozása és teszt adatokkal való feltöltése Liquibase-zel legyen megvalósítva.
  • A futtatáshoz szükséges adatbázis kiválasztása szabadon történhet.
  • A Thymeleaf-en nem kell átvezetni a változásokat, viszont kérnénk egy Postman test collection-t helyette.
  • A végpontokon legyen Spring security beállítva role ellenőrzéssel. A user-eket elég konfigban vagy a választott DB-ben tárolni.

Megvalósítás:

  • A választott adatbázis a H2 lett, az egyszerűség kedvéért.
  • Az AuthorController REST controller létre lett hozva a következő végpontokkal:
    • GET /author -- minden szerző lekérdezése
    • GET /author/{id} -- egy szerző lekérdezése id alapján
    • POST /author -- új szerző létrehozása
    • PUT /author/{id} -- egy szerző adatainak frissítése id alapján
    • DELETE /author/{id} -- egy szerző törlése id alapján
    • POST /author/search -- szerzők keresése név, születési idő, származási ország és a könyvek darabszáma alapján
  • A végpontokhoz Spring Security role ellenőrzés lett beállítva, két szerepkörrel: USER és ADMIN.
    • USER vagy ADMIN szerepkör: A két GET végpont és a POST /author/search végpontnál
    • csak ADMIN szerepkör: POST, PUT és DELETE végpontok
  • Két liqubase script lett létrehozva:
    • src/main/resources/db/changelog/001-create-tables.sql -- a könyvek és szerzők tábláinak létrehozása
    • src/main/resources/db/changelog/002-load-sample-data.sql -- teszt adatok betöltése a könyvek és szerzők táblákba
  • A teszteléshez egy Postman test collection lett létrehozva, amely tartalmazza a fent említett végpontok tesztjeit, beleértve a negatív teszteket is (nem létező id és elégtelen auth esetén).
    • src/test/resources/postman/library.postman_collection.json

Ismert hibák:

  • A H2 adatbázis kezelői felülete (/h2-console) nem indul el, annak ellenére, hogy a beállítások látszólag megfelelőek.

About

Simple Spring Boot Library example app:

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Java 100.0%