Paso 2: CRUD Editorial - Explicación del diseño
Las clases que implementa este paso se presentan en la siguiente figura:
Las clases en rosado pertenecen a la capa de recursos REST, las clases en amarillo a la capa de lógica y las clases en verde a la capa de persistencia.
Las decisiones más importantes del diseño son:
- 1) La capa de recursos REST reciben y devuelven, a través de JAX-RS que transforma los objetos json en DTOS y viceversa,
EditorialDetailDTO
objects. - 2) Las clases DTOs además de tener los atributos que representan los objetos json, contienen la lógica de la conversión entre DTOS y Entitys y viceversa. Hay un constructor que recibe un
Entity
y retorna unDTO
y hay un método llamadotoEntity
que convierte elDTO
aEntity
.
El siguiente diagrama de secuencias ilustra los llamados y las conversiones de los datos:
En este caso se muestra el método PUT de la siguiente manera:
PUT editorials/id {"name":"New Norma"}
Allí se envía el id de la editorial a editar y el nuevo nombre que le vamos asignar en el cuerpo del mensaje.
Es decir,
{"name":"New Norma"}
Para los métodos GET, DELETE funcionan de manera similar enviando el id por URL. ejemplo:
- Retorna la editorial buscada por el id
GET editorials/id
- Eliminar la editorial que coincida con el id
DELETE editorials/id
Para el caso de GET sin pasar el id por URL, traerá todas las editoriales, el siguiente diagrama de secuencia ilustra los llamados y las conversiones de los datos:
- 3) La capa de lógica no sabe de objetos
DTOs
. Esta capa sólo maneja objetosEntity
. - 4) La capa de lógica válida reglas de negocio.
- 5) La lógica invoca a la persistencia para actualizar, obtener ó borrar la entidad en la BD.