Obiettivo: Creare un'applicazione Spring per gestire una lista di libri con operazioni CRUD e logica di business per il controllo del prestito dei libri.
- Ogni libro deve avere un titolo, un autore, un anno di pubblicazione e uno stato di disponibilità (prestato o disponibile).
- L'applicazione deve consentire di:
- Aggiungere un nuovo libro.
- Visualizzare l'elenco completo dei libri.
- Visualizzare i dettagli di un libro specifico.
- Modificare i dettagli di un libro esistente.
- Rimuovere un libro dall'elenco.
- Gestire lo stato di disponibilità di un libro (prestare o restituire).
- La logica di business deve includere:
- Controllo sulla disponibilità del libro prima di prestare.
- Controllo sul numero massimo di libri prestabili per utente.
- Controllo sulla restituzione dei libri in prestito.
- Classe Book:
- Attributi: id, titolo, autore, anno di pubblicazione, disponibilità.
- Metodi: getter e setter per tutti gli attributi.
- Classe BookService:
- Interfaccia contenente i metodi per la logica di business sui libri.
- Metodi:
List<Book> getAllBooks()
: Restituisce l'elenco completo dei libri.Book getBookById(int id)
: Restituisce un libro specifico per ID.void addBook(Book book)
: Aggiunge un nuovo libro.void updateBook(int id, Book book)
: Aggiorna i dettagli di un libro.void deleteBook(int id)
: Rimuove un libro dall'elenco.void lendBook(int id)
: Gestisce il prestito di un libro.void returnBook(int id)
: Gestisce il ritorno di un libro prestato.
- Classe BookController:
- Controller per gestire le richieste HTTP relative ai libri.
- Metodi:
GET /books
: Restituisce l'elenco completo dei libri.GET /books/{id}