Skip to content

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 Autor que té una relació 1:M amb l'entitat Llibre, el teu AutorDTO pot tindre un atribut List<String> llibres que 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 autor que 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.