Api Rest para el manejo de Microcomponentes implementado con Spring Boot, Spring MVC, Spring Data JPA, SpringFox, Swagger UI, Maven, Lombok, Postman, Log4j, Git, SQLDeveloper, Oracle XE 21c y Otras Tecnologías.
Ver
1.0) Descripción 🔝
Ver
- Microservicio Api Rest acerca de microcomponentes de electrónica implementado con Spring Boot, Spring MVC, Spring Data JPA, SpringFox, Swagger UI, Maven, Lombok, Postman, Log4j, Git, SQLDeveloper, Oracle XE 21c y Otras Tecnologías.
- Para este Microservicio no se implementa la capa de seguridad, es posible realizarlo con Spring Security (visualizar otras Api's Rest en mi perfíl de github).
- Se incluye documentación con Swagger 2 / Spring Fox para cada recurso junto con los códigos de respuesta Http más usados. Además se agrega doc junto con validaciones para cada Bean.
- Los Objetos de Búsqueda se trabajan como paginados, incluyendo algunos de tipo CRUD. Se implementa manejos de Excepciones con clases específicas para su control.
- Entre Otros.
1.1) Ejecución del Proyecto 🔝
Ver
- Descargamos y levantamos Oracle XE para ejecutar los servicios de base de datos.
- Abrimos una terminal y clonamos el repo de base de datos.
- Creamos y configuramos una conexión de oracle para la ejcución de los archivos de 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_Microcomponentes_SpringBoot
- 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 |
Otros | Otros |
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 |
SpringFox | 3.0.0 | Documentación de la Api |
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 |
Oracle XE 21c | 21.4.1 | Sistema de Gestión de Bases de Datos |
SQL Developer | 21.4.1 | Editor de Base de Datos |
Maven | 4.0.0 | Gestor de Proyectos |
Postman | 9.1.1 | Visualización y Gestión de la Api |
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 |
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 |
spring-boot-devtools | 2.6.4 | Herramientas para el Manejo de Spring Boot |
ojdbc8 | 21.3.0.0 | Driver para el SGDB Oracle |
lombok | 1.18.22 | Dependencia para la automatización de Código |