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 |
