1. Configuración del Proyecto - dblancou/ApiLetterboxdProyectoFinal GitHub Wiki

Requisitos Previos

Antes de comenzar a trabajar con esta API, asegúrate de tener instalados los siguientes componentes en tu entorno de desarrollo:

  • JDK 17: La API está construida utilizando Java 17, por lo que necesitas tener el JDK 17 instalado.
  • Maven: Utilizado para gestionar las dependencias del proyecto y para construir el proyecto.
  • MySQL: La base de datos utilizada para almacenar la información de las películas, usuarios, reseñas y listas de películas.

Archivo de Configuración

La configuración de la API se realiza principalmente a través del archivo application.properties, que contiene diversas propiedades necesarias para el correcto funcionamiento del proyecto. A continuación se describen algunas de las configuraciones clave:

  • Nombre de la Aplicación: El nombre de la aplicación se define con la propiedad spring.application.name. En este caso, el nombre es ApiProyectoFinal.
  • Configuración de la Base de Datos: La API utiliza MySQL como base de datos. Las propiedades spring.datasource.url, spring.datasource.username, y spring.datasource.password especifican la URL de conexión a la base de datos, el nombre de usuario y la contraseña respectivamente.
  • Propiedades de JPA/Hibernate: Hibernate es utilizado como el proveedor de JPA para la persistencia de datos. La propiedad spring.jpa.hibernate.ddl-auto está configurada en update para actualizar el esquema de la base de datos en cada inicio. spring.jpa.show-sql y spring.jpa.properties.hibernate.format_sql están configuradas para mostrar y formatear las consultas SQL generadas.
  • Dialecto de la Base de Datos: spring.jpa.properties.hibernate.dialect especifica el dialecto de la base de datos, en este caso, org.hibernate.dialect.MySQL8Dialect.
  • JWT: Para la autenticación y autorización, se utilizan JSON Web Tokens (JWT). Las propiedades jwt.secret y jwt.expiration definen la clave secreta utilizada para firmar los tokens y la duración de los tokens, respectivamente.

Dependencias Maven

El proyecto utiliza Maven para gestionar sus dependencias. El archivo pom.xml incluye todas las bibliotecas necesarias para que la API funcione correctamente. Algunas de las dependencias clave son:

  • Spring Boot Starter Data JPA: Proporciona soporte para JPA con Hibernate.
  • Spring Boot Starter Web: Necesaria para construir aplicaciones web, incluyendo RESTful.
  • MySQL Connector: El controlador JDBC para conectarse a MySQL.
  • Lombok: Biblioteca que minimiza el código repetitivo utilizando anotaciones.
  • Spring Boot DevTools: Herramientas de desarrollo para mejorar la experiencia del desarrollador.
  • Spring Boot Starter Security: Proporciona autenticación y autorización mediante Spring Security.
  • Spring Boot Starter Validation: Incluye soporte para validaciones con Bean Validation (javax.validation).

Estas dependencias se definen en el archivo pom.xml y son gestionadas por Maven, que se encarga de descargar e integrar las bibliotecas en el proyecto.

Configuración Adicional

Para ejecutar la API localmente, asegúrate de tener una instancia de MySQL corriendo en tu máquina y que los detalles de conexión en el archivo application.properties coincidan con tu configuración local. Puedes ajustar estas configuraciones según tus necesidades.

Además, para la autenticación basada en JWT, asegúrate de mantener la clave secreta (jwt.secret) segura y, si es necesario, cámbiala por una clave propia antes de desplegar la aplicación en un entorno de producción.