|
| 1 | +<img src="./doc/swagger/doc_openapi_componenteController/doc-componente_controller.png" style="width: 100%; height: 80%"/> |
| 2 | + |
1 | 3 | # ApiRest_Microelectronica_SpringBoot_Oracle |
| 4 | +Api Restful para la gestión de Componentes de Microelectrónica implementada con Spring boot, Spring data, Maven, UI Swagger, Lombok, Oracle XE 21c, Git y otras tecnologías. |
| 5 | + |
| 6 | +</br> |
| 7 | + |
| 8 | +* [Repositorio base de datos](https://github.com/andresWeitzel/db_microelectronica_Oracle) |
| 9 | +* [PlayList del Proyecto](https://www.youtube.com/playlist?list=PLCl11UFjHurAmc1wYGmkSdOOYyeo_6Ekj) |
| 10 | + |
| 11 | + |
| 12 | + |
| 13 | +<br> |
| 14 | + |
| 15 | +## Índice 📜 |
| 16 | + |
| 17 | +<details> |
| 18 | + <summary> Ver </summary> |
| 19 | + |
| 20 | + <br> |
| 21 | + |
| 22 | +### Sección 1) Descripción, Tecnologías y Dependencias |
| 23 | + |
| 24 | + - [1.0) Descripción del Proyecto.](#10-descripción-) |
| 25 | + - [1.1) Ejecución del Proyecto.](#11-ejecución-del-proyecto-) |
| 26 | + - [1.2) Patrones de Diseño.](#12-patrones-de-diseño-) |
| 27 | + - [1.3) Tecnologías.](#13-tecnologías-) |
| 28 | + - [1.4) Dependencias Maven.](#14-dependencias-maven-) |
| 29 | + |
| 30 | + |
| 31 | +### Sección 2) Endpoints y Recursos |
| 32 | + |
| 33 | + - [2.0) EndPoints.](#endpoints-) |
| 34 | + - [2.1) Recursos y Servicios.](#recursos-y-servicios-) |
| 35 | + |
| 36 | + |
| 37 | +### Sección 3) Prueba de Funcionalidad y Referencias |
| 38 | + |
| 39 | + - [3.0) Prueba de Funcionalidad.](#30-prueba-de-funcionalidad-) |
| 40 | + - [3.1) Referencias.](#31-referencias-) |
| 41 | + |
| 42 | + |
| 43 | + |
| 44 | +<br> |
| 45 | + |
| 46 | +</details> |
| 47 | + |
| 48 | + |
| 49 | + |
2 | 50 |
|
3 | | -* Api Restful para la gestión de Componentes de Microelectrónica. |
4 | | -* A raíz de esta api ha surgido el desarrollo de una aplicación web para gestionar dichos productos. Repositorio : https://github.com/andresWeitzel/AppGestionMicroelectronica_SpringBoot. |
5 | | -* Esta Api Restful consta de todas las Operaciones CRUD , Búsquedas independientes de tipo like , paginaciones, búsquedas con filtro, todos los objetos de tipo getBy se manipulan como paginados, salvo los getById que se requiere un response por objeto. Se Desarrollan Clases Específicas para el Manejo de Excepciones para cada Servicio Completo , todas las funcionalidades tienen generación de logs en el Server para los errores y excepciones personalizadas, documentación completa de la Api con open-apiV3.0 para la visualización con swagger-UI, las anotaciones de dicha doc se aplican junto con los códigos de respuesta de tipo HTTP para cada función en los controllers. |
| 51 | +<br> |
| 52 | + |
| 53 | +## Sección 1) Descripción, Tecnologías y Dependencias |
| 54 | + |
| 55 | + |
| 56 | +### 1.0) Descripción [🔝](#índice-) |
| 57 | + |
| 58 | +<details> |
| 59 | + <summary>Ver</summary> |
| 60 | + |
| 61 | + <br> |
| 62 | + |
| 63 | + |
| 64 | +* Esta Api Restful consta de todas las Operaciones CRUD , b úsquedas independientes de tipo like , paginaciones, búsquedas con filtro, todos los objetos de tipo getBy se manipulan como paginados, salvo los getById que se requiere un response por objeto. Se Desarrollan Clases Específicas para el Manejo de Excepciones para cada Servicio Completo , todas las funcionalidades tienen generación de logs en el Server para los errores y excepciones personalizadas, documentación completa de la Api con open-apiV3.0 para la visualización con swagger-UI, las anotaciones de dicha doc se aplican junto con los códigos de respuesta de tipo HTTP para cada función en los controllers. |
6 | 65 | * Se pone a disposición todos los recursos anteriores SÓLO para Componentes y Componentes Detalles . |
7 | 66 |
|
8 | 67 | </br> |
9 | 68 |
|
10 | 69 | * Repositorio de la Base de Datos de la Api : https://github.com/andresWeitzel/db_microelectronica_Oracle. |
11 | 70 | * PlayList del Proyecto : https://www.youtube.com/playlist?list=PLCl11UFjHurAmc1wYGmkSdOOYyeo_6Ekj. |
12 | 71 |
|
13 | | -</br> |
14 | 72 |
|
15 | | -### EndPoints y Recursos. Vista Swagger UI. |
| 73 | +<br> |
| 74 | + |
| 75 | +</details> |
| 76 | + |
| 77 | + |
| 78 | + |
| 79 | +### 1.1) Ejecución del Proyecto [🔝](#índice-) |
| 80 | + |
| 81 | +<details> |
| 82 | + <summary>Ver</summary> |
| 83 | + |
| 84 | + <br> |
| 85 | + |
| 86 | +* Ejecutar la base de datos del proyecto. |
| 87 | +* Crear un entorno de trabajo a través de algún IDE (Para este caso utilizo STS 4). |
| 88 | +* Clonar el Proyecto (`git clone https://github.com/andresWeitzel/ApiRest_Microelectronica_SpringBoot_Oracle`) |
| 89 | +* Utilizando sts en el package explorer click derecho sobre el proyecto, run as spring boot app. |
| 90 | +* Comprobar cada endpoint. |
| 91 | + |
| 92 | +<br> |
| 93 | + |
| 94 | +</details> |
| 95 | + |
| 96 | + |
| 97 | + |
| 98 | +### 1.2) Patrones de Diseño [🔝](#índice-) |
| 99 | + |
| 100 | +<details> |
| 101 | + <summary>Ver</summary> |
| 102 | + <br> |
| 103 | + |
| 104 | +| **Patrón de Diseño** | **Finalidad** | |
| 105 | +| ------------- | ------------- | |
| 106 | +| [DAO](https://www.oscarblancarteblog.com/2018/12/10/data-access-object-dao-pattern/) | Uso de interfaces entre la aplicación y el almacenamiento de datos. | |
| 107 | +| [MVC](https://keepcoding.io/blog/que-es-el-patron-de-arquitectura-mvvm/) | Separación y Representación de los Datos, Manejo de errores, Escalabilidad, etc | |
| 108 | + |
| 109 | +<br> |
| 110 | +</details> |
| 111 | + |
| 112 | + |
| 113 | + |
| 114 | +### 1.3) Tecnologías [🔝](#índice-) |
| 115 | + |
| 116 | +<details> |
| 117 | + <summary>Ver</summary> |
| 118 | + |
| 119 | + <br> |
| 120 | + |
| 121 | +| Tecnologías BACKEND | Versión | Finalidad |
| 122 | +| ------------- | ------------- | ------------- | |
| 123 | +| [Java]( https://www.oracle.com/java/technologies/javase/jdk12-archive-downloads.html) | 12.0.2 | JDK | |
| 124 | +| [Spring Tool Suite 4](https://spring.io/blog/2021/06/21/spring-tools-4-11-0-released) | 4.9.0 | IDE | |
| 125 | +| [Spring Boot](https://spring.io/) | 2.6.4 | Framework | |
| 126 | +| [Spring Boot Data JPA](https://spring.io/projects/spring-data-jpa) | 2.6.3 | Mapeo de objetos y persistencia en la db | |
| 127 | +| [Spring Security](https://spring.io/projects/spring-security) | 2.6.7 | Servicios de Seguridad | |
| 128 | +| [JSON Web Token](https://jwt.io/) | 0.9.1 | Creación de tokens de acceso | |
| 129 | +| [Maven](https://maven.apache.org/) | 4.0.0 | Gestor de Proyectos | |
| 130 | +| [Postman](https://www.postman.com/) | 9.4.1 | Test de Apis | |
| 131 | +| [Lombok](https://projectlombok.org/) | 1.18.22 | Automatización de Código | |
| 132 | +| [Open-Api](https://www.openapis.org/) | 1.6.4 | Documentación de la Api | |
| 133 | +| [Oracle XE 21c](https://www.oracle.com/database/technologies/xe-downloads.html) | 21.4.1 | Sistema de Gestión de Bases de Datos | |
| 134 | +| [SQL Developer](https://www.oracle.com/database/sqldeveloper/) | 21.4.1 | Editor de Base de Datos | |
| 135 | +| [UI Swagger](https://swagger.io/tools/swagger-ui/) | 1.6.4 | Visualización y Gestión de la Api | |
| 136 | +| [GNU bash / Terminal](https://www.gnu.org/software/bash/) | 4.4.23 | Bash / Terminal para el manejo e implementación de Git integrado al Spring Tool Suite | |
| 137 | +| [Git](https://git-scm.com/) | 2.29.1 | Control de Versiones | |
| 138 | + |
| 139 | + |
| 140 | +<br> |
| 141 | + |
| 142 | +</details> |
| 143 | + |
| 144 | + |
| 145 | +### 1.4) Dependencias Maven [🔝](#índice-) |
| 146 | + |
| 147 | +<details> |
| 148 | + <summary>Ver</summary> |
| 149 | + |
| 150 | + <br> |
16 | 151 |
|
17 | | -### EndPoints |
| 152 | +| **Dependencia Maven** | **Versión** | **Finalidad** | |
| 153 | +| ------------- | ------------- | ------------- | |
| 154 | +| spring-boot-starter-data-jpa | 2.6.4 | Api de JpaRepository para el manejo de métodos | |
| 155 | +| spring-boot-starter-test | 2.6.4 | Para Testing | |
| 156 | +| spring-boot-starter-web | 2.6.4 | Se agrega toda la configuración web automáticamente de Maven a Spring | |
| 157 | +| springdoc-openapi-ui | 1.6.4 | Plantillas para el Front | |
| 158 | +| spring-boot-devtools | 2.6.4 | Herramientas para el Manejo de Spring Boot | |
| 159 | +| ojdbc8 | 21.3.0.0 | Driver para el SGDB Oracle | |
| 160 | +| lombok | 1.18.22 | Dependencia para la automatización de Código | |
| 161 | + |
| 162 | + |
| 163 | +<br> |
| 164 | + |
| 165 | +</details> |
| 166 | + |
| 167 | + |
| 168 | + |
| 169 | +<br> |
| 170 | + |
| 171 | +## Sección 2) EndPoints y Recursos |
| 172 | + |
| 173 | +### 2.0) EndPoints [🔝](#índice-) |
| 174 | + |
| 175 | +<details> |
| 176 | + <summary>Ver</summary> |
| 177 | + |
| 178 | +### EndPoints Generales |
18 | 179 | * http://localhost:8096/swagger-ui/index.html#/componente-controller |
19 | 180 | * http://localhost:8096/swagger-ui/index.html#/componente-detalle-controller |
20 | 181 | * http://localhost:8096/swagger-ui/index.html#/componente-transistor-bipolar-controller |
21 | 182 | * http://localhost:8096/swagger-ui/index.html#/componente-capacitor-electrolitico-controller |
22 | 183 |
|
23 | | -* Los recursos de cada endpoint se muestran en las siguientes imágenes respectivas a cada controller. |
24 | | - |
25 | | -</br> |
26 | 184 |
|
27 | 185 | ### Controllers . |
28 | 186 |  |
29 | 187 |
|
30 | 188 | ### Documentación ComponenteController. |
31 | 189 |  |
32 | | - |
33 | | - </br> |
| 190 | + |
| 191 | +* Algunos de los recursos de cada endpoint se muestran en las siguientes imágenes. |
| 192 | + |
| 193 | +<br> |
| 194 | + |
| 195 | +</details> |
| 196 | + |
| 197 | +### 2.1) Recursos por Endpoints. (Swagger UI) [🔝](#índice-) |
| 198 | + |
| 199 | +<details> |
| 200 | + <summary>Ver</summary> |
34 | 201 |
|
35 | 202 | ### Operaciones CRUD. |
36 | 203 | ### Método GET / Listado de Componentes |
|
59 | 226 |
|
60 | 227 | </br> |
61 | 228 |
|
62 | | - |
63 | 229 | ### Método PUT / Actualizar un Componente. |
64 | 230 |
|
65 | 231 | #### RequestBody |
|
74 | 240 | #### Response |
75 | 241 |  |
76 | 242 |
|
77 | | - |
78 | | - |
79 | 243 |
|
80 | 244 | </br> |
81 | 245 |
|
82 | | - |
83 | 246 | ### Método DELETE / Eliminar un Componente según su id |
84 | 247 |
|
85 | 248 | #### RequestBody |
|
92 | 255 | #### Response lado del server.. |
93 | 256 |  |
94 | 257 |
|
95 | | - |
96 | | -</br> |
| 258 | +<br> |
97 | 259 |
|
98 | | -### Tecnologías Implementadas |
| 260 | +</details> |
99 | 261 |
|
100 | | -| **Tecnologías** | **Versión** | **Finalidad** | |
101 | | -| ------------- | ------------- | ------------- | |
102 | | -| Java | 12.0.2 | JDK | |
103 | | -| Spring Tool Suite 4 | 4.9.0 | IDE | |
104 | | -| Spring Boot | 2.6.4 | Framework | |
105 | | -| Spring Boot Data JPA | 2.6.3 | Mapeo de objetos y persistencia en la db | |
106 | | -| Lombok | 1.18.22 | Automatización de Código | |
107 | | -| Open-Api y UI Swagger | 1.6.4 | Documentación de la Api | |
108 | | -| UI Swagger | 1.6.4 | Visualización y Gestión de la Api | |
109 | | -| Maven | 4.0.0 | Gestor de Proyectos | |
110 | | -| Oracle XE 21c | 21.4.1 | Sistema de Gestión de Bases de Datos | |
111 | | -| SQL Developer | 21.4.1 | Editor de Base de Datos | |
112 | | -| CMD | 10 | Símbolo del Sistema para linea de comandos | |
113 | | -| GNU bash / Terminal | 4.4.23 | Bash / Terminal para el manejo e implementación de Git integrado al Spring Tool Suite | |
114 | | -| Git | 2.29.1 | Control de Versiones | |
115 | 262 |
|
116 | 263 |
|
117 | | -</br> |
118 | 264 |
|
119 | | -### Descarga y Documentacion de las Tecnologías Implementadas. |
120 | 265 |
|
121 | | -| **Tecnología** | **Descarga** | **Documentación** | |
122 | | -| ------------- | ------------- | ------------- | |
123 | | -| Java-JDK 12 | https://www.oracle.com/java/technologies/javase/jdk12-archive-downloads.html | https://docs.oracle.com/en/ | |
124 | | -| Spring Tool Suite 4 |https://spring.io/tools | https://spring.io/guides | |
125 | | -| Lombok | https://projectlombok.org/download | https://projectlombok.org/download | |
126 | | -| Open UI |https://open-ui.org/ | https://open-ui.org/ | |
127 | | -| Maven Repository | https://mvnrepository.com/ | https://mvnrepository.com/ | |
128 | | -| Oracle | https://www.oracle.com/database/technologies/oracle21c-windows-downloads.html | https://www.oracle.com/database/technologies/oracle21c-windows-downloads.html| |
129 | | -| SQL Developer | https://www.oracle.com/tools/downloads/sqldev-downloads.html | https://www.oracle.com/tools/downloads/sqldev-downloads.html | |
130 | | -| Git | https://git-scm.com/downloads | https://git-scm.com/docs | |
| 266 | +<br> |
131 | 267 |
|
132 | | -</br> |
| 268 | +## Sección 3) Prueba de Funcionalidad y Referencias |
133 | 269 |
|
134 | | -### Patrones de Diseño Implementados. |
135 | 270 |
|
136 | | -| **Patrón de Diseño** | **Finalidad** | |
137 | | -| ------------- | ------------- | |
138 | | -| DAO | Uso de interfaces entre la aplicación y el almacenamiento de datos. | |
139 | | -| MVC | Separación y Representación de los Datos, Manejo de errores, Escalabilidad, etc | |
| 271 | +### 3.0) Prueba de Funcionalidad [🔝](#índice-) |
140 | 272 |
|
141 | | -</br> |
| 273 | +<details> |
| 274 | + <summary>Ver</summary> |
142 | 275 |
|
143 | | -### Dependencias Implementadas |
144 | 276 |
|
145 | | -| **Dependencia Maven** | **Versión** | **Finalidad** | |
146 | | -| ------------- | ------------- | ------------- | |
147 | | -| spring-boot-starter-data-jpa | 2.6.4 | Api de JpaRepository para el manejo de métodos | |
148 | | -| spring-boot-starter-test | 2.6.4 | Para Testing | |
149 | | -| spring-boot-starter-web | 2.6.4 | Se agrega toda la configuración web automáticamente de Maven a Spring | |
150 | | -| springdoc-openapi-ui | 1.6.4 | Plantillas para el Front | |
151 | | -| spring-boot-devtools | 2.6.4 | Herramientas para el Manejo de Spring Boot | |
152 | | -| ojdbc8 | 21.3.0.0 | Driver para el SGDB Oracle | |
153 | | -| lombok | 1.18.22 | Dependencia para la automatización de Código | |
| 277 | + <br> |
154 | 278 |
|
| 279 | +</details> |
155 | 280 |
|
156 | 281 |
|
| 282 | +### 3.1) Referencias [🔝](#índice-) |
| 283 | + |
| 284 | +<details> |
| 285 | + <summary>Ver</summary> |
157 | 286 |
|
158 | | -</br> |
159 | 287 |
|
160 | 288 | ### Documentación No Oficial Recomendada. |
161 | 289 |
|
|
165 | 293 | * Códigos HTTP de respuestas desarrollar en apis :https://www.ibm.com/docs/es/odm/8.5.1?topic=api-rest-response-codes-error-messages |
166 | 294 |
|
167 | 295 |
|
| 296 | + <br> |
| 297 | + |
| 298 | +</details> |
| 299 | + |
| 300 | + |
168 | 301 |
|
169 | 302 |
|
170 | | -<hr> |
| 303 | + |
| 304 | +<br> |
| 305 | + |
| 306 | +<br> |
| 307 | + |
| 308 | +<br> |
| 309 | + |
| 310 | +### `Siguiente sección en proceso de actualización` |
| 311 | + |
| 312 | +<details> |
| 313 | + <summary>Ver</summary> |
| 314 | + |
171 | 315 |
|
172 | 316 | ## ` Documentación y Guía del Proyecto ` |
173 | 317 | #### (Esta Documentación que Desarrollé es para la Creación y Configuración de la API, Manejo y Dependencias de Maven, Spring Tool Suite, Spring Booot, Hibernate-JPA, Oracle, Open-Api, Swagger UI y otros usos. Recomiendo Leerla y Realizar todo paso a paso como se indica en la misma). |
@@ -2080,7 +2224,8 @@ public class ComponenteController { |
2080 | 2224 | * git push -f --set-upstream origin master |
2081 | 2225 |
|
2082 | 2226 |
|
2083 | | -</br> |
| 2227 | + <br> |
2084 | 2228 |
|
| 2229 | +</details> |
2085 | 2230 |
|
2086 | 2231 |
|
0 commit comments