andresWeitzel / ApiRest_ElectroThingsV1_SpringBoot_MongoDB

Api Rest para Electro Things con Spring Boot, Spring MVC, Spring Security, JWT, Spring Data MongoDB, SpringFox, Swagger UI, Maven, Lombok, Postman, Log4j, Git, MongoDBCompass, MongoDB y Otras Tecnologías

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool


ApiRest ElectroThings V1

Api Rest para la Aplicación Electro Things acerca de Productos Electrónicos con Spring Boot, Spring MVC, Spring Security, JWT, Spring Data MongoDB, SpringFox, Swagger UI, Api Highchart, Maven, Lombok, Log4j, Git, MongoDBCompass, MongoDB y Otras Tecnologías.


Índice 📜

Ver

Sección 1) Descripción, Tecnologías y Dependencias

Sección 2) Endpoints y Recursos

Sección 3) Prueba de Funcionalidad y Referencias


Sección 1) Descripción, Tecnologías y Dependencias

1.0) Descripción 🔝

Ver
  • Se Desarrollan Clases Específicas para el Manejo de Excepciones para cada Servicio , como también un manejador de excepciones y validaciones por campos de beans.
  • Todas las funcionalidades tienen generación de logs en el Server para los errores y excepciones personalizadas.
  • Se incluye documentación completa de la Api con open-api para la visualización con swagger-ui, las anotaciones de open-api se aplican junto con los códigos de respuesta de tipo HTTP para cada función en los respectivos controllers.
  • Se desarrolla toda la funcionalidad para las Operaciones CRUD, como así también paginados y funcionalidades para uso de filtros de búsqueda de productos desde el frontend.
  • Se separa la capa de seguridad para la autenticación , implementando Spring Security y JWT. Además de realizar las operaciones CRUD para usuarios se aplica login y signin para la capa de presentación.
  • También se desarrollan los métodos de búsquedas independientes de tipo Like para todos los campos, tanto de usuarios como productos.
  • Los objetos de tipo getBy se manipulan como paginados, salvo los getById y Optional que se requiere un response por objeto y no una E.D como de tipo lista, stream, etc.
  • Entre Otros.
  • Se pone a disposición todos los recursos anteriores para productos y usuarios.

1.1) Ejecución del Proyecto 🔝

Ver
  • Descargamos MongoDB compass para ejecutar los servicios de Mongodb.
  • Abrimos una terminal y clonamos el repo de base de datos.
  • Creamos una collection e importamos el doc json (toda la data de nuestra db). Para más info. consultar repositorio respectivo
  • Descargamos Spring tool suite 4
  • Desde sts u otro ide abrimos una terminal y creamos un entorno de trabajo o workspace.
  • Clonar el Proyecto
git clone https://github.com/andresWeitzel/ApiRest_ElectroThingsV1_SpringBoot_MongoDB
  • Click der sobre el proyecto --> Run as --> Spring Boot App
  • Ya tenemos corriendo nuestra api desde tomcat. El url de la app para la ejecución de los endpoint's lo visualizamos desde consola.

1.2) Patrones de Diseño 🔝

Ver
Patrón de Diseño Finalidad
DAO Uso de interfaces entre la aplicación y el almacenamiento de datos.
MVC Separación y Representación de los Datos, Manejo de errores, Escalabilidad, etc
DTO Transferencia de objectos separando la capa de acceso a datos
Dependency Inyection Uso de funcionalidades requeridas de clases a través de inyección

1.3) Tecnologías 🔝

