Release 3, semana 7
Entregable Release 3 en el Back
Sección titulada «Entregable Release 3 en el Back»Debe contener en el back:
- El endpoint
POSTde la entidad principal de su módulo funcional: recibe el body, responde201, e imprime en el log lo que recibió. Todavía no persiste nada. - La prueba en Postman de ese
POST, verificando el201. - La Collection de esa entidad, ya exportada en Semana 6 con la prueba del
GET, actualizada con la prueba delPOSTy vuelta a exportar encollections/<Entidad>.postman_collection.json. - El backend desplegado y corriendo en la máquina virtual individual asignada a cada estudiante.
Diagrama de clases (back) ejemplo
Sección titulada «Diagrama de clases (back) ejemplo»El Controller depende de la interfaz del repositorio, no de la clase que la
implementa. Eso es lo que permite descartar InMemory<Entidad>Repository más
adelante (cuando llegue la persistencia real) sin tocar el Controller.
classDiagram
class ArtistaController {
-artistaRepository: ArtistaRepository
+findAll() List
+crearArtista(artista: ArtistaDTO) ArtistaDTO
}
class ArtistaRepository {
<<interface>>
+findAll() List
}
class InMemoryArtistaRepository {
+findAll() List
}
note for InMemoryArtistaRepository "Se descarta más adelante: se reemplaza<br/>por una implementación con JPA,<br/>sin tocar el Controller"
ArtistaController ..> ArtistaRepository : inyecta
InMemoryArtistaRepository ..|> ArtistaRepository : implementa
Entregable Release 3 en el Front
Sección titulada «Entregable Release 3 en el Front»Debe contener en el front:
- Un formulario simple con
Reactive Formspara crear un recurso de la entidad principal, de su módulo funcional, incluyendo solo los atributos básicos. - La implementación de la clase
XyzService, dondeXyzes el nombre del recurso que se está implementando. La clase debe tener:- La implementación del método
create. - El llamado a
httpResourcepara hacer elGET, movido desde el componenteXyzListar.
- La implementación del método
- El componente
XyzListary el componenteXyzCreardeben inyectar el nuevo servicio y utilizarlo.
Diagrama de clases (front) ejemplo
Sección titulada «Diagrama de clases (front) ejemplo»Con Xyz = Artista como ejemplo: el servicio queda como única puerta de entrada
HTTP, y los dos componentes lo inyectan sin conocerse entre sí.
classDiagram
class Artista {
+id: number
+nombre: string
+fotoArtistaUrl: string
+paisOrigen: string
+fechaNacimiento: string
+biografia: string
+albumes: Album[]
}
class NuevoArtista {
+nombre: string
+fotoArtistaUrl: string
+paisOrigen: string
+fechaNacimiento: string
+biografia: string
}
note for NuevoArtista "Igual a Artista, sin id ni albumes<br/>(los asigna el backend)"
class ArtistaService {
+artistasResource: HttpResource
+crear(nuevoArtista: NuevoArtista) Observable
}
class ArtistListComponent {
-artistaService: ArtistaService
}
class ArtistCreateComponent {
-artistaService: ArtistaService
-artistaForm: FormGroup
-guardando: Signal
+guardar() void
+cancelar() void
}
ArtistListComponent ..> ArtistaService : inyecta
ArtistCreateComponent ..> ArtistaService : inyecta
ArtistaService ..> Artista : produce
ArtistaService ..> NuevoArtista : recibe
Ejemplo de formulario
Sección titulada «Ejemplo de formulario»