Notes sobre l'enunciat i pràctica
Aquesta pràctica continua com a 'enunciat obert. Has de crear la teua pròpia tasca, amb certes limitacions, com comprendràs.
Has de fer una API REST amb Spring Boot que faça el manteniment d'una base de dades a la teua elecció: podràs crear-la de zero o escollir-ne alguna que conegues o cercar a internet. Aquesta base de dades ha de ser la mateixa que has creat a l'APAC3, però si vols, pots crear una nova base de dades amb les mateixes característiques i limitacions que l'anterior.
1. El model de dades
En principi tot aquest apartat ja el deus de tindre fet a l'APAC3. Has d'afegir ací les classes annotades amb JPA.
2. El DTO
Has de crear classe DTO (Data Transfer Object) per a cada entitat de la teua base de dades. Aquestes classes seran les que s'utilitzaran per a transferir dades entre el client i el servidor.
Per a simplificar les tasques, pots aplanar les relacions participants, de manera que per exemple:
- Si tens una entitat
Autorque té una relació1:Mamb l'entitatLlibre, el teuAutorDTOpot tindre un atributList<String> llibresque continga els títols dels llibres d'eixe autor. - Al llibreDTO, no cal que aparega l'autor, però si vols, pots posar un atribut
String autorque continga el nom de l'autor d'eixe llibre o l'identificador de l'autor.
Pots crear aquest objectes desde constructors a partir de les entitats, o mitjançant mètodes static a cada DTO, o mitjançant un Mapper (revisa les novetats dels apunts)
3. El Repositori
Crea per a cada entitat un repositori que estenga de JpaRepository amb les operacions bàsiques de CRUD. A més, has de crear algunes consultes personalitzades per a les consultes que has fet a l'APAC3.
Pots reaprofitar els Queries que vas fer, i moure'ls de les classes al repositori.
També pots crear noves consultes amb Query Methods.
4. El Servici
Crea un servei per a cada entitat que utilitze els repositoris per a realitzar les operacions de CRUD i les consultes personalitzades. Aquest servei serà el que utilitzarà el controlador per a gestionar les peticions.
Encarregat ací de la lògica de negoci i de tot el control d'errors.
5. El Controlador
Finalment, crea un controlador per a cada entitat que gestione les peticions HTTP i utilitze els serveis per a realitzar les operacions necessàries.
6. Apartats opcionals d'ampliació
6.1. Opcional 1. HATEOAS
Afig una capa entra afegint la funcionalitat HATEOAS a la teua API REST. Aquesta capa permetrà que les respostes de la teua API incloguen enllaços a altres recursos relacionats, facilitant la navegació i l'ús de la teua API.
6.2. Opcional 2. Seguretat amb Spring Security i JWT
Afig una capa extra de seguretat amb Spring Security per a protegir les teues rutes, mitjançant tokens JWT. Pots seguir l'exemple dels apunts
6.3. Opcional 3. Documentació amb Swagger o OpenAPI
Afig la opció de documentació amb Swagger o OpenAPI per a documentar la teua API REST de manera clara i accessible.
7. Entregues i format d'entrega.
Penja el link al teu repositori de GitHub amb el projecte complet, i una imatge de l'estructura de la teua base de dades.