Al finalizar este tutorial el estudiante estará en la capacidad de ejecutar el back del curso, al igual que otros proyectos con la misma estructura.
Para realizar este taller Ud. debe:
Tal como lo muestra la figura a continuación, para ejecutar el proyecto se requiere completar varios pasos.
El primero es la configuración del entorno. Para esto, puede aprovisionar una máquina virtual o puede instalar el entorno en su propia máquina.
Posteriormente, se clona el proyecto para descargar el código fuente, se abre el proyecto en Spring Tools, se configura Lombok (una librería para facilitar la creación de clases Java), se ejecuta el back y finalmente se prueba el API. A continuación se detallan cada uno de esos pasos.
Para clonar y abrir el proyecto, debe abrir la aplicación de Spring Tools. Para ello, busque la carpeta contenedora de la aplicación.
Una vez abierta, le pedirá crear un Workspace, en el cual se guardará la configuración del IDE.
Deje la ruta por defecto, o si lo prefiere seleccione una ruta en su sistema de archivos. Al iniciar encontrará una ventana parecida a esta:
Aquí presionaremos Import Projects o también en el Menú Files -> Import.
En el menú seleccionaremos la opción de Git -> Projects from Git (with smart import)
Seleccionaremos la opción Clone URI
Copiaremos el siguiente link https://github.com/Uniandes-isis2603/bookstore-back en el campo de URI y presionaremos Next. Dado que este es un repositorio público, no requiere ingresar credenciales.
NOTA. Tenga en cuenta que cuando vaya a clonar un proyecto privado deberá hacerlo por ssh y no por https. Para esto debe generar un certificado ssh y configurarlo en GitHub. Para esto, debe seguir el último paso que se detalla en este mismo tutorial.
Seleccionaremos la rama master y presionamos Next >.
Seleccionamos dónde queremos clonar el repositorio en el disco local. Cuando lo hayamos hecho, presionamos Next.
Por último presionamos Finish para clonar el proyecto.
Cierre SpringTools. Luego en un navegador vaya a la dirección https://projectlombok.org/download y descargue la versión más reciente de Lombok.
A continuación haga doble clic en el archivo que descargó (lombok.jar) y
saldrá la siguiente ventana:
Aquí nos reconoció una versión local de eclipse que estaba instalada previamente, pero debemos buscar el ejecutable de SpringTools4 que descargamos anteriormente. Para ello le damos en Specify location
y buscamos SpringToolSuite4.exe
Quedando de la siguiente manera:
Presionamos Install / Update y cuando haya terminado cerramos la ventana y abrimos nuevamente SpringTool. Si el proyecto sigue saliendo con errores, vamos a la pestaña Project -> Clean y presionamos Clean.
Una vez que no salgan errores, podemos ir al menú de Boot Dashboard ubicado en la esquina inferior izquierda, dar click en local, luego en bookstore-back y presionar el botón Start. En la siguiente imagen se puede ver mejor este proceso.
Cuando terminé no saldrá algo así:
Esto significa que nuestro servidor local del back-end está funcionando y listo para recibir peticiones en el puerto 8080.
Para cargar datos iniciales, una vez haya ejecutado el proyecto abra un navegador e ingrese la url http://localhost:8080/api/h2-console/
Esto abre la consola de administración de la base de datos que para el caso de este proyecto es H2, una base de datos en memoria.
En JDBC URL ingrese "jdbc:h2:mem:bookstore"; en User Name "sa" y en Password "password".
En Spring copie el contenido del archivo sql/data.sql y pégelo en el campo SQL statement.
Luego, haga clic en el botón Run. Las instrucciones deben ejecutarse sin errores. Para verificar que todo esté bien abra una ventana de navegador y escriba la URL http://localhost:8080/api/authors y deberá ver como salida un JSON con información de autores tal como se observa en la figura a continuación:
Para probar nuestro API, utilizaremos Postman. Abre Postman y damos Click en Import
Luego en Upload Files
Y nos dirigimos a la carpeta collections de nuestro proyecto book store y seleccionamos el archivo EntornoColeccionesBookStore.postman_environment.json
y damos click en Abrir, luego en Import.
En la esquina superior derecha elegimos nuestro entorno de variables que acabamos de importar:
Y nuevamente vamos a Import -> Upload Files pero esta vez importamos todas las demás colecciones:
Y las importamos todas
Para probar una, le damos click a la que queramos y luego el botón Run
Nuevamente el botón Run
Nos saldrá algo así:
Como podemos observar, todas las pruebas de nuestro API están funcionando. Estas tienen todos los métodos HTTP que se necesitan probar, que son POST (Crear), PUT (Actualizar), GET (Recibir información) y DELETE (Borrar).
Con esto concluimos la ejecución del proyecto back de ejemplo. Podemos ejecutar las demás colecciones para probar que todo está funcionando correctamente. Además en SpringTool podemos ver en la consola el log de transacciones/peticiones de la aplicación.
Algunas veces cuando se ejecuta el API aparecerá la siguiente advertencia.
Para evitar que aparezca puede ir a Window > Preferences > Run/Debug > Console y desmarque la opción Limit console output.
En algunos casos, cuando se requiere clonar proyectos privados desde SpringTools, no es posible establecer la conexión. Para evitar esto se requiere generar una clave ssh.
Abra una consola y escriba el comando ssh-keygen
Deje los valores por defecto.
La clave quedará almacenada en el directorio del usuario, por ejemplo en C:\Users\estudiante\.ssh
Abra el archivo C:\Users\estudiante\.ssh\id_rsa.pub
con un bloc de notas y copie el contenido.
Vaya a su cuenta de GitHub y seleccione la opción Settings.
Luego seleccione SSH and GPG keys y haga clic en New SSH key.
Ingrese un nombre para la clave y en Key ingrese el código que copió previamente.
Con este paso podrá clonar repos vía ssh.
En SpringTools, cuando vaya a clonar el repositorio, asegúrese que la URI tenga la forma git@github:Uniandes-Isis2603....
Deje los demás campos como se observa en esta imagen.