Solución del ejercicio 2 (incluye API Rest - sólo servidor)