Ver
Tecnologías Versión Finalidad
Java 12.0.2 JDK
Spring Tool Suite 4 4.9.0 IDE
Spring Boot 2.6.4 Framework
Spring Boot Data JPA 2.6.3 Mapeo de objetos y persistencia en la db
Spring Validation 2.7 Anotations para Validaciones
Spring Security 2.6.7 Módulo de Seguridad de Spring
Json Web Token 0.9.1 Manejo de Token's de Seguridad
Lombok 1.18.22 Automatización de Código
Open-Api y UI Swagger 1.6.4 Documentación de la Api
UI Swagger 1.6.4 Visualización y Gestión de la Api
Maven 4.0.0 Gestor de Proyectos
Postman 9.1.1 Visualización y Gestión de la Api
MongoDB 5.0 Base de Datos
MongoDB Compass 1.31.2 Gestor para MongoDB
CMD 10 Símbolo del Sistema para linea de comandos
GNU bash / Terminal 4.4.23 Bash / Terminal para el manejo e implementación de Git.
Git 2.29.1 Control de Versiones

1.4) Dependencias Maven 🔝

Ver
Dependencia Maven Versión Finalidad
spring-boot-starter-data-jpa 2.6.7 Api de JpaRepository para el manejo de métodos
spring-boot-starter-test 2.6.7 Para Testing
spring-boot-starter-web 2.6.7 Se agrega toda la configuración web automáticamente de Maven a Spring
spring-boot-starter-validation 2.7.0 Validación de Annotations
spring-boot-devtools 2.6.7 Herramientas para el Manejo de Spring Boot
spring-boot-starter-security 2.6.7 Módulo de Seguridad de Spring
jjwt 0.9.1 Manejo de Token's
nimbus-jose-jwt 9.22 Refresh Token
jaxb-api 4.0 Serialización de Objetos Java a XML
jackson-databind 4.0 Serialización de Objetos Java a JSON
javax-annotation-api 4.0 Api para la lectura de annotations
springfox-boot-starter 3.0.0 Doc Api
springfox-swagger-ui 3.0.0 Doc Api
spring-boot-starter-data-mongodb 2.6.7 Manejo de SpringDataMongoDB con los métodos del Repository y anotations
springdoc-openapi-ui 1.6.4 Plantillas para el Front
spring-boot-devtools 2.6.7 Herramientas para el Manejo de Spring Boot
lombok 1.18.22 Dependencia para la automatización de Código

1.5) Descargas 🔝

Ver


Sección 2) EndPoints y Recursos

2.0) EndPoints 🔝

Ver

Autenticación

Gestión de Productos

Administración de Usuarios


2.1) Recursos y Servicios 🔝

Ver

Descripción de la Api Rest

Index app

Modelo de Respuesta Métodos Http Code

Index app


Recursos por Endpoint

Documentación con Swagger-UI auth-controller

Index app

Documentación con Swagger-UI producto-controller

Index app

Documentación con Swagger-UI usuario-controller

Index app

Listado de Productos Paginados

Index app Index app

Listado de Productos o Producto Paginado/s por Fecha

Index app Index app

Inserción de un Producto Método Post

Index app Index app

Búsqueda del Producto Insertado según su Código

Index app Index app

Actualización de un Producto Método Put

Index app Index app

Eliminación de un Producto Método Delete

Index app Index app

Búsqueda del Producto Eliminado según su Id

Index app Index app


Documentación Gráfica Acotada por razones de simplificación de documentación. Visualizar los videos desde la PlayList acerca de las Pruebas de Funcionalidad de la aplicación.


Sección 3) Prueba de Funcionalidad y Referencias

3.0) Prueba de Funcionalidad 🔝

Ver

Login de Usuarios

Alt text

Signin de Usuarios y Refresh Token

Alt text

Comprobación Usuario Controller

Alt text

Operaciones de Búsqueda para Producto Controller

Alt text

Operaciones CRUD para Producto Controller

Alt text


3.1) Referencias 🔝

Ver

Doc No Oficial Recomendada

Api Rest con MongoDB/SpringBoot

Spring Data MongoDB

Querys MongoRepository

Swagger UI y SpringFox

Doc Gráfica No Oficial Recomendada


About

Api Rest para Electro Things con Spring Boot, Spring MVC, Spring Security, JWT, Spring Data MongoDB, SpringFox, Swagger UI, Maven, Lombok, Postman, Log4j, Git, MongoDBCompass, MongoDB y Otras Tecnologías

License:GNU General Public License v3.0


Languages

Language:Java 100.0%