Skip to content

Commit c008c2f

Browse files
Update README.md
1 parent a49cbdb commit c008c2f

File tree

1 file changed

+210
-65
lines changed

1 file changed

+210
-65
lines changed

README.md

Lines changed: 210 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,203 @@
1+
<img src="./doc/swagger/doc_openapi_componenteController/doc-componente_controller.png" style="width: 100%; height: 80%"/>
2+
13
# 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+
250

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.
665
* Se pone a disposición todos los recursos anteriores SÓLO para Componentes y Componentes Detalles .
766

867
</br>
968

1069
* Repositorio de la Base de Datos de la Api : https://github.com/andresWeitzel/db_microelectronica_Oracle.
1170
* PlayList del Proyecto : https://www.youtube.com/playlist?list=PLCl11UFjHurAmc1wYGmkSdOOYyeo_6Ekj.
1271

13-
</br>
1472

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>
16151

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
18179
* http://localhost:8096/swagger-ui/index.html#/componente-controller
19180
* http://localhost:8096/swagger-ui/index.html#/componente-detalle-controller
20181
* http://localhost:8096/swagger-ui/index.html#/componente-transistor-bipolar-controller
21182
* http://localhost:8096/swagger-ui/index.html#/componente-capacitor-electrolitico-controller
22183

23-
* Los recursos de cada endpoint se muestran en las siguientes imágenes respectivas a cada controller.
24-
25-
</br>
26184

27185
### Controllers .
28186
![Index app](https://github.com/andresWeitzel/ApiRest_Microelectronica_SpringBoot_Oracle/blob/master/doc/swagger/controllers.png)
29187

30188
### Documentación ComponenteController.
31189
![Index app](https://github.com/andresWeitzel/ApiRest_Microelectronica_SpringBoot_Oracle/blob/master/doc/swagger/doc_openapi_componenteController/doc-componente_controller.png)
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>
34201

35202
### Operaciones CRUD.
36203
### Método GET / Listado de Componentes
@@ -59,7 +226,6 @@
59226

60227
</br>
61228

62-
63229
### Método PUT / Actualizar un Componente.
64230

65231
#### RequestBody
@@ -74,12 +240,9 @@
74240
#### Response
75241
![Index app](https://github.com/andresWeitzel/ApiRest_Microelectronica_SpringBoot_Oracle/blob/master/doc/swagger/doc_openapi_componenteController/put/getByFabricanteResponseAfterPut.png)
76242

77-
78-
79243

80244
</br>
81245

82-
83246
### Método DELETE / Eliminar un Componente según su id
84247

85248
#### RequestBody
@@ -92,70 +255,35 @@
92255
#### Response lado del server..
93256
![Index app](https://github.com/andresWeitzel/ApiRest_Microelectronica_SpringBoot_Oracle/blob/master/doc/swagger/doc_openapi_componenteController/delete/getByIdAfterDeleteServerMsj.jpg)
94257

95-
96-
</br>
258+
<br>
97259

98-
### Tecnologías Implementadas
260+
</details>
99261

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 |
115262

116263

117-
</br>
118264

119-
### Descarga y Documentacion de las Tecnologías Implementadas.
120265

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>
131267

132-
</br>
268+
## Sección 3) Prueba de Funcionalidad y Referencias
133269

134-
### Patrones de Diseño Implementados.
135270

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-)
140272

141-
</br>
273+
<details>
274+
<summary>Ver</summary>
142275

143-
### Dependencias Implementadas
144276

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>
154278

279+
</details>
155280

156281

282+
### 3.1) Referencias [🔝](#índice-)
283+
284+
<details>
285+
<summary>Ver</summary>
157286

158-
</br>
159287

160288
### Documentación No Oficial Recomendada.
161289

@@ -165,9 +293,25 @@
165293
* 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
166294

167295

296+
<br>
297+
298+
</details>
299+
300+
168301

169302

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+
171315

172316
## ` Documentación y Guía del Proyecto `
173317
#### (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 {
20802224
* git push -f --set-upstream origin master
20812225

20822226

2083-
</br>
2227+
<br>
20842228

2229+
</details>
20852230

20862231

0 commit comments

Comments
 (0)