Backend: Spring
Martínez Guillén, Pablo
[Link]
Crear servicios REST para la entidad Hero y crear un endpoint
personalizado
No voy a incluir el código aquí ya que se ve mucho más cómodamente en github.
Toda la aplicación está en back/src/main/java/es/ual/heroesapp.
1. Primero la clase principal de la aplicación, HeroesApplication que se construye como
cualquier otra aplicación por defecto.
2. Se crena las entidades Hero y Power, cada uno con su nombre e id. Denotar que los
id son clave principal y autonumerados. Se utiliza @ManyToOne y @OneToMany
para establecer las relaciones entre las entidades y en ambos sentidos, aplicándolas
a sus correspondientes atributos.
3. Se crean los repositorios para cada entidad correspondientemente en repository.
4. En vez de un controlador por entidad, usamos sólo el HeroController, lo conectamos
con ambos repositorios y mapeamos funciones REST. Con
@RequestMapping("/api/heroes") se establece una raíz para el mapeo de las rutas
en la [Link] mapean:
a. / GET: devolvemos los héroes sin más
b. /{id} GET: devolver un héroe concreto (también genera /{id}/powers GET para
ver sus poderes
c. / POST: crear un nuevo héroe por nombre
d. /{id} DELETE: eliminar ese héroe
e. /{heroId}/powers POST: crear y añadir un poder a un héroe
f. /{heroId}/powers/{powerId} DELETE: eliminar un poder de un héroe
g. /{heroId}/powers PUT: Se borran todos los poderes del héroe y se sustituyen
por nuevos poderes.
5. Se crea el archivo [Link] para exponer las ids de los héroes y tenerlas
disponibles cuando realizamos un GET.
6. En [Link] se configura la conexión con la base de datos de acuerdo a
cómo se ha definido en el [Link]. Dirección local con el puerto de
postgresql, base de datos, usuario y contraseña.