Loading repository data…
Loading repository data…
joseluisgs / repository
Ejemplo de desarrollo de un blog (backend básico) para Acceso a Datos, usando una base de datos realacional e implementando distintas técnicas y patrones de Acceso a Datos vistos en clase.
Ejemplo de desarrollo de un blog (backend básico) para Acceso a Datos, usando una base de datos realacional e implementando distintas técnicas y patrones de Acceso a Datos vistos en clase.
Se ha implementado el desarrollo del un blog a nivel de backend para el acceso a los datos que se necesiten con fines didácticos para el módulo de Acceso a Datos de 2DAM. Debes entender que es un ejemplo didáctico para clase, por lo que parte de la solución simplemente es para mostrar distintas técnicas y patrones y por lo tanto puede que no sea la más óptima o adecuada a niveles de producción o empresarial. Tenlo en cuenta.
Se han usado las siguientes tecnologías:
Se desea implementar la base de un blog teniendo en cuenta que:
Se ha usado GitFlow como modelo de flujo de desarrollo y trabajo con el repositorio.
Apache Maven es un software de gestión de proyectos. Maven aumenta la reutilización y también se encarga de la mayoría de las tareas relacionadas con la construcción. Funciona en muchos pasos, como agregar archivos jar a la biblioteca del proyecto, crear informes y ejecutar casos de prueba o crear archivos Jar para el proyecto e incluso muchas más cosas. La configuración de Maven se guarda en el fichero pom.xml.
Para trabajar con secretos y o variables globales se han usado dos enfoques en el directorio recursos:
Se ha usado Lombok como sistema de anotaciones para aumentar la productividad y reducir el código repetitivo.
Debemos tener en cuenta que la implementación y formato de la información puede variar según la fuente de los datos el patrón DAO propone separar por completo la lógica de negocio de la lógica para acceder a los datos, de esta forma, el DAO proporcionará los métodos necesarios para insertar, actualizar, borrar y consultar la información; por otra parte, la capa de negocio solo se preocupa por lógica de negocio y utiliza el DAO para interactuar con la fuente de datos.
La arquitectura que seguiremos es tipo CSS (Controladores -> Servicios -> Repositorios) de esta manera cualquier cambio no afectaría a la capa superior, manteniendo nuestra compatibilidad si por ejemplo pasamos de almacenamiento en ficheros XML a bases de datos relacionales o no relacionales.
Tiene la lógica de la aplicación y controla y redirige las distintas peticiones que se nos hacen.
Tienen la lógica de negocio y procesan las peticiones que se nos hacen accediendo a los recursos necesarios para ello usando los repositorios. Son la capa intermedia.
Implementan la lógica de acceso y manipulación de los datos encapsulando dichas operaciones.
El patrón DTO tiene como finalidad de crear un objeto plano (POJO) con una serie de atributos que puedan ser enviados o recuperados por nuestro servicio y enviados a capas superiores cone l objetivo de condensar o adaptar la información para disminuir las trasferencia y con ello respetar nuestro modelo de datos, pues es en el objeto DTO donde realizamos operaciones de trasferencia de datos. Por ejemplo en nuestro modelo tenemos usuarios que escriben post. Podemos de una tacada traernos todos los usuarios y sus post en el DTO de usuarios.
Por otro lado, los Mapper nos ayuda a ensamblar los DTO o desensamblaralos según el modelo de datos que tenemos. Es decir crear un objeto POJO a partir de un objeto DTO o POJO desde objetos DTO.
Se ha usado MariaDB como motor de base de datos relacional y se ha creado un controlador para su manejo usando PreparedStatements, con ello conseguimos:

Entrar en el directorio docker y ejecutar
$ docker-compose up -d
Para iniciar la BD con algunos datos modifica el fichero docker/mariadb/sql/init.sql
Debes conectarte a http://localhost:8080/
Codificado con :sparkling_heart: por José Luis González Sánchez
Este proyecto está licenciado bajo licencia MIT, si desea saber más, visite el fichero LICENSE para su uso docente y educativo.