Skip to content

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

Notifications You must be signed in to change notification settings

andresWeitzel/ApiRest_ElectroThingsV1_SpringBoot_MongoDB

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Repository files navigation


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