9 videos 📅 2023-08-31 09:00:00 America/Bahia_Banderas
1:45:24
2023-08-31 09:10:16
49:05
2023-08-31 11:33:11
1:08:01
2023-08-31 12:36:28
42:18
2023-08-31 15:49:43
1:01:14
2023-08-31 23:21:25
5:58
2023-09-01 09:15:11
11:59
2023-09-01 09:21:33
3:42:30
2023-09-01 09:34:32
8:12
2023-09-01 16:29:10

Visit the Spring Cloud grupo 1 course recordings page

                WEBVTT

00:00:01.300 --> 00:00:06.340
Pero bueno, a ver, si quieres, intentalo y dale, dale.

00:00:09.320 --> 00:00:15.880
Bien, entonces, a ver, entonces vamos a dejar los otros 5 minutos del Pomodoro 1230, 1242.

00:00:16.780 --> 00:00:22.180
Nos volvemos a conectar, ¿va? Ya sería el último corto, después vendría ya el largo.

00:00:23.400 --> 00:00:30.680
Y este, y revisamos, y bueno, ya continuaremos con la creación del primer micro, ¿va?

00:00:32.240 --> 00:00:36.180
Entonces ahorita nos vemos en 5 minutos.

00:00:43.560 --> 00:00:44.280
Listo.

00:00:45.740 --> 00:00:48.820
Sale, entonces, voy a compartir, va.

00:00:50.480 --> 00:01:00.440
Entonces, ya que pudieron entrar a esta página, donde serían los repos, este, la idea sería que

00:01:00.440 --> 00:01:06.520
fuéramos descargando, o sea, al final tenemos que descargarlos todos, pero ahorita para el día de hoy

00:01:06.520 --> 00:01:15.800
vamos a descargarnos nada más el de user service y este, el de product service y el de orden service, por favor.

00:01:16.640 --> 00:01:27.920
Entonces, para descargarlo, solamente hay que darle, hay que entrar a la, a cada uno de los repositorios.

00:01:28.140 --> 00:01:33.540
O sea, yo lo que hago es darle clic derecho, abrir en una nueva pestaña y se me va abriendo.

00:01:33.920 --> 00:01:43.220
Entonces, cuando ya estés aquí adentro en user service, este, vas a ver una, digamos, como un drop box,

00:01:43.220 --> 00:01:52.080
donde dice code, aquí en la parte de HTTPS, ves, ves este enlace, le das copiar, ¿sí?

00:01:52.680 --> 00:01:58.220
Y, por ejemplo, utilizando git bash, por ejemplo, puede servir, ya que lo tenemos ahí abierto.

00:01:59.980 --> 00:02:03.960
Hay que, primero, hay que meternos a la ruta en donde quieres que guardemos el repositorio.

00:02:04.420 --> 00:02:12.580
Yo les creé, según me acuerdo, una carpeta que se llama repositorios y se encuentra aquí en disco local.

00:02:12.580 --> 00:02:23.660
Aquí se van a usuarios y luego se van a nobleproj y aquí adentro hay una carpeta que se llama repositorios.

00:02:23.800 --> 00:02:27.340
Entonces, lo que pueden hacer es copiar este pad, ¿sí?

00:02:27.820 --> 00:02:39.020
Venís aquí al git bash o la terminal, no hay problema ahí, y entren ahí al, a la URL, bueno, al pad que acaban de pegar.

00:02:39.020 --> 00:02:52.560
Como esta tiene espacios, ah, bueno, no tiene espacios, la pueden poner así entre comillas simples o sin comillas y el chiste es que ya puedan entrar aquí a la ruta, ¿va?

00:02:53.240 --> 00:03:03.880
Entonces, una vez que ya estén ahí adentro, este, aquí ya pueden ejecutar este comando de git clone, git clone,

00:03:04.420 --> 00:03:07.220
y todo esto, según entiendo, viene en la presentación.

00:03:07.540 --> 00:03:15.400
Entonces, aquí lo voy poniendo, comparto en mi pantalla, git clone y aquí en el repositorio, ¿se acuerdan?

00:03:15.420 --> 00:03:21.460
En la ruta HTTPS la copiamos y es la que vamos a pegar ahí en el bash.

00:03:22.680 --> 00:03:33.120
Entonces, yo me meto aquí, le doy pegar y eso en automático, bueno, le doy enter y me va a estar descargando una carpeta que se llama user service.

00:03:33.120 --> 00:03:36.120
Aquí en mi, en mi carpeta de repositorios.

00:03:37.060 --> 00:03:40.100
Hay que hacerlo y avísenme si hay algún problema.

00:03:40.200 --> 00:03:47.520
Yo los voy a ir monitoreando y si necesitan que revisemos, repasemos, lo volvemos, lo volvemos a hacer.

00:03:48.140 --> 00:03:52.800
El de usuario, sí, el de usuario, el de producto y el de órdenes, por favor.

00:03:52.820 --> 00:03:53.220
Sí, gracias.

00:04:07.520 --> 00:04:09.380
A ver, voy a ver a tu máquina.

00:04:10.280 --> 00:04:14.160
Ah, pero te digo que...

00:04:14.160 --> 00:04:14.660
No.

00:04:15.340 --> 00:04:18.640
¿Quieres compartir o quieres que te lo repita a los pasos y los vas a seguir?

00:04:24.040 --> 00:04:25.140
Las comitas simples.

00:04:25.960 --> 00:04:28.260
Sí, a ver, intentalo con las comitas simples.

00:04:38.140 --> 00:04:38.740
Va.

00:04:39.240 --> 00:04:46.080
Los demás, si ya terminaron de copiar todos los repositorios, ayúdame también a ejecutar este comando, porfa.

00:04:46.380 --> 00:04:53.020
Que es git, espacio, config, espacio, guión, guión, list.

00:04:53.100 --> 00:04:58.100
Porque necesitamos ver que haya un user name y un user email configurado.

00:04:59.700 --> 00:05:00.420
Perfecto.

00:05:00.720 --> 00:05:01.440
Perfecto.

00:05:01.520 --> 00:05:01.760
Sale.

00:05:03.800 --> 00:05:09.700
Y bueno, ya que tengan los repositorios, ayúdenme a ejecutar este comando, git config list.

00:05:10.340 --> 00:05:12.800
Y déjenme ver quién ya lo tiene.

00:05:13.820 --> 00:05:21.580
Básicamente en el config list debe de aparecer hasta abajo un user name y un user email.

00:05:21.580 --> 00:05:26.120
Nada más seleccionense en el que si tenga un valor, por favor.

00:05:27.980 --> 00:05:30.580
Y en tu problemas en cuanto a esas propiedades.

00:05:34.020 --> 00:05:35.280
Adelante, dime en dónde.

00:05:36.860 --> 00:05:38.900
Ah, a ver, déjamelo comparto acá.

00:05:39.180 --> 00:05:40.160
Aquí lo voy a compartir.

00:05:41.940 --> 00:05:43.680
Este git config.

00:05:46.460 --> 00:05:47.360
No, ahí nada más.

00:05:47.360 --> 00:05:55.760
Fíjate si en el user name, al final dice user.name, user.email, que tenga un valor.

00:05:56.300 --> 00:05:59.460
De hecho tiene que decir capalata, no sé qué.

00:06:00.640 --> 00:06:06.260
Cuando ejecutaste el git config list te va a dar una serie de propiedades.

00:06:06.780 --> 00:06:10.920
Hasta abajo dice user.name y debe de venir un valor.

00:06:11.380 --> 00:06:14.100
Y para el user.email.

00:06:14.360 --> 00:06:15.180
Corre, corre.

00:06:16.020 --> 00:06:17.280
Ok, sale.

00:06:17.500 --> 00:06:28.220
Entonces ya que tenemos eso configurado, ya hay que bajarlos todos los repositorios que son el de producto, el de usuario y el de orden.

00:06:29.560 --> 00:06:35.180
Entonces eso ya nada más lo voy a ilustrar así de forma rápida.

00:06:36.840 --> 00:06:42.360
Básicamente lo que hicimos aquí en el de usuario, hay que hacer lo mismo, pero en el que se llama producto.

00:06:43.540 --> 00:06:45.260
Y en el que se llama orden.

00:06:45.900 --> 00:06:47.480
Es decir, lo abro.

00:06:48.480 --> 00:06:49.360
Por ejemplo, el de producto.

00:06:51.680 --> 00:06:56.020
Igual me va a aparecer aquí en la parte que dice code.

00:06:56.980 --> 00:06:59.040
HTTPS, le doy copiar a ese enlace.

00:06:59.760 --> 00:07:04.500
Y aquí en el bash, obviamente nada más me regreso un nivel.

00:07:04.540 --> 00:07:05.360
Ah, no, ahí estoy en repositorios.

00:07:06.280 --> 00:07:08.000
Ahí le doy otra vez git clone.

00:07:08.560 --> 00:07:11.300
Pego la url y me lo descarga.

00:07:11.300 --> 00:07:11.640
Vale.

00:07:12.180 --> 00:07:14.040
Eso mismo para los tres repos.

00:07:14.700 --> 00:07:16.120
Y listo.

00:07:16.320 --> 00:07:23.220
Ya que los tenemos ahí abiertos, los vamos a mantener ahí un ratito.

00:07:23.960 --> 00:07:28.320
En lo que voy a ir explicando cómo se crean los proyectos.

00:07:29.220 --> 00:07:33.400
Entonces, aquí en la diapositiva.

00:07:33.400 --> 00:07:39.260
Pues nos dice que yo voy a crear con initializer.

00:07:39.540 --> 00:07:42.800
Estos proyectos, este proyecto y le voy a setear.

00:07:42.800 --> 00:07:44.680
Está esta data o está esta meta.

00:07:46.320 --> 00:07:49.300
La metadata nos ayuda a este.

00:07:49.620 --> 00:07:51.880
Pues a describir a describir el proyecto.

00:07:53.540 --> 00:07:54.760
Entonces, este.

00:07:55.820 --> 00:07:57.760
Yo voy a ir creando.

00:07:58.660 --> 00:08:02.860
Por ejemplo, en el grope voy a poner con punto ATT.

00:08:03.320 --> 00:08:06.780
Que hace referencia, pues estamos trabajando aquí en AT&T.

00:08:07.380 --> 00:08:09.620
Entonces, si te fijas aquí en el grope.

00:08:09.840 --> 00:08:11.760
Tú puedes escribir AT&T.

00:08:12.720 --> 00:08:14.200
Va en el artifact.

00:08:14.780 --> 00:08:16.160
Pones user service.

00:08:16.660 --> 00:08:18.920
En este caso nosotros estamos viendo el de producto.

00:08:19.760 --> 00:08:21.000
Le pones producto.

00:08:22.320 --> 00:08:22.940
Service.

00:08:22.940 --> 00:08:25.300
Entonces, si te fijas ahí solito en automático.

00:08:25.480 --> 00:08:26.460
Ya te he puesto completo.

00:08:26.720 --> 00:08:28.120
Todo lo demás lo vas a dejar igual.

00:08:28.600 --> 00:08:30.980
Solamente si acaso puedes cambiar la descripción.

00:08:31.840 --> 00:08:34.260
Yo en este caso copio esta que tengo acá.

00:08:35.100 --> 00:08:36.020
La pego acá.

00:08:37.120 --> 00:08:38.380
El nombre del paquete.

00:08:38.560 --> 00:08:39.960
Lo único que hay que cerciorarse.

00:08:40.520 --> 00:08:45.380
Es no utilizar la parte de, bueno aquí es de productos.

00:08:46.620 --> 00:08:50.920
No hay que ocupar esto.

00:08:50.920 --> 00:08:53.220
No hay que ocupar esto.

00:08:53.580 --> 00:08:54.280
Ocupamos este.

00:08:55.680 --> 00:08:57.040
Y este.

00:08:58.700 --> 00:09:00.060
Estamos ocupando.

00:09:01.160 --> 00:09:01.960
El YAR.

00:09:02.580 --> 00:09:02.920
Estamos ocupando.

00:09:03.720 --> 00:09:04.580
Ya va a 17.

00:09:06.200 --> 00:09:06.500
Va.

00:09:07.300 --> 00:09:08.880
No voy a agregar dependencia.

00:09:09.040 --> 00:09:12.200
Si acaso sería bueno agregar la de Spring.

00:09:13.720 --> 00:09:15.040
Seleccionamos Spring Web.

00:09:15.720 --> 00:09:16.700
Y al hacer eso.

00:09:17.540 --> 00:09:18.520
Yo le doy generar.

00:09:18.520 --> 00:09:20.960
Y me va a descargar ya un paquete.

00:09:21.260 --> 00:09:21.820
Nada más que ahí.

00:09:21.820 --> 00:09:22.120
Espérame.

00:09:22.200 --> 00:09:22.760
Me equivoqué.

00:09:24.020 --> 00:09:24.460
Porque.

00:09:25.260 --> 00:09:26.180
Este está mal.

00:09:27.600 --> 00:09:29.460
Este product service está mal.

00:09:29.740 --> 00:09:30.640
Creo que es todo esto.

00:09:30.660 --> 00:09:31.300
Ya me lo quito.

00:09:31.580 --> 00:09:33.500
Me equivoqué porque no elegí Maven.

00:09:34.540 --> 00:09:35.540
No me había fijado.

00:09:35.640 --> 00:09:36.200
No elegí.

00:09:36.500 --> 00:09:37.840
Aquí se tiene que elegir Java.

00:09:38.640 --> 00:09:40.200
Aquí se tiene que elegir Maven.

00:09:40.860 --> 00:09:42.540
Aquí la versión de Spring que está bien esa.

00:09:42.620 --> 00:09:43.960
Porque de todo lo vamos a cambiar.

00:09:44.540 --> 00:09:45.000
Ahora sí.

00:09:45.060 --> 00:09:47.160
Ya con eso ya le das en generar.

00:09:47.160 --> 00:09:48.160
Cuando se genera.

00:09:48.960 --> 00:09:50.620
Se te va a abrir un archivo.

00:09:50.660 --> 00:09:53.260
Bueno se te va a descargar un archivo.

00:09:53.480 --> 00:09:54.120
Que es un zip.

00:09:54.560 --> 00:09:56.160
Y ese proyecto trae.

00:09:57.200 --> 00:10:00.780
Digamos todo lo que es un proyecto de Spring.

00:10:01.780 --> 00:10:02.220
Nativo.

00:10:02.440 --> 00:10:03.660
Así cero desde cero.

00:10:04.700 --> 00:10:05.760
Un proyecto desde cero.

00:10:06.260 --> 00:10:08.280
Y esto ahorita lo ilustré nada más.

00:10:08.280 --> 00:10:09.620
Para que vean como yo lo hice.

00:10:10.200 --> 00:10:12.700
Pero bueno al final ya el proyecto que se genera.

00:10:12.720 --> 00:10:13.760
Es el que yo voy a abrir.

00:10:14.480 --> 00:10:16.760
Por eso les pedí que descargaran el archivo.

00:10:17.780 --> 00:10:19.400
Es por ejemplo el de producto.

00:10:20.580 --> 00:10:22.260
Cualquiera de los tres de ese producto.

00:10:22.320 --> 00:10:23.120
Usuario o orden.

00:10:23.260 --> 00:10:24.680
Tienen la misma estructura.

00:10:25.000 --> 00:10:26.760
Entonces cuando tú lo abres en IntelliJ.

00:10:27.760 --> 00:10:30.460
Se te va a abrir este proyecto.

00:10:31.780 --> 00:10:34.220
Con estas mismas estructuras de carpetas.

00:10:34.380 --> 00:10:35.760
Te va a poner el nombre que le diste.

00:10:37.300 --> 00:10:39.140
Te va a generar estas carpetas.

00:10:39.360 --> 00:10:40.760
Te va a generar un archivo POM.

00:10:41.720 --> 00:10:42.640
Que es muy importante.

00:10:42.640 --> 00:10:43.640
Y lo vamos a ir repasando.

00:10:44.680 --> 00:10:47.240
Te va a generar un Ritme.

00:10:47.960 --> 00:10:48.460
Todo esto.

00:10:49.000 --> 00:10:51.240
El archivo importante que vamos a repasar ahorita.

00:10:51.440 --> 00:10:52.500
Es el POM.

00:10:53.640 --> 00:10:54.160
Entonces.

00:10:54.520 --> 00:10:56.140
Todo esto que fuimos dando de alta.

00:10:56.140 --> 00:10:57.480
Aquí en Spring Initializer.

00:10:57.680 --> 00:10:59.600
Que de hecho también se ve aquí en la presentación.

00:11:00.040 --> 00:11:00.520
Es decir.

00:11:00.580 --> 00:11:01.180
El Grove.

00:11:01.840 --> 00:11:02.620
El Artifact.

00:11:02.760 --> 00:11:04.120
Todo eso viene dentro.

00:11:04.500 --> 00:11:05.740
De nuestro archivo.

00:11:06.160 --> 00:11:07.600
POM.XML.

00:11:08.160 --> 00:11:09.600
Es un POM.XML.

00:11:09.840 --> 00:11:10.740
Porque yo elegí Maven.

00:11:11.400 --> 00:11:12.420
Y te fijas.

00:11:12.460 --> 00:11:12.740
Aquí viene.

00:11:13.400 --> 00:11:15.020
Como que el tema de con Maven.

00:11:15.280 --> 00:11:16.940
Porque está ocupando Maven.

00:11:17.200 --> 00:11:18.940
Como gestor de paquetes.

00:11:19.140 --> 00:11:21.000
Y Maven ocupa archivos XML.

00:11:21.680 --> 00:11:22.860
Diferente a Gradle.

00:11:22.920 --> 00:11:24.400
Por ejemplo que ocupan los JSON.

00:11:25.240 --> 00:11:25.680
Entonces.

00:11:25.980 --> 00:11:28.200
Esto fue meramente por.

00:11:28.200 --> 00:11:29.320
Por puro clasismo.

00:11:29.580 --> 00:11:31.340
Porque lo he hecho así mucho tiempo.

00:11:31.380 --> 00:11:32.800
Pero tú puedes haber elegido.

00:11:32.900 --> 00:11:34.760
Gestor de paquetes que ocupes.

00:11:35.280 --> 00:11:36.580
Entonces yo casi estoy seguro.

00:11:36.660 --> 00:11:38.180
Que ustedes también han ocupado Maven.

00:11:38.360 --> 00:11:38.940
Porque es como.

00:11:38.940 --> 00:11:40.860
Es el pionero.

00:11:41.140 --> 00:11:42.540
En esto de crear.

00:11:42.840 --> 00:11:44.800
Gestor de paquetes con.

00:11:44.800 --> 00:11:45.580
Con Spring.

00:11:46.420 --> 00:11:46.660
Entonces.

00:11:49.240 --> 00:11:49.620
Bueno.

00:11:49.860 --> 00:11:51.760
Todo esto que se fue dictando.

00:11:51.940 --> 00:11:52.740
Aquí en la metadata.

00:11:53.200 --> 00:11:54.960
Que se ve aquí en la.

00:11:55.500 --> 00:11:56.180
Presentación.

00:11:56.560 --> 00:11:59.220
Se va viendo en el POM.

00:11:59.660 --> 00:12:00.740
Por ejemplo el Grove.

00:12:00.960 --> 00:12:02.120
Que es con .att.

00:12:02.820 --> 00:12:04.100
Aquí lo tienes.

00:12:05.300 --> 00:12:06.820
Ahí vas a tener también.

00:12:07.000 --> 00:12:08.580
La parte del Artifact.

00:12:08.740 --> 00:12:09.720
Tienes el Name.

00:12:10.220 --> 00:12:10.860
¿Se acuerdan?

00:12:11.240 --> 00:12:12.480
Aquí nada más voy a dejar.

00:12:12.480 --> 00:12:13.980
Esta propiedad así en azul.

00:12:14.380 --> 00:12:14.640
¿Se acuerdan?

00:12:14.680 --> 00:12:16.000
Que les decía que con Eureka.

00:12:16.180 --> 00:12:18.600
Hay una propiedad que se ocupa mucho.

00:12:18.760 --> 00:12:19.320
Y es el Name.

00:12:20.060 --> 00:12:21.120
Bueno este es el Name.

00:12:21.780 --> 00:12:24.000
Que se le da al proyecto en el POM.

00:12:24.320 --> 00:12:25.960
Que es diferente a la que se le da.

00:12:26.100 --> 00:12:27.460
En el archivo de configuración.

00:12:27.460 --> 00:12:30.120
Pero básicamente nos referimos a esa propiedad.

00:12:30.140 --> 00:12:31.460
Al nombre del microservicio.

00:12:33.100 --> 00:12:35.500
Aquí tiene una pequeña descripción.

00:12:35.800 --> 00:12:36.560
De propiedades.

00:12:36.740 --> 00:12:38.560
Tiene como versión 17.

00:12:38.680 --> 00:12:40.460
Que es la que vamos a estar ocupando.

00:12:40.820 --> 00:12:43.260
Tiene la biblioteca de Spring Boot.

00:12:43.420 --> 00:12:44.800
La versión 2.6.

00:12:44.800 --> 00:12:46.680
2.6.3 que es la que.

00:12:46.680 --> 00:12:49.260
Aquí dicta que descarguemos.

00:12:49.560 --> 00:12:49.760
Sale.

00:12:50.660 --> 00:12:52.220
Tiene todo esta parte.

00:12:52.620 --> 00:12:52.820
Va.

00:12:52.820 --> 00:12:54.400
Entonces esto.

00:12:54.640 --> 00:12:56.020
Es lo que se va creando.

00:12:56.280 --> 00:12:58.660
Si nosotros creamos eso desde Spring Initializer.

00:12:59.080 --> 00:13:00.160
Le damos descargar.

00:13:00.380 --> 00:13:01.740
Nos va a generar este archivo.

00:13:02.120 --> 00:13:04.820
Esta estructura de proyectos.

00:13:05.460 --> 00:13:06.340
Aquí obviamente.

00:13:06.520 --> 00:13:07.820
Yo la pongo ya ilustrada.

00:13:08.220 --> 00:13:10.980
Directamente desde el repositorio que me baje.

00:13:11.620 --> 00:13:12.080
Porque bueno.

00:13:12.240 --> 00:13:13.840
Para que ya se vean las otras dependencias.

00:13:14.000 --> 00:13:14.960
Que le fui agregando.

00:13:15.920 --> 00:13:17.020
Que fuera de Postgres.

00:13:17.580 --> 00:13:18.820
Que fuera la de JPA.

00:13:18.820 --> 00:13:20.400
Para manejo de base de datos.

00:13:21.140 --> 00:13:22.680
La parte del módulo de prueba.

00:13:22.900 --> 00:13:24.340
Que se agrega pero no se ocupa.

00:13:24.420 --> 00:13:26.620
Aquí no vamos a hacer nada de testing unitario.

00:13:27.100 --> 00:13:28.660
Y esta es la dependencia que se agrega.

00:13:29.160 --> 00:13:30.120
De Spring Web.

00:13:32.540 --> 00:13:35.060
Aquí adentro también hay una configuración.

00:13:35.120 --> 00:13:35.960
Que se agrega.

00:13:36.040 --> 00:13:38.780
Para evitar que corran las pruebas unitarias.

00:13:39.080 --> 00:13:40.820
Entonces este se agrega.

00:13:41.620 --> 00:13:43.020
Y pues listo.

00:13:43.200 --> 00:13:44.080
Con detalle.

00:13:44.360 --> 00:13:46.040
Este es el archivo pump.

00:13:46.040 --> 00:13:49.140
Que se encuentra en nuestro repositorio.

00:13:49.200 --> 00:13:50.360
Del microservicio.

00:13:50.360 --> 00:13:51.380
Product Service.

00:13:52.460 --> 00:13:52.960
Entonces.

00:13:54.080 --> 00:13:55.620
Eso es básicamente esta parte.

00:13:56.120 --> 00:13:57.380
Aquí tú creas el proyecto.

00:13:58.120 --> 00:13:58.840
Y es lo que te decía.

00:13:58.900 --> 00:14:01.100
Te va a generar una estructura de este tipo.

00:14:02.000 --> 00:14:04.720
En este caso tienes el Product Service.

00:14:05.140 --> 00:14:05.300
Source.

00:14:05.600 --> 00:14:05.960
Java.

00:14:06.340 --> 00:14:10.360
User Service hasta llegar a la aplicación.

00:14:10.480 --> 00:14:11.100
Principal.

00:14:11.640 --> 00:14:12.940
Que es la que tiene el método main.

00:14:12.940 --> 00:14:15.700
Entonces esa también la podemos encontrar nosotros.

00:14:16.180 --> 00:14:17.280
Que está en main.

00:14:17.360 --> 00:14:17.660
Java.

00:14:18.940 --> 00:14:20.840
Entonces para eso.

00:14:21.360 --> 00:14:24.320
Aquí básicamente es lo mismo.

00:14:24.760 --> 00:14:26.500
En la raíz del proyecto.

00:14:26.700 --> 00:14:28.360
Buscas la carpeta.

00:14:29.100 --> 00:14:29.780
Java.

00:14:31.020 --> 00:14:32.020
El paquete.

00:14:32.300 --> 00:14:35.000
Y si te fijas aquí viene nuestra clase principal.

00:14:37.060 --> 00:14:38.360
Viene nuestra clase principal.

00:14:39.400 --> 00:14:41.140
Está decorada con este método main.

00:14:41.140 --> 00:14:43.100
Tiene esta anotación.

00:14:43.380 --> 00:14:45.340
Que es la que ya habíamos repasado.

00:14:45.660 --> 00:14:47.680
Que nos permite identificar esta clase.

00:14:47.820 --> 00:14:49.600
Como una clase Spring Boot Application.

00:14:50.320 --> 00:14:51.960
Es decir que se va a autoconfigurar.

00:14:52.560 --> 00:14:53.140
Se va a autoconfigurar.

00:14:54.140 --> 00:14:55.980
Entonces yo no me voy a pelear ahí con.

00:14:56.240 --> 00:14:57.920
Problemas de configuración y nada de eso.

00:14:59.900 --> 00:15:00.380
IntelliJ.

00:15:00.460 --> 00:15:03.220
Otra cosa es que tiene una.

00:15:03.960 --> 00:15:04.960
Tiene un mecanismo.

00:15:05.100 --> 00:15:07.320
Para que detecte lo que son estos métodos main.

00:15:07.540 --> 00:15:08.400
Dentro de las clases.

00:15:08.400 --> 00:15:10.340
Y tienen este triangulito.

00:15:10.700 --> 00:15:11.960
Si tú le picas.

00:15:12.200 --> 00:15:14.680
Ahí solito te corre toda la aplicación.

00:15:15.560 --> 00:15:16.940
Te corre el proyecto.

00:15:17.760 --> 00:15:18.440
Entonces bueno.

00:15:18.880 --> 00:15:22.740
Esta es la parte de cómo se crea el Product Service.

00:15:22.900 --> 00:15:24.260
Desde Spring Initializer.

00:15:24.440 --> 00:15:26.460
Ahorita todavía no hemos hablado de estas carpetas.

00:15:26.800 --> 00:15:28.820
De hecho en la presentación no se ven.

00:15:29.000 --> 00:15:29.740
Como les decía esto.

00:15:29.780 --> 00:15:31.080
Que bajamos del repositorio.

00:15:31.100 --> 00:15:32.280
Ya está más completo.

00:15:32.360 --> 00:15:34.400
Para que vayamos explicando cada uno.

00:15:34.400 --> 00:15:35.960
Y luego lo podamos replicar.

00:15:36.120 --> 00:15:37.080
En los otros microservices.

00:15:37.980 --> 00:15:39.240
Entonces hasta aquí.

00:15:39.280 --> 00:15:41.920
Llega a donde se ve la parte de la clase main.

00:15:42.220 --> 00:15:43.100
Con Java.

00:15:43.680 --> 00:15:46.260
Digo con el microservicio de producto.

00:15:46.800 --> 00:15:47.980
Y su archivo pom.

00:15:48.540 --> 00:15:48.740
Va.

00:15:49.820 --> 00:15:51.840
Que es como lo básico que te descarga.

00:15:52.020 --> 00:15:53.100
Spring Initializer.

00:15:55.320 --> 00:15:56.720
Hasta aquí alguna.

00:15:56.760 --> 00:15:58.340
Duda algún comentario.

00:15:59.820 --> 00:16:00.420
Perfecto.

00:16:00.720 --> 00:16:01.320
Súper.

00:16:01.320 --> 00:16:02.280
Vale.

00:16:02.480 --> 00:16:04.060
Entonces aquí.

00:16:04.420 --> 00:16:05.840
Vamos siguiendo la demo.

00:16:07.320 --> 00:16:07.800
Y.

00:16:08.140 --> 00:16:09.400
El objetivo de crear.

00:16:10.860 --> 00:16:12.580
El objetivo es crear un CRUD.

00:16:12.740 --> 00:16:13.200
Mejor dicho.

00:16:14.320 --> 00:16:16.580
En cada uno de los tres microservicios.

00:16:17.120 --> 00:16:18.580
Es decir nosotros vamos a tener un CRUD.

00:16:18.740 --> 00:16:19.740
De usuarios.

00:16:19.960 --> 00:16:21.480
Vamos a tener un CRUD de productos.

00:16:21.720 --> 00:16:23.180
Y un CRUD de órdenes.

00:16:23.820 --> 00:16:25.460
Y ese CRUD se llama así.

00:16:25.720 --> 00:16:27.120
Por las siglas del.

00:16:27.120 --> 00:16:28.220
En inglés.

00:16:28.980 --> 00:16:30.380
Que vienen a ser un create.

00:16:31.000 --> 00:16:31.680
Un read.

00:16:32.300 --> 00:16:33.080
Un update.

00:16:33.660 --> 00:16:34.300
Y un delete.

00:16:34.880 --> 00:16:36.980
Que son básicamente las operaciones.

00:16:37.680 --> 00:16:39.640
De lectura, escritura.

00:16:39.980 --> 00:16:41.360
Actualización y borrado.

00:16:41.960 --> 00:16:42.480
Para.

00:16:43.220 --> 00:16:44.420
Alguna entidad.

00:16:44.660 --> 00:16:46.540
En este caso usuarios.

00:16:47.440 --> 00:16:48.760
Entonces para nosotros.

00:16:49.100 --> 00:16:50.780
Hacer este CRUD.

00:16:51.180 --> 00:16:53.040
Que básicamente se va a exponer como un API.

00:16:53.880 --> 00:16:55.500
Nosotros vamos a crear.

00:16:55.940 --> 00:16:56.240
Endpoints.

00:16:56.820 --> 00:16:58.780
En este caso vamos a crear cinco endpoints.

00:16:59.260 --> 00:17:00.900
¿Por qué cinco? Porque el get.

00:17:01.240 --> 00:17:02.360
Que viene a ser el read.

00:17:03.560 --> 00:17:05.180
Se acostumbra a crear.

00:17:05.520 --> 00:17:06.220
Dos por default.

00:17:06.880 --> 00:17:08.300
Uno que te de todo.

00:17:09.480 --> 00:17:11.060
Todos los registros de esa.

00:17:11.060 --> 00:17:13.060
Entidad de la tabla de usuarios.

00:17:13.540 --> 00:17:14.880
Y también te de el usuario.

00:17:15.260 --> 00:17:15.740
Por ID.

00:17:16.480 --> 00:17:17.640
Uno en específico.

00:17:17.660 --> 00:17:18.780
Pasando el ID.

00:17:18.780 --> 00:17:19.140
Va.

00:17:19.860 --> 00:17:21.320
Entonces son dos de get.

00:17:21.720 --> 00:17:23.300
Y los demás pues ya es el de post.

00:17:23.460 --> 00:17:26.220
Es el que nos va a ayudar a hacer el alta del nuevo usuario.

00:17:26.640 --> 00:17:27.220
El put.

00:17:27.580 --> 00:17:29.300
La actualización.

00:17:29.360 --> 00:17:31.400
De alguna información.

00:17:32.060 --> 00:17:33.340
De un cierto usuario.

00:17:33.380 --> 00:17:34.220
Pasando el ID.

00:17:35.120 --> 00:17:37.080
Y el delete. Que es el borrado.

00:17:39.260 --> 00:17:40.060
Del usuario.

00:17:40.100 --> 00:17:41.360
También pasando el ID.

00:17:42.380 --> 00:17:44.740
Entonces estos son los endpoints.

00:17:45.180 --> 00:17:46.280
Que vamos a estar mapeando.

00:17:46.280 --> 00:17:48.280
Que vamos a estar creando en cada uno de los microservicios.

00:17:52.760 --> 00:17:53.720
Bien. Entonces.

00:17:54.760 --> 00:17:56.800
Aquí nos dice cómo vamos a crear.

00:17:57.640 --> 00:17:58.120
Los endpoints.

00:17:58.340 --> 00:17:59.940
Para dar de alta usuarios.

00:18:00.340 --> 00:18:01.800
Y para obtenerlos.

00:18:02.100 --> 00:18:03.580
Es decir el post y el get.

00:18:05.100 --> 00:18:05.560
Y bueno.

00:18:05.680 --> 00:18:07.800
Aquí nos va a ir describiendo.

00:18:08.980 --> 00:18:11.000
Cómo se va a ir dando de alta.

00:18:11.200 --> 00:18:12.780
Y para qué sirve cada una de las clases.

00:18:13.340 --> 00:18:14.280
Nos vamos a ir detallando.

00:18:16.480 --> 00:18:18.200
Una por una.

00:18:18.520 --> 00:18:20.040
Entonces aquí te dice básicamente.

00:18:20.340 --> 00:18:21.240
Que tienes que crear.

00:18:21.360 --> 00:18:22.280
Los siguientes paquetes.

00:18:23.360 --> 00:18:24.780
Esos paquetes como les digo.

00:18:25.020 --> 00:18:26.580
Yo aquí en este microservicio.

00:18:26.720 --> 00:18:27.960
Que ya les estoy mostrando.

00:18:28.200 --> 00:18:29.140
Ya están hechos.

00:18:29.920 --> 00:18:32.420
Y lo dice así para que ustedes ya puedan ver.

00:18:32.440 --> 00:18:33.840
Cómo queda el producto final.

00:18:34.340 --> 00:18:36.280
Y esto ustedes lo van a retomar.

00:18:36.920 --> 00:18:38.620
Cuando les toque hacer el de usuario.

00:18:38.740 --> 00:18:39.560
Y el de órdenes.

00:18:39.660 --> 00:18:41.800
Que es básicamente acabando este micro.

00:18:41.800 --> 00:18:43.580
Pues básicamente aquí.

00:18:44.180 --> 00:18:45.920
Lo que te dice es que tú te pares.

00:18:46.400 --> 00:18:47.640
En el paquete raíz.

00:18:48.120 --> 00:18:49.720
En AT&T user service.

00:18:49.980 --> 00:18:51.100
O product service.

00:18:51.660 --> 00:18:52.820
Y tú le des.

00:18:53.440 --> 00:18:55.800
Bueno crees los siguientes paquetes.

00:18:56.560 --> 00:18:57.900
Que básicamente es crear.

00:18:58.200 --> 00:18:58.720
Carpetas.

00:18:59.040 --> 00:19:01.980
Controller, model, LTO, repositor y service.

00:19:02.540 --> 00:19:03.380
Va. Entonces.

00:19:03.560 --> 00:19:05.260
Voy a crear yo por ejemplo una que se llame.

00:19:05.340 --> 00:19:07.180
Controller 2. Como para ver cómo.

00:19:07.220 --> 00:19:10.020
Ilustrar cómo se crea el paquete.

00:19:10.020 --> 00:19:12.060
Sí. Simplemente le das new.

00:19:12.240 --> 00:19:13.060
Eliges package.

00:19:13.760 --> 00:19:15.920
Y ahí pones el nombre de la carpeta que quieres.

00:19:16.460 --> 00:19:18.220
O sea yo por ejemplo voy a crear controller.

00:19:18.400 --> 00:19:19.780
Ahí ya me marca que ya existe.

00:19:20.020 --> 00:19:20.680
Porque ya existe.

00:19:21.320 --> 00:19:23.620
Lo voy a poner así. Controller 2.

00:19:23.880 --> 00:19:26.060
Y ya va a crear ese paquete.

00:19:26.100 --> 00:19:28.280
Si tú te fijas se crea como una carpeta.

00:19:28.480 --> 00:19:29.840
Los paquetes al final son esos.

00:19:30.980 --> 00:19:31.860
Carpetas. Entonces.

00:19:32.540 --> 00:19:34.020
Esa es la forma en la que tú vas creando.

00:19:35.740 --> 00:19:36.540
Los paquetes.

00:19:36.780 --> 00:19:38.320
Va. Yo aquí los voy a ir.

00:19:38.320 --> 00:19:38.680
Los voy a ir quitando.

00:19:38.920 --> 00:19:41.580
Porque no tiene caso que los guarde.

00:19:41.860 --> 00:19:42.280
Pero bueno.

00:19:42.480 --> 00:19:44.700
Esto es la forma en la que creas el paquete.

00:19:44.920 --> 00:19:45.480
Controller.

00:19:46.080 --> 00:19:48.140
También ahí te va a ir diciendo que quieres el carpet.

00:19:48.660 --> 00:19:50.180
El paquete.

00:19:50.380 --> 00:19:51.120
De modelo.

00:19:51.440 --> 00:19:53.640
DTO, de repositor y de servicio.

00:19:54.240 --> 00:19:55.280
Entonces vas a tener.

00:19:55.500 --> 00:19:56.860
Controller, modelo.

00:19:57.980 --> 00:19:59.100
Aquí está. Vas a tener.

00:19:59.400 --> 00:20:01.420
DTO, servicio y repositor.

00:20:02.320 --> 00:20:05.020
Son los paquetes que vamos a estar ocupando.

00:20:05.020 --> 00:20:05.820
Nuestras capas.

00:20:05.960 --> 00:20:06.520
Por así decir.

00:20:07.400 --> 00:20:08.780
¿Para qué sirve cada una? Bueno.

00:20:08.880 --> 00:20:09.800
El controller.

00:20:10.260 --> 00:20:13.700
Nos sirve para almacenar las clases controladoras.

00:20:13.820 --> 00:20:15.180
Que van a manejar las peticiones.

00:20:15.360 --> 00:20:15.820
De los endpoints.

00:20:16.440 --> 00:20:18.220
Es decir que ahí en esa clase controller.

00:20:18.320 --> 00:20:21.440
Tú vas a encontrar mapeados estos endpoints.

00:20:21.600 --> 00:20:23.200
Va para cada entidad.

00:20:24.180 --> 00:20:25.400
La clase de modelo.

00:20:25.760 --> 00:20:27.640
Te almacena la clase.

00:20:28.340 --> 00:20:29.160
El modelo.

00:20:29.160 --> 00:20:30.020
Básicamente.

00:20:30.620 --> 00:20:33.060
En este caso aquí se habla del modelo de usuario.

00:20:33.340 --> 00:20:34.800
Nosotros aquí en nuestra tabla.

00:20:34.920 --> 00:20:36.340
En nuestro microservicio de productos.

00:20:36.960 --> 00:20:38.120
En la carpeta modelo.

00:20:38.500 --> 00:20:40.340
Pues vamos a ver nuestro modelo de producto.

00:20:40.700 --> 00:20:42.280
Ahorita vamos a ver cómo se crea todo esto.

00:20:43.480 --> 00:20:44.800
Ahorita nada más ilustro.

00:20:45.080 --> 00:20:46.660
Que contiene.

00:20:46.940 --> 00:20:47.100
¿Va?

00:20:48.180 --> 00:20:49.720
¿Para qué nos sirve el DTO?

00:20:50.280 --> 00:20:51.920
Básicamente son las clases.

00:20:52.600 --> 00:20:54.000
Que nos permiten pasar.

00:20:54.560 --> 00:20:55.240
La data.

00:20:55.240 --> 00:20:57.240
Desde que llega una petición.

00:20:58.400 --> 00:21:00.060
Hasta que se almacenen la base de datos.

00:21:00.380 --> 00:21:00.500
¿Va?

00:21:01.120 --> 00:21:03.100
Entonces ese DTO lo vas a encontrar.

00:21:03.180 --> 00:21:04.860
Al mismo nivel que el controller.

00:21:05.580 --> 00:21:07.960
¿Por qué? Porque aquí es donde llega la petición.

00:21:08.020 --> 00:21:08.120
¿No?

00:21:08.880 --> 00:21:10.600
Entonces, ah, déjame.

00:21:10.980 --> 00:21:12.180
Acepto a una persona.

00:21:14.040 --> 00:21:14.480
Listo.

00:21:14.920 --> 00:21:16.460
Entonces tú aquí por ejemplo.

00:21:16.600 --> 00:21:19.220
Tienes los DTOs.

00:21:19.260 --> 00:21:21.100
Si te fijas ahí lo subrayo.

00:21:21.140 --> 00:21:21.880
Lo selecciono.

00:21:21.880 --> 00:21:24.240
Y se colorea.

00:21:24.300 --> 00:21:25.900
¿No? En donde se está ocupando.

00:21:26.040 --> 00:21:27.880
Entonces básicamente esos DTOs.

00:21:28.660 --> 00:21:29.120
Nacen.

00:21:29.140 --> 00:21:30.720
Conforme también nace el modelo.

00:21:30.880 --> 00:21:33.560
Lo voy a ver nada más como para que lo veas.

00:21:33.580 --> 00:21:34.700
De reojo ahorita.

00:21:35.520 --> 00:21:37.920
Y si te fijas es muy similar a nuestra clase modelo.

00:21:38.540 --> 00:21:39.800
Solamente que esto no sirve.

00:21:40.060 --> 00:21:40.900
Para hacer persistencia.

00:21:40.940 --> 00:21:42.640
Simplemente es para pasar información.

00:21:43.140 --> 00:21:44.500
De un request hacia un modelo.

00:21:44.880 --> 00:21:45.080
¿Va?

00:21:47.540 --> 00:21:48.620
Para eso sirve.

00:21:48.620 --> 00:21:50.540
Ahorita vamos a ir viendo cómo se crea cada clase.

00:21:51.340 --> 00:21:52.900
El repositorio es el paquete.

00:21:53.000 --> 00:21:54.700
Que nos permite utilizar.

00:21:55.200 --> 00:21:57.000
La interfaz y user repository.

00:21:57.500 --> 00:21:59.460
Que es la que va a interactuar con la base de datos.

00:22:00.200 --> 00:22:01.120
Nosotros con.

00:22:01.540 --> 00:22:03.220
Las librerías de JPA.

00:22:03.620 --> 00:22:05.000
Vamos a poder mapear.

00:22:05.120 --> 00:22:06.020
A través de interfaces.

00:22:07.080 --> 00:22:07.860
El CRUD.

00:22:08.240 --> 00:22:09.700
Tan sencillo.

00:22:09.860 --> 00:22:11.520
Entonces en el repositorio.

00:22:11.680 --> 00:22:13.480
Tú te vas a encontrar esta entidad.

00:22:13.620 --> 00:22:14.960
Que es el product repository.

00:22:14.960 --> 00:22:17.580
Que básicamente nada más es.

00:22:17.640 --> 00:22:19.980
Extiende, extender del repositorio de JPA.

00:22:20.520 --> 00:22:21.360
Y con eso.

00:22:21.660 --> 00:22:23.180
Se acuerdan de la definición de Spring.

00:22:23.400 --> 00:22:24.120
Spring Boot.

00:22:24.960 --> 00:22:27.000
Nada más mapeas de una forma.

00:22:27.740 --> 00:22:28.060
Bonita.

00:22:28.520 --> 00:22:30.940
De una forma que.

00:22:31.120 --> 00:22:32.940
Que te pide que mapees Spring.

00:22:33.400 --> 00:22:34.640
Y en automático te hace todo.

00:22:35.080 --> 00:22:36.320
Aquí tú ya tienes.

00:22:37.740 --> 00:22:38.580
Todo un CRUD.

00:22:38.720 --> 00:22:40.260
Aquí tú ya puedes ocupar todos los métodos.

00:22:40.560 --> 00:22:42.460
Para hacer alta baja consulta.

00:22:42.460 --> 00:22:44.040
Simplemente con estas líneas.

00:22:44.380 --> 00:22:46.080
Y diciéndole de qué.

00:22:47.020 --> 00:22:47.460
Entidad.

00:22:47.620 --> 00:22:48.820
Quieres que sea ese CRUD.

00:22:49.120 --> 00:22:51.220
Y obviamente este JPA repository.

00:22:52.280 --> 00:22:54.060
Hace caso de lo que viene.

00:22:54.260 --> 00:22:54.980
Aquí en este application.

00:22:55.140 --> 00:22:56.180
Que ahorita lo vemos a detalle.

00:22:56.240 --> 00:22:57.340
Todavía no hemos hablado de él.

00:22:57.940 --> 00:22:59.640
Ya lo habíamos hablado al principio.

00:22:59.800 --> 00:23:01.780
Pero a detalle de este no.

00:23:02.200 --> 00:23:02.820
Pero si te fijas.

00:23:02.860 --> 00:23:05.040
Este es un archivo de configuración.

00:23:05.140 --> 00:23:06.760
De los que platicábamos al inicio.

00:23:06.760 --> 00:23:09.380
Y aquí se ve cómo viene la base de datos.

00:23:10.040 --> 00:23:11.040
La connection string.

00:23:11.780 --> 00:23:13.000
Entonces ese connection string.

00:23:13.140 --> 00:23:14.960
Es el que está ocupando.

00:23:15.340 --> 00:23:16.600
Nuestro repositorio.

00:23:16.780 --> 00:23:18.720
Para conectarse a la base de datos.

00:23:18.740 --> 00:23:19.580
De productos.

00:23:20.160 --> 00:23:22.200
Ahí él va a encontrar una tabla.

00:23:22.360 --> 00:23:23.240
Que se llama producto.

00:23:23.760 --> 00:23:25.600
Todo esto está mapeado, está en automático.

00:23:25.740 --> 00:23:28.060
Si te fijas yo nada más meto.

00:23:28.060 --> 00:23:29.660
Nombres de forma correcta.

00:23:29.860 --> 00:23:31.360
Y en automático Spring entiende.

00:23:31.420 --> 00:23:32.300
Lo que tiene que hacer.

00:23:32.940 --> 00:23:35.020
Y ya con eso él.

00:23:35.020 --> 00:23:36.780
Se va a encargar de hacer todo el crud.

00:23:36.980 --> 00:23:37.720
De productos.

00:23:39.340 --> 00:23:40.740
Y después de esto.

00:23:40.760 --> 00:23:42.140
Viene la parte del servicio.

00:23:42.740 --> 00:23:44.300
Que nos sirve para.

00:23:45.520 --> 00:23:47.480
Prácticamente ser la lógica de negocio.

00:23:48.120 --> 00:23:49.520
Entonces ese paquete.

00:23:49.540 --> 00:23:50.860
Se encuentra aquí en service.

00:23:51.560 --> 00:23:52.720
Y tiene dos clases.

00:23:53.060 --> 00:23:54.460
La interfaz que nos define.

00:23:54.720 --> 00:23:55.740
El que se va a hacer.

00:23:56.260 --> 00:23:58.300
Que básicamente son los métodos de los cruds.

00:23:59.160 --> 00:24:00.080
El get all.

00:24:00.080 --> 00:24:01.160
El get by ID.

00:24:01.340 --> 00:24:03.120
El create, el update, el delete.

00:24:03.720 --> 00:24:05.380
Y la implementación que nos dice.

00:24:05.500 --> 00:24:07.740
Cómo se va a hacer cada uno de esos métodos.

00:24:07.920 --> 00:24:10.080
Que no es más que utilizar el concepto de.

00:24:10.600 --> 00:24:11.800
Inyección de dependencias.

00:24:12.840 --> 00:24:14.240
Y estar ocupando.

00:24:14.400 --> 00:24:15.940
Por ejemplo un get all productos.

00:24:16.240 --> 00:24:18.240
O usar el repositorio.

00:24:18.880 --> 00:24:19.520
Que es este.

00:24:19.940 --> 00:24:22.180
Se está creando una instancia en ese repositorio.

00:24:22.480 --> 00:24:23.400
Y como te decía.

00:24:23.520 --> 00:24:26.060
Ya tienen los métodos ya guardados.

00:24:26.580 --> 00:24:27.980
Aquí yo no le.

00:24:27.980 --> 00:24:29.240
Definí ningún método.

00:24:29.360 --> 00:24:30.620
Ya los trae por default.

00:24:31.140 --> 00:24:32.720
Aquí tienes un find all.

00:24:32.940 --> 00:24:34.080
Un find by ID.

00:24:34.480 --> 00:24:36.000
Vas a tener también un delete.

00:24:36.500 --> 00:24:37.300
Un save.

00:24:37.860 --> 00:24:40.040
Y por ahí también viene el update.

00:24:40.920 --> 00:24:43.460
Entonces esto es este.

00:24:43.620 --> 00:24:44.960
Básicamente el cómo funciona.

00:24:45.340 --> 00:24:46.720
Lo vamos a ver a detalle.

00:24:46.820 --> 00:24:47.680
Clase por clase.

00:24:48.220 --> 00:24:49.680
Ahorita nada más estoy como.

00:24:49.980 --> 00:24:51.920
Repasando que contiene cada.

00:24:52.400 --> 00:24:54.300
Cada este cada paquete.

00:24:54.300 --> 00:24:54.520
Va.

00:24:56.560 --> 00:24:57.720
Y si te fijas.

00:24:57.820 --> 00:24:59.840
En la siguiente diapositiva.

00:25:00.000 --> 00:25:02.100
Te dice que así quedaría la estructura.

00:25:02.320 --> 00:25:03.080
El mapa.

00:25:03.600 --> 00:25:04.520
Tu clase main.

00:25:05.100 --> 00:25:07.580
Tu paquete controller con su clase.

00:25:07.920 --> 00:25:09.740
Tu paquete model con su clase.

00:25:10.060 --> 00:25:11.600
Tu paquete DTO con su clase.

00:25:12.080 --> 00:25:14.100
Tu paquete repositorio con su clase.

00:25:14.500 --> 00:25:16.480
Tu paquete service con sus clases.

00:25:17.100 --> 00:25:18.780
Que son básicamente las mismas.

00:25:19.140 --> 00:25:20.440
Que nosotros ya.

00:25:20.440 --> 00:25:21.460
Fuimos revisando.

00:25:21.460 --> 00:25:23.720
Tu clase tu paquete principal.

00:25:24.280 --> 00:25:25.820
El controller su clase.

00:25:26.260 --> 00:25:27.740
El DTO su clase.

00:25:27.960 --> 00:25:28.480
El modelo.

00:25:29.240 --> 00:25:30.460
Repositorio el servicio.

00:25:30.940 --> 00:25:31.840
Y tu clase main.

00:25:33.080 --> 00:25:34.820
Bueno incluso aquí en el mapa se ve.

00:25:35.340 --> 00:25:35.700
El resource.

00:25:37.540 --> 00:25:38.840
El resource es.

00:25:39.020 --> 00:25:40.280
Y otro archivo muy importante.

00:25:40.560 --> 00:25:41.060
El pom.

00:25:42.780 --> 00:25:45.480
Hasta aquí hay alguna duda de cómo se.

00:25:45.820 --> 00:25:47.340
Piensa la aplicación.

00:25:47.340 --> 00:25:49.280
Más o menos va a entender qué es lo que se hace.

00:25:49.280 --> 00:25:49.860
En cada.

00:25:50.540 --> 00:25:52.860
En esta aplicación. En este micro servicio de producto.

00:25:53.280 --> 00:25:54.660
O en esta aplicación de producto.

00:25:55.900 --> 00:25:56.640
Hola hola. ¿Todo bien?

00:25:58.660 --> 00:25:59.540
Perfecto. Entonces.

00:26:00.000 --> 00:26:00.660
Igual es.

00:26:00.900 --> 00:26:03.000
Y dicen que repasemos las cosas.

00:26:03.060 --> 00:26:03.860
No hay ningún problema.

00:26:06.340 --> 00:26:07.220
Entonces bueno.

00:26:07.440 --> 00:26:08.900
Esto es como la embarrada de.

00:26:09.040 --> 00:26:10.260
Que es lo que lleva cada clase.

00:26:10.860 --> 00:26:12.080
Más bien cada paquete.

00:26:12.540 --> 00:26:14.300
Y ahorita vamos a ver en detalle cada clase.

00:26:16.300 --> 00:26:17.180
Entonces listo.

00:26:17.180 --> 00:26:17.800
Ahora sí.

00:26:18.000 --> 00:26:19.040
Aquí es donde te dice.

00:26:19.440 --> 00:26:22.240
Te va a ir diciendo cómo ir creando cada clase.

00:26:22.820 --> 00:26:23.860
En cada paquete.

00:26:24.080 --> 00:26:25.500
Y para que se ocupa.

00:26:26.000 --> 00:26:27.480
Entonces este.

00:26:27.700 --> 00:26:28.440
Todo eso.

00:26:29.520 --> 00:26:33.340
Lo voy a explicar a través de este diagrama.

00:26:34.120 --> 00:26:34.380
Que bueno.

00:26:34.380 --> 00:26:36.640
Este diagrama es ya más bien este.

00:26:37.780 --> 00:26:39.320
Ya más bien la parte de.

00:26:40.000 --> 00:26:40.500
Agregarlo.

00:26:41.180 --> 00:26:42.180
Con este.

00:26:43.300 --> 00:26:44.720
Con la iniciativa de la nube.

00:26:44.720 --> 00:26:46.680
Entonces esto.

00:26:47.460 --> 00:26:48.200
No voy a.

00:26:48.380 --> 00:26:49.900
No lo vamos a.

00:26:50.800 --> 00:26:52.940
Todavía hasta crear los microservicios.

00:26:53.260 --> 00:26:53.640
Y bueno.

00:26:54.120 --> 00:26:56.660
Nos vamos a quedar en esta parte.

00:26:57.160 --> 00:26:58.720
Vamos a ver con detalle.

00:26:59.700 --> 00:27:00.660
Ya la aplicación.

00:27:01.020 --> 00:27:01.740
La del producto.

00:27:03.020 --> 00:27:03.860
Para que la podamos.

00:27:05.080 --> 00:27:07.100
Desarrollar en el otro.

00:27:07.560 --> 00:27:07.960
En el otro.

00:27:07.960 --> 00:27:08.840
En el otro micro.

00:27:10.720 --> 00:27:12.640
Entonces esta aplicación de producto.

00:27:12.640 --> 00:27:14.320
Ya vimos cómo se creó con.

00:27:15.480 --> 00:27:16.000
Initializer.

00:27:16.220 --> 00:27:18.820
La abrimos aquí en Intel y.

00:27:19.340 --> 00:27:19.860
Y.

00:27:21.000 --> 00:27:22.600
Identificamos un archivo importante.

00:27:23.220 --> 00:27:23.780
Que es el POM.

00:27:25.340 --> 00:27:26.260
En el POM.

00:27:26.580 --> 00:27:27.980
Nada más hay que cerciorarse.

00:27:28.840 --> 00:27:30.540
De que lo tengas.

00:27:30.760 --> 00:27:31.780
Igual que aquí.

00:27:32.100 --> 00:27:33.400
Es decir tienes que tener.

00:27:33.600 --> 00:27:34.720
Bueno yo estoy en una rama.

00:27:34.860 --> 00:27:36.340
Que se llama feature first day.

00:27:37.140 --> 00:27:39.140
Eso es otra de las cosas que tal vez también.

00:27:39.140 --> 00:27:40.360
Tendríamos que ir.

00:27:40.440 --> 00:27:40.960
Hablando.

00:27:41.720 --> 00:27:43.680
En los repositorios que les pasé.

00:27:44.000 --> 00:27:46.240
Producto orden usuario.

00:27:46.540 --> 00:27:47.820
Si te fijas.

00:27:48.000 --> 00:27:49.660
Existen tres ramas.

00:27:49.920 --> 00:27:52.640
Bueno de hecho en todos los repositorios existen tres ramas.

00:27:52.900 --> 00:27:53.900
Existe tu rama main.

00:27:54.020 --> 00:27:55.020
Tu rama develop.

00:27:55.200 --> 00:27:57.000
Y tu rama feature first day.

00:27:57.480 --> 00:27:58.940
Esta rama feature first day.

00:27:59.280 --> 00:28:00.380
Es la que.

00:28:00.600 --> 00:28:02.420
De la que ustedes van a tener que crear.

00:28:02.480 --> 00:28:03.600
Una nueva rama.

00:28:03.600 --> 00:28:04.880
Con sus iniciales.

00:28:05.160 --> 00:28:06.120
Para cada microservicio.

00:28:06.580 --> 00:28:08.080
Y ahí es donde vamos a estar trabajando.

00:28:08.980 --> 00:28:11.040
Esas ramas que van a ir creando.

00:28:11.240 --> 00:28:12.820
Ustedes con su.

00:28:12.840 --> 00:28:14.100
Inici con su inicial.

00:28:14.680 --> 00:28:15.580
Son las que van a estar.

00:28:18.500 --> 00:28:19.020
Desarrollando.

00:28:19.460 --> 00:28:20.400
En este caso por ejemplo.

00:28:20.520 --> 00:28:22.380
El de producto que ya está.

00:28:23.080 --> 00:28:23.600
Terminado.

00:28:23.960 --> 00:28:25.660
La rama de feature first day.

00:28:27.140 --> 00:28:28.520
Ya está ahí completa.

00:28:29.800 --> 00:28:30.620
Ya tiene todo.

00:28:31.280 --> 00:28:32.860
Pero por ejemplo la de usuario.

00:28:33.000 --> 00:28:33.780
La de órdenes.

00:28:34.160 --> 00:28:35.020
No tiene.

00:28:35.660 --> 00:28:37.180
Completos todos los paquetes.

00:28:37.240 --> 00:28:38.300
Todas las clases demás.

00:28:38.780 --> 00:28:40.300
Entonces el objetivo del ejercicio.

00:28:40.320 --> 00:28:41.040
Del día de hoy.

00:28:41.140 --> 00:28:42.600
Cuando ya terminemos.

00:28:42.800 --> 00:28:44.800
Va a hacer hacer el cruz de usuario.

00:28:45.060 --> 00:28:46.540
Bueno completar el cruz de usuario.

00:28:46.640 --> 00:28:47.540
Y el de órdenes.

00:28:47.720 --> 00:28:49.040
Basándose en el de producto.

00:28:49.600 --> 00:28:50.820
Va ese es el objetivo.

00:28:51.360 --> 00:28:52.860
Entonces en este producto.

00:28:52.860 --> 00:28:55.780
Por eso hago alusión de la rama.

00:28:56.040 --> 00:28:56.760
Porque yo estoy igual.

00:28:56.840 --> 00:28:59.260
En la rama de feature first day.

00:28:59.620 --> 00:29:00.420
Que es esta.

00:29:01.240 --> 00:29:02.860
Y en esta estoy creando este.

00:29:03.740 --> 00:29:04.300
Pues esto.

00:29:04.740 --> 00:29:06.920
Entonces estoy creando aquí el.

00:29:07.300 --> 00:29:08.300
La estructura.

00:29:08.400 --> 00:29:09.660
La definición del proyecto.

00:29:11.020 --> 00:29:12.060
Con maven.

00:29:12.400 --> 00:29:14.100
Perdón con spring initializer la cree.

00:29:14.620 --> 00:29:16.040
Obviamente utilizando maven.

00:29:16.580 --> 00:29:18.640
Y bueno se ve toda la metadata que fui.

00:29:18.920 --> 00:29:19.720
Dándole de alta.

00:29:19.720 --> 00:29:21.940
Y fui creando su group ID.

00:29:22.140 --> 00:29:24.360
El artefacto el name el description.

00:29:24.640 --> 00:29:25.280
Sus properties.

00:29:25.800 --> 00:29:28.520
La versión de Java la versión de spring boot.

00:29:29.140 --> 00:29:29.720
Agregue dependencias.

00:29:30.940 --> 00:29:32.080
Como spring web.

00:29:33.480 --> 00:29:34.160
Agregue.

00:29:34.820 --> 00:29:35.800
Spring starter boot.

00:29:36.580 --> 00:29:38.100
Para que sea spring boot.

00:29:38.640 --> 00:29:40.420
Agarré la parte de JPA.

00:29:40.900 --> 00:29:42.660
Agregue el driver de.

00:29:43.480 --> 00:29:44.160
Postgres.

00:29:45.020 --> 00:29:46.480
Y estas configuraciones.

00:29:46.980 --> 00:29:47.660
Adicionales.

00:29:47.660 --> 00:29:49.500
Para que no tomen cuenta.

00:29:50.500 --> 00:29:51.860
El testing unitario.

00:29:53.080 --> 00:29:54.760
Una vez que ya tengo hecho esto.

00:29:55.420 --> 00:29:57.480
Yo con maven aquí tiene.

00:29:57.480 --> 00:29:59.600
IntelliJ tiene incorporada.

00:30:00.460 --> 00:30:00.480
Una.

00:30:01.220 --> 00:30:02.300
Digamos un maven.

00:30:02.520 --> 00:30:03.760
Tiene maven incorporado.

00:30:05.460 --> 00:30:07.360
Entonces yo con eso puedo.

00:30:07.620 --> 00:30:09.660
Hacer la descarga de paquetes.

00:30:11.140 --> 00:30:12.700
Ya sueno la.

00:30:13.260 --> 00:30:14.720
Ya sueno la alarma.

00:30:14.720 --> 00:30:16.040
Me va a dar un.

00:30:16.960 --> 00:30:17.600
A hacer rápido.

00:30:17.880 --> 00:30:19.240
Unos últimos 5 minutos.

00:30:19.660 --> 00:30:21.300
Porque este es el último descanso.

00:30:21.360 --> 00:30:22.880
Es el descanso largo.

00:30:23.900 --> 00:30:25.800
A ver ahorita lo hablamos.

00:30:26.900 --> 00:30:28.780
Yo teniendo maven aquí.

00:30:29.480 --> 00:30:30.160
Incorporado.

00:30:30.460 --> 00:30:32.280
Puedo hacer la.

00:30:32.280 --> 00:30:34.440
Sincronización y al presionar.

00:30:34.640 --> 00:30:36.040
Este botón me va a estar descargando.

00:30:36.300 --> 00:30:37.480
Los paquetes.

00:30:37.520 --> 00:30:39.260
Que paquetes va a descargar.

00:30:39.760 --> 00:30:42.860
Maven en automático va a reconocer.

00:30:42.860 --> 00:30:46.240
que se trata de un proyecto Maven porque existe un POM.

00:30:46.400 --> 00:30:50.980
Entonces, al existir un POM, Maven, su naturaleza es venirse a este archivo

00:30:50.980 --> 00:30:54.980
y va a ir leyendo todas las dependencias que tienes aquí tú dadas de alta.

00:30:55.560 --> 00:30:59.980
Y las va a ir a buscar en un repositorio global que se llama el Maven Repository.

00:31:00.560 --> 00:31:04.000
Y va a empezar a buscar estas dependencias y las va a descargar en tu proyecto.

00:31:04.880 --> 00:31:08.600
Las va a ir descargando y se van a ir guardando en una carpeta

00:31:08.600 --> 00:31:10.860
que se llama external libraries, ¿va?

00:31:10.860 --> 00:31:13.460
Entonces, si te fijas aquí, todas estas librerías,

00:31:13.640 --> 00:31:15.080
ya las puedes cargando de Maven.

00:31:16.060 --> 00:31:17.180
¿Esto para qué sirve?

00:31:17.220 --> 00:31:20.720
Pues para que el día de mañana que tú quieras ocupar un,

00:31:20.720 --> 00:31:24.760
no sé, una librería que te transforme o que te ayude a manejar validaciones

00:31:24.760 --> 00:31:28.200
en JSONs o crear JSONs o no sé,

00:31:28.840 --> 00:31:33.320
algo que te manejo de fechas, bibliotecas externas,

00:31:34.000 --> 00:31:35.040
las puedas ocupar.

00:31:35.100 --> 00:31:38.640
Por ejemplo, yo las voy a usar para manejar

00:31:39.180 --> 00:31:40.900
la persistencia con JPA.

00:31:41.660 --> 00:31:48.560
Y mañana que vayamos agregando más miembros en la familia de Spring Cloud,

00:31:48.760 --> 00:31:51.500
más librerías, aquí las vamos a meter, ¿no?

00:31:51.500 --> 00:31:56.380
Para que podamos utilizar Fame Client, Eureka, el Config Server,

00:31:56.560 --> 00:31:59.920
todo eso lo vamos a ir agregando aquí en Maven, ¿va?

00:31:59.920 --> 00:32:00.920
En las dependencias.

00:32:01.640 --> 00:32:04.540
Entonces, esto es cómo funciona un pump,

00:32:04.540 --> 00:32:09.000
así como a nivel rápido, a grandes rasgos.

00:32:10.140 --> 00:32:13.480
Y bueno, en específicamente cómo funciona el pump de nuestro

00:32:13.480 --> 00:32:15.580
microservicio de productos, ¿va?

00:32:16.500 --> 00:32:21.880
Entonces, a ver, aquí es que fíjense que me cambiaron la jugada

00:32:21.880 --> 00:32:26.000
porque yo estaba acostumbrado a dar el curso de 8 a 4, ¿va?

00:32:26.240 --> 00:32:28.700
Entonces, ahorita ya se hizo, o sea,

00:32:28.700 --> 00:32:33.900
se me cambia porque ya empezó a las 9 y ya se traslapa una hora que es,

00:32:33.900 --> 00:32:37.620
no sé, en mi curso anterior a estas horas ya era la hora de la comida.

00:32:38.080 --> 00:32:41.560
¿Quieren que hagamos ahorita mejor la hora de la comida?

00:32:41.880 --> 00:32:44.000
¿Demos la hora de receso una hora?

00:32:44.520 --> 00:32:49.380
¿O damos el descanso largo y después tomamos otra sesión de 45 minutos

00:32:49.380 --> 00:32:51.060
y después haríamos la hora de comida?

00:32:51.520 --> 00:32:53.020
¿Cómo les funciona más?

00:32:58.080 --> 00:32:58.720
¿Sí?

00:33:06.280 --> 00:33:06.740
Perfecto.

00:33:07.120 --> 00:33:09.340
Entonces, podemos hacer esto, miren,

00:33:09.560 --> 00:33:12.920
podemos campechanear, podemos seguirnos ahorita de aquí hasta las 2.

00:33:14.040 --> 00:33:17.320
Y porque ahorita ya se tendría que tomar el pomodoro,

00:33:17.980 --> 00:33:19.620
el descanso largo de 25 minutos.

00:33:20.060 --> 00:33:21.320
¿Qué les parece si hacemos esto?

00:33:21.660 --> 00:33:24.980
Nos seguimos de aquí a las 2, a las de 2 a 3, la hora de la comida.

00:33:25.700 --> 00:33:28.360
Y después de la hora de la comida seguimos con los pomodoros,

00:33:29.080 --> 00:33:31.960
pero en uno de esos en vez de descansar 5 minutos,

00:33:32.240 --> 00:33:33.880
hacemos el descanso de los 25.

00:33:33.880 --> 00:33:34.600
¿Va?

00:33:38.000 --> 00:33:38.440
Va.

00:33:39.100 --> 00:33:42.200
Entonces, ah, bien, perfecto.

00:33:42.420 --> 00:33:44.060
Entonces, vamos a darle de aquí a las 2.

00:33:44.280 --> 00:33:46.920
Continuamos y tomamos ya la hora de la comida.

00:33:48.240 --> 00:33:48.620
Sal y vale.

00:33:49.180 --> 00:33:51.420
Entonces, va.

00:33:51.700 --> 00:33:53.680
Entonces, esta es la parte del pom, ¿sale?

00:33:53.760 --> 00:33:58.720
Este es el fichero que se crea, que se ocupa con Maven, ¿sale?

00:34:00.020 --> 00:34:02.520
Bueno, después de este archivo,

00:34:02.520 --> 00:34:06.940
otro archivo importantísimo es el application.yaml.

00:34:07.360 --> 00:34:10.240
Este archivo es el que les decía que es el archivo de

00:34:10.240 --> 00:34:10.860
configuración.

00:34:11.860 --> 00:34:13.940
Este archivo se puede llamar application.yaml,

00:34:14.060 --> 00:34:16.840
también lo van a encontrar como application.properties,

00:34:17.080 --> 00:34:20.420
o incluso hay otros que se llaman bootstrap.yaml, ¿va?

00:34:20.880 --> 00:34:25.880
Son archivos que le brindan a tu proyecto configuración.

00:34:26.900 --> 00:34:31.500
Por ejemplo, el ejemplo creo que más común es el de la

00:34:31.500 --> 00:34:32.240
base de datos.

00:34:32.980 --> 00:34:37.140
Simplemente, yo al declarar un archivo application.yaml en la

00:34:37.140 --> 00:34:41.560
carpeta resources, la configuración de Spring Boot en

00:34:41.560 --> 00:34:44.340
automático va a entender que este es un archivo de

00:34:44.340 --> 00:34:45.060
configuración.

00:34:45.900 --> 00:34:48.160
Y todavía más, aún más inteligente,

00:34:48.400 --> 00:34:51.760
va a entender que si tú creas esta estructura de

00:34:51.760 --> 00:34:55.260
propiedades, en este caso Spring Datasource,

00:34:55.520 --> 00:34:59.700
URL y username and password, va a entender que cuando tú

00:34:59.700 --> 00:35:03.240
estás trabajando con un modelo basado en persistencia de JPA,

00:35:03.580 --> 00:35:06.440
que es su biblioteca, su framework interno,

00:35:06.780 --> 00:35:10.720
Hibernate, toda esta parte, cuando tú crees repositorios,

00:35:10.820 --> 00:35:11.100
¿sí?

00:35:11.420 --> 00:35:16.180
Cuando tú extiendas clases de este JPA y pases el modelo

00:35:16.180 --> 00:35:17.880
y demás, esto en automático,

00:35:18.200 --> 00:35:22.280
la configuración de Spring Boot va a entender que se tiene

00:35:22.280 --> 00:35:25.160
que conectar a una base de datos que se llama

00:35:26.360 --> 00:35:31.800
productdb en el puerto 5433 del host local con el

00:35:31.800 --> 00:35:33.360
username y con este password.

00:35:34.540 --> 00:35:37.780
Todo eso lo va a entender en automático, ¿sí?

00:35:38.020 --> 00:35:42.720
Cuando eso suceda, ya aquí te va a brindar de ciertos

00:35:42.720 --> 00:35:46.720
métodos que son suficientes para hacer un crud, ¿va?

00:35:47.280 --> 00:35:50.680
Esa es como funcionaría la parte de la configuración de

00:35:50.680 --> 00:35:51.300
base de datos.

00:35:52.020 --> 00:35:55.620
Ahora, esta connection string, ¿de dónde la sacamos?

00:35:56.000 --> 00:35:58.720
Si se acuerdan que ya hicimos un ejercicio en donde nos

00:35:58.720 --> 00:36:02.540
conectamos a la base de datos de cada uno de ellos,

00:36:02.680 --> 00:36:03.780
de cada entidad.

00:36:04.360 --> 00:36:08.260
Y si se acuerdan, todo eso nació de este archivo que

00:36:08.260 --> 00:36:10.860
teníamos que se llama Docker Compose.

00:36:11.100 --> 00:36:16.320
Aquí adentro ustedes pueden ver o repasar y extraer las

00:36:16.320 --> 00:36:16.760
conexiones.

00:36:17.060 --> 00:36:20.480
Aquí tienes, por ejemplo, el usuario, el password y la

00:36:20.480 --> 00:36:21.180
base de datos.

00:36:21.260 --> 00:36:23.460
También tienes el puerto, ¿sí?

00:36:23.460 --> 00:36:27.140
Con eso tienes aquí todo mapeado para que tú puedas

00:36:27.140 --> 00:36:30.260
conectarte aquí en la base de datos, ¿va?

00:36:32.160 --> 00:36:34.900
Y, bueno, eso es con respecto a la base de datos.

00:36:35.280 --> 00:36:38.000
Pero el propósito, o sea, lo que trató de ilustrar es el

00:36:38.000 --> 00:36:39.200
propósito de este archivo.

00:36:39.740 --> 00:36:43.020
Este archivo, entonces, lo que nos permite hacer es

00:36:44.780 --> 00:36:47.980
definir propiedades que son globales a todo tu proyecto,

00:36:48.500 --> 00:36:48.960
¿sí?

00:36:48.960 --> 00:36:52.800
Esta es la que les decía que es muy, muy importante, esto.

00:36:53.320 --> 00:36:55.840
Cuando vean el Spring Application Name,

00:36:56.420 --> 00:36:59.820
este name es importante porque a lo mejor aquí ahorita tú lo

00:36:59.820 --> 00:37:02.560
defines y lo puedes ocupar para ciertas cosas,

00:37:02.680 --> 00:37:03.360
lo que tú quieras.

00:37:03.420 --> 00:37:06.880
Para mandar un mensaje cada vez que haces una petición en

00:37:06.880 --> 00:37:09.160
tus blogs, sepas de qué microservicio estás hablando,

00:37:09.800 --> 00:37:10.360
Está bien.

00:37:10.820 --> 00:37:13.020
Pero más allá, más al fondo,

00:37:13.280 --> 00:37:15.440
mañana que estemos trabajando con Eureka,

00:37:15.800 --> 00:37:17.760
este name es imprescindible, ¿no?

00:37:17.760 --> 00:37:21.380
Porque este es el name que les decía que con el que Eureka va

00:37:21.380 --> 00:37:23.780
a identificar a cada microservicio, ¿sí?

00:37:23.780 --> 00:37:25.280
Y los van a mascarar.

00:37:25.640 --> 00:37:28.480
Entonces te vas dando cuenta que todo tiene un por qué,

00:37:29.040 --> 00:37:32.060
Aquí, por ejemplo, el server te dice en qué servidor está

00:37:32.780 --> 00:37:34.960
corriendo o en qué servidor quiero que corra,

00:37:34.980 --> 00:37:36.360
mejor dicho, ¿va?

00:37:36.720 --> 00:37:38.280
Entonces, cuando yo lo levante,

00:37:38.620 --> 00:37:40.860
este proyecto va a correr en el puerto 8082.

00:37:42.120 --> 00:37:45.240
Muy importante que si yo estoy creando una familia de

00:37:45.240 --> 00:37:47.600
microservicios o una nube de microservicios,

00:37:47.800 --> 00:37:51.320
pues a cada micro le de un puerto diferente, ¿no?

00:37:51.860 --> 00:37:55.220
A cada puerto le de, a cada proyecto le de un puerto

00:37:55.220 --> 00:37:55.700
diferente.

00:37:56.220 --> 00:37:58.360
Aquí también le estoy diciendo a qué nivel quiero que

00:37:58.360 --> 00:38:01.140
se metan los logs, etcétera, etcétera, ¿no?

00:38:01.460 --> 00:38:07.360
Entonces, si tú te fijas en el Application Jam ni en el

00:38:07.360 --> 00:38:11.780
POM, yo he descargado alguna librería o he

00:38:11.780 --> 00:38:13.700
agregado alguna configuración que digan que

00:38:13.700 --> 00:38:16.340
este proyecto se trate de que sea un microservicio.

00:38:16.740 --> 00:38:20.440
O sea, yo en ningún momento le dije microservicio igual a

00:38:20.440 --> 00:38:22.200
True o algo así, ¿no?

00:38:22.720 --> 00:38:26.000
O descargue una librería que me sirva para crear un

00:38:26.000 --> 00:38:27.060
microservicio.

00:38:27.380 --> 00:38:32.300
Este, o sea, no, no es que sea un tipo de proyecto nuevo y

00:38:32.300 --> 00:38:32.780
demás, ¿no?

00:38:32.780 --> 00:38:35.820
O sea, es un proyecto tal cual hemos estado trabajando,

00:38:35.860 --> 00:38:36.720
¿no?

00:38:36.720 --> 00:38:40.880
Pero que al momento de yo irlo configurando con estas

00:38:42.160 --> 00:38:43.820
librerías, digamos, de esta forma,

00:38:44.100 --> 00:38:48.460
sirve para que sea tratado como un microservicio, ¿no?

00:38:48.460 --> 00:38:51.180
Esto es para que lo tengan identificado.

00:38:51.620 --> 00:38:52.640
Esto es un microservicio.

00:38:52.780 --> 00:38:54.320
Así se ve, ¿va?

00:38:54.500 --> 00:38:57.680
Entonces, este en específico es nuestro microservicio de

00:38:57.680 --> 00:38:59.000
productos, ¿sí?

00:38:59.400 --> 00:39:06.580
Microservicio de, de, de microservicio de productos.

00:39:09.060 --> 00:39:15.640
Sale, entonces, este, listo.

00:39:15.880 --> 00:39:19.160
Hasta aquí alguna duda con estos dos archivos.

00:39:19.960 --> 00:39:22.020
Más o menos se ilustra de cómo para qué sirven.

00:39:26.360 --> 00:39:27.260
A grandes rasgos.

00:39:32.200 --> 00:39:32.800
Adelante.

00:39:36.140 --> 00:39:38.140
¿De cuál, perdón?

00:39:49.520 --> 00:39:50.480
Ah, OK.

00:39:50.820 --> 00:39:51.460
Este YAML.

00:39:51.780 --> 00:39:53.140
Sí, sí, es muy parecido.

00:39:53.200 --> 00:39:55.660
De hecho, ambos son extensión YAML, si te fijas.

00:39:55.700 --> 00:39:56.580
Es YML.

00:39:57.160 --> 00:39:58.620
Este también es YML.

00:39:59.100 --> 00:40:02.780
Es que lo que pasa es que YAML es un formato pues ya

00:40:02.780 --> 00:40:04.480
es más estándar, ¿no?

00:40:19.940 --> 00:40:20.400
OK.

00:40:26.260 --> 00:40:27.160
OK.

00:40:28.300 --> 00:40:31.520
Este sí, son, digamos, ahorita si yo lo quitará,

00:40:31.520 --> 00:40:34.260
no, no le, no le afectaría.

00:40:34.720 --> 00:40:36.980
No le afectaría porque ahorita nadie lo está ocupando,

00:40:37.060 --> 00:40:37.820
ni siquiera el código.

00:40:38.440 --> 00:40:42.300
Pero ahí, vete, más adelante vamos a ocupar estas

00:40:42.300 --> 00:40:45.680
variables justo en la práctica del config server y

00:40:45.680 --> 00:40:46.420
el config repo.

00:40:47.140 --> 00:40:49.280
Para que nosotros podamos hacer uso de estas variables,

00:40:49.960 --> 00:40:51.880
ocupamos una anotación que es el value.

00:40:52.500 --> 00:40:55.380
Y ese value nosotros ya lo podemos utilizar en cualquier

00:40:55.380 --> 00:40:56.240
parte del método.

00:40:56.400 --> 00:40:57.800
Aquí no se va a ver porque no,

00:40:57.800 --> 00:40:58.840
no hemos llegado a ese punto.

00:40:58.840 --> 00:41:02.500
Pero utilizando ese value vamos a poder utilizar los

00:41:02.500 --> 00:41:03.920
valores de estas variables.

00:41:43.800 --> 00:41:46.760
Perdóname, te entendí de si esta propiedad name tiene que

00:41:46.760 --> 00:41:48.500
ser igual a cuál otra, ¿perdón?

00:41:48.720 --> 00:41:49.380
Ah, OK.

00:41:49.660 --> 00:41:50.700
Ah, no, no, no.

00:41:50.820 --> 00:41:51.720
Son independientes.

00:41:52.120 --> 00:41:54.300
Digamos que esta es como la,

00:41:54.440 --> 00:41:57.720
el name que tú le das al empaquetado de tu,

00:41:57.720 --> 00:41:58.820
de tu proyecto, ¿no?

00:41:59.420 --> 00:42:01.260
Pero esta es la de tu,

00:42:01.260 --> 00:42:02.380
la de la configuración,

00:42:02.440 --> 00:42:03.340
como, como dijimos,

00:42:03.720 --> 00:42:05.380
interna de tu,

00:42:05.380 --> 00:42:06.920
de tu proyecto, ¿no?

00:42:07.660 --> 00:42:09.260
Esa es una muy buena observación.

00:42:09.540 --> 00:42:10.380
Pero sí, no, no, no.

00:42:10.380 --> 00:42:12.220
Son diferentes propiedades, ¿va?

00:42:15.420 --> 00:42:16.000
Perfecto.

00:42:16.300 --> 00:42:17.100
¿Alguna otra duda?

00:42:25.420 --> 00:42:26.000
Correcto.

00:42:30.660 --> 00:42:31.260
Sí.

00:42:31.620 --> 00:42:34.500
Sí, aquí en la práctica tú puedes tener,

00:42:34.780 --> 00:42:38.360
es que generalmente el tema de microservicios están

00:42:38.360 --> 00:42:39.560
empaquetados, ¿no?

00:42:39.560 --> 00:42:41.260
En contenedores de Docker.

00:42:41.860 --> 00:42:42.260
Entonces,

00:42:43.820 --> 00:42:46.800
son instancias o te conectas más bien a un grupo de

00:42:46.800 --> 00:42:50.980
réplicas que vienen metidas dentro de cierto contenedor.

00:42:51.560 --> 00:42:54.980
Ahí te facilita mucho Kubernetes y muchos de esos

00:42:54.980 --> 00:42:55.240
software.

00:42:55.640 --> 00:42:57.460
Pero para fines prácticos sí,

00:42:57.460 --> 00:42:59.960
son urls diferentes al localhost.

00:43:01.180 --> 00:43:03.280
Este te van a exponer una url,

00:43:03.380 --> 00:43:04.060
un puerto,

00:43:04.300 --> 00:43:08.140
un usuario y esas son las conexiones que tú,

00:43:08.140 --> 00:43:09.300
que tú debes de seguir.

00:43:11.660 --> 00:43:13.100
Va, perfecto.

00:43:13.260 --> 00:43:13.700
Sale y vale.

00:43:13.880 --> 00:43:17.680
¿Alguien más que nutra este ejercicio con sus

00:43:17.680 --> 00:43:20.000
preguntas u observaciones también válidas?

00:43:20.800 --> 00:43:20.960
Perfecto.

00:43:21.660 --> 00:43:22.100
Sale y vale.

00:43:22.560 --> 00:43:22.740
Entonces,

00:43:22.800 --> 00:43:23.740
si no hay,

00:43:24.780 --> 00:43:24.960
continuamos.

00:43:25.920 --> 00:43:26.160
Entonces,

00:43:26.160 --> 00:43:27.940
es muy importante esos dos archivos,

00:43:28.060 --> 00:43:30.800
ya que al estar haciendo muchos microservicios los

00:43:30.800 --> 00:43:31.560
vamos a estar viendo.

00:43:31.640 --> 00:43:34.560
Creo que más que el código de programación.

00:43:35.040 --> 00:43:36.540
Es más configuración.

00:43:36.880 --> 00:43:37.640
Pero bueno.

00:43:38.420 --> 00:43:38.620
Ok.

00:43:38.940 --> 00:43:39.300
Entonces,

00:43:40.340 --> 00:43:43.940
aquí en la parte de ya entrando a detalle,

00:43:44.280 --> 00:43:48.160
cada una de estas paquetes que se ilustran como

00:43:48.160 --> 00:43:49.080
carpetas,

00:43:49.200 --> 00:43:50.340
contienen clases,

00:43:51.180 --> 00:43:53.240
contienen ciertas clases que hacen un algo.

00:43:53.940 --> 00:43:54.440
La clase,

00:43:54.440 --> 00:43:55.560
el paquete principal,

00:43:56.000 --> 00:43:57.420
que es este paquete raíz,

00:43:57.540 --> 00:43:58.860
donde está el nombre de tu micro.

00:44:00.880 --> 00:44:03.140
Tú tienes una clase

00:44:04.240 --> 00:44:04.720
main,

00:44:05.380 --> 00:44:06.000
que se llama,

00:44:06.040 --> 00:44:08.800
como se llama tu microservicio,

00:44:09.860 --> 00:44:10.340
ProductServiceApplication.

00:44:10.920 --> 00:44:11.580
Esa clase,

00:44:11.680 --> 00:44:12.300
como te decía,

00:44:12.360 --> 00:44:13.020
tiene un código,

00:44:13.760 --> 00:44:14.560
un método main,

00:44:14.600 --> 00:44:16.460
que es un public static void main,

00:44:16.700 --> 00:44:18.380
que es aquí donde nace todo.

00:44:18.720 --> 00:44:20.120
Esta es la que ejecuta todo.

00:44:20.980 --> 00:44:22.820
esto es muy importante que si estamos trabajando

00:44:22.820 --> 00:44:24.080
en el framework de Spring Boot,

00:44:24.580 --> 00:44:26.660
pues la decoremos con la anotación

00:44:26.660 --> 00:44:28.480
spring-arroba-spring-boot-application

00:44:28.480 --> 00:44:30.880
para que haga todo lo que incluso aquí

00:44:30.880 --> 00:44:31.560
te no dice,

00:44:32.380 --> 00:44:32.840
autoconfiguración.

00:44:33.560 --> 00:44:35.320
Para que toda esa autoconfiguración funcione,

00:44:36.500 --> 00:44:37.740
debe estar marcada de esta forma.

00:44:38.140 --> 00:44:40.080
Son de las pocas cosas que te pide Spring Boot,

00:44:40.320 --> 00:44:41.360
como para que

00:44:41.360 --> 00:44:42.820
tengas ahí cuidado.

00:44:44.120 --> 00:44:44.880
Y todo funciona.

00:44:45.400 --> 00:44:47.280
Y el IDE de IntelliJ,

00:44:47.280 --> 00:44:49.120
si te fijas aquí ya tiene un botoncito,

00:44:49.460 --> 00:44:50.420
que si tú le picas,

00:44:50.940 --> 00:44:52.800
en automático te dice que si lo quieres correr,

00:44:52.800 --> 00:44:53.660
lo quieres debugging,

00:44:54.340 --> 00:44:56.340
le quieres correr la cobertura,

00:44:56.640 --> 00:44:58.600
etcétera, etcétera, etcétera.

00:44:59.260 --> 00:44:59.700
Entonces,

00:45:01.000 --> 00:45:02.300
eso es lo que tendríamos,

00:45:03.400 --> 00:45:04.960
en esta clase main.

00:45:05.340 --> 00:45:06.000
De esta clase,

00:45:06.080 --> 00:45:07.840
creo que ya la conocen,

00:45:08.100 --> 00:45:09.220
de otros proyectos,

00:45:09.420 --> 00:45:11.980
¿tienen alguna duda con esa clase?

00:45:23.280 --> 00:45:24.560
Perfecto.

00:45:25.080 --> 00:45:27.620
Entonces, si no...

00:45:27.620 --> 00:45:28.260
Adelante.

00:45:58.180 --> 00:45:59.200
Ah, ok.

00:45:59.480 --> 00:46:01.280
No te lo estaba abriendo así.

00:46:11.700 --> 00:46:13.100
Ah, listo.

00:46:14.220 --> 00:46:14.480
No.

00:46:18.340 --> 00:46:18.860
Ok.

00:46:19.240 --> 00:46:20.760
Qué bueno que salió eso.

00:46:22.260 --> 00:46:22.640
Adelante.

00:46:22.780 --> 00:46:22.860
¿Meicky le picas un stirme?

00:46:26.940 --> 00:46:29.760
Sí, puede ser que no hayas bajado las dependencias,

00:46:30.020 --> 00:46:33.560
es decir, aquí dentro del PUM te va a aparecer un circulito azul,

00:46:33.620 --> 00:46:35.000
o aquí en Maven,

00:46:35.320 --> 00:46:37.000
le puedes picar, es este circulito.

00:46:37.760 --> 00:46:39.720
Fíjate que también yo lo he notado.

00:46:40.100 --> 00:46:42.600
Yo lo he notado en otros proyectos.

00:46:43.240 --> 00:46:44.240
¿Qué pasa?

00:46:45.480 --> 00:46:47.180
Cuando tu abres un proyecto,

00:46:48.740 --> 00:46:51.500
aquí te aparece como una notificación

00:46:51.500 --> 00:46:57.300
que te dice que si quieres cargarlo como un proyecto me iven o algo así ahí tú le

00:46:57.300 --> 00:47:01.540
dices que sí y en automático te lo tiene que transformar de esta forma incluso no

00:47:01.540 --> 00:47:06.000
sé si se vea aquí en la campanita de notificaciones probablemente y venga

00:47:06.000 --> 00:47:11.780
lo si lo he notado fíjate que si me ha pasado probablemente lo puedas tuver si

00:47:11.780 --> 00:47:17.020
si no lo que te recomendaría es volver a salir del proyecto porque creo que no

00:47:17.020 --> 00:47:20.860
sé si no te deja incluso descargar los paquetes eso es porque no lo

00:47:20.860 --> 00:47:24.440
conoce como un proyecto me iven hay veces que medio sea tonta también

00:47:24.440 --> 00:47:29.680
inteligente entonces lo que puedes hacer es salir del proyecto y volverlo a abrir

00:47:29.680 --> 00:47:34.820
y te tiene que abrir una notificación algo así que te dice algo como

00:47:34.820 --> 00:47:38.860
tratarlo como proyecto me iven no importar no algo así tú le dices que

00:47:38.860 --> 00:47:43.100
sí y ya te ya te lo tiene que tratar de esta forma si si me ha pasado

00:47:46.920 --> 00:47:48.040
ok ok

00:48:02.460 --> 00:48:13.140
a en abrir proyecto le das file open project y ya te aparece y va bien

00:48:14.060 --> 00:48:18.540
sale entonces esto que explicábamos es la parte

00:48:22.520 --> 00:48:29.260
de la clase me salí bien ahora ya que fuimos creando si se acuerdan del paso

00:48:30.040 --> 00:48:35.400
anterior fuimos creando los paquetes que al final se ven como carpetas si lo

00:48:35.400 --> 00:48:40.620
fijas si te fijas y al final esos son los paquetes son formas de

00:48:41.820 --> 00:48:47.140
acomodar las clases en agrupar las clases es un paquete es eso es una

00:48:47.140 --> 00:48:52.200
carpeta entonces aquí las inteligen las va a tratar así y dentro de cada una

00:48:52.200 --> 00:48:59.740
de ellas tú vas a ir viendo las clases entonces si tú te fijas

00:48:59.740 --> 00:49:05.560
la clase la primerita donde va a caer la petición cuando la expongamos

00:49:05.560 --> 00:49:12.660
este este micro es en el controller que hago para que una clase sea

00:49:12.660 --> 00:49:19.520
tratada como un controller bueno tu folder se llama control va tu clase que

00:49:19.520 --> 00:49:25.120
se llama product debe determinar con la notación controller en este caso yo

00:49:25.120 --> 00:49:28.940
estoy utilizando un controlador de productos porque vamos estoy hablando de

00:49:28.940 --> 00:49:32.980
mi microservicio de products va entonces mi product controller

00:49:34.640 --> 00:49:38.500
estas son de las cosas que les digo que springboard toma como

00:49:39.360 --> 00:49:44.360
si tú me dices que esta clase se llama controller yo sé que es un controlador

00:49:44.360 --> 00:49:50.260
y él entiende cómo lo debe de tratar él va a en automático va a estar

00:49:50.260 --> 00:49:53.800
escaneando tu clase y te va a decir oye te falta la notación rest

00:49:53.800 --> 00:49:58.980
controller que onda y te va a empezar a mandando errores no te va a

00:49:58.980 --> 00:50:01.820
empezar a ir mandando errores en caso de que no encuentre algo de

00:50:02.940 --> 00:50:06.960
autoconfiguración eso en lo personal a mi experiencia también es un

00:50:06.960 --> 00:50:13.140
problema y es una lata porque luego tú dices pero porque es el error cierto

00:50:13.140 --> 00:50:18.060
error y es que uno tiene que entender o tiene que aprender de cómo se

00:50:18.060 --> 00:50:23.080
autoconfigura cada cosa entonces eso también es un problemita para mi

00:50:23.080 --> 00:50:27.660
punto de vista no sobre todo también para los que van empezando dices y

00:50:27.660 --> 00:50:31.920
a mí a mí me llegó a pasar la verdad sale entonces este tipo de

00:50:31.920 --> 00:50:37.800
cosas fueron bueno son vaya alguna mención de que también se tiene que

00:50:37.800 --> 00:50:42.920
tener cuidado no en este caso si te fijas esta clase aparte que se decora

00:50:42.920 --> 00:50:47.280
con el controller se decora con el request mapping para que nos sirve este

00:50:47.280 --> 00:50:52.840
rico es me pin para que cuando yo tenga mi url local ya sabes 2 puntos

00:50:52.840 --> 00:50:54.940
locajos 80 80

00:50:56.340 --> 00:51:01.440
pueda yo poner diagonal products y pueda acceder a todos los endpoints

00:51:01.440 --> 00:51:05.940
que están definidos en esta clase y esos endpoints también tienen su

00:51:05.940 --> 00:51:11.340
propio pat por ejemplo los que ocupan una id en específico no por ejemplo

00:51:11.340 --> 00:51:15.580
bueno estos impuestos valdrían la pena revisarlos de acá

00:51:16.320 --> 00:51:23.180
si te fijas acá entonces este es el pat base por así decirlo y lo demás

00:51:23.180 --> 00:51:28.460
es lo que ocupa como parámetro no eso mismo es lo que estamos

00:51:28.460 --> 00:51:34.300
definiendo acá en él en la clase de controlador sale estás definiendo tu

00:51:34.300 --> 00:51:41.440
ruta base que es esta sale y todo lo demás pues son los los los los

00:51:41.440 --> 00:51:45.520
endpoints que ocupan el parámetro id va

00:51:46.700 --> 00:51:52.020
ocupas esta línea que te sirve para hacer logger

00:51:52.020 --> 00:51:56.920
interno que no es más que pintar logs si algo falló tú puedes ocupar

00:51:57.680 --> 00:52:02.540
un punto log y te va a imprimir aquí los logs no que vamos a ver también la

00:52:02.540 --> 00:52:09.420
propuesta que trae spring boot spring cloud perdón un mecanismo que se

00:52:09.420 --> 00:52:14.740
llama sipkin que no es más que un servidor que básicamente te permite

00:52:14.740 --> 00:52:20.240
rastrear errores por por medio de identificadores entonces vamos a

00:52:20.240 --> 00:52:24.320
configurar también hay un cliente de sipkin un servidor de sipkin y

00:52:24.320 --> 00:52:29.900
vamos a hacer esto de los blogs de una forma más más pero no porque digo los

00:52:29.900 --> 00:52:35.500
logos ayudan sirven no nadie dice que no pero este hay otros mecanismos

00:52:35.500 --> 00:52:42.300
actualmente no para poder monitorear entonces este después viene la parte

00:52:42.300 --> 00:52:48.240
de utilizar una inyección de dependencias aquí vamos a inyectar el

00:52:48.240 --> 00:52:53.700
servicio de productos este servicio de productos es básicamente

00:52:54.980 --> 00:53:02.120
este de acá si te fijas del control fíjate fíjate cómo brinca el colorcito

00:53:02.120 --> 00:53:07.320
azul se va al product service cuando yo le digo dime de qué clase es se va

00:53:07.320 --> 00:53:12.300
hasta acá no el controller manda a llamar al service entonces este service

00:53:12.300 --> 00:53:17.080
lo manda a llamar porque en el service el product service implementation está

00:53:17.080 --> 00:53:21.480
toda la lógica que se ocupa para hacer los los cruz ahorita la vamos a

00:53:21.480 --> 00:53:25.520
repasar también con detalle nada más lo que quería que vieran es cómo el

00:53:25.520 --> 00:53:30.720
controlador manda a llamar a la implementación del service va entonces

00:53:30.720 --> 00:53:36.520
tienes aquí el cliente del producto del product service y este estos

00:53:36.520 --> 00:53:41.420
autowirets que son básicamente pasar en el constructor todos los clientes

00:53:41.420 --> 00:53:45.220
que se que se ocupan como dependencias externas no que en este

00:53:45.220 --> 00:53:50.380
caso es el servicio pues aquí lo inicializamos y hasta ahí no hay

00:53:50.380 --> 00:53:55.300
ningún problema y ya empezamos a ver los mapeos de rutas por ejemplo que

00:53:55.300 --> 00:53:59.800
nos pide aquí crear la definición o el planteamiento del

00:53:59.800 --> 00:54:05.020
problema nos permite nos está pidiendo crear cinco en points un get users que

00:54:05.020 --> 00:54:12.840
es el get all un get user by id uno en específico un post de usuarios un

00:54:12.840 --> 00:54:18.160
put de usuario por id y un delete de usuarios por id entonces al hacer eso

00:54:18.160 --> 00:54:24.100
nosotros tenemos esto tenemos el get mapping este lo que hace es traerme

00:54:24.100 --> 00:54:29.500
todos los productos lo único que hace es consume ocupa el servicio de

00:54:29.500 --> 00:54:36.780
producto este servicio y manda a llamar al método get all products yo me voy

00:54:36.780 --> 00:54:41.780
a la definición de este método aquí lo vas a ver dentro de esta clase

00:54:42.340 --> 00:54:47.540
si te fijas ahí va a existir el get all products y te va a decir que hace

00:54:48.140 --> 00:54:53.060
entonces este get all products si te fijas es una implementación de su del

00:54:53.060 --> 00:54:55.800
service de hecho se llama input porque es la

00:54:55.800 --> 00:54:59.920
implementación de este service este service es solamente una interfaz una

00:54:59.920 --> 00:55:02.440
interfaz de los conceptos que tenemos de programación orientada a

00:55:02.440 --> 00:55:06.500
objetos pues nos permite hacer abstracción no solamente nos va a

00:55:06.500 --> 00:55:10.920
definir nos va a permitir definir qué queremos hacer entonces aquí nos está

00:55:10.920 --> 00:55:16.000
diciendo quiero hacer un método get all un método get by id y un create un

00:55:16.000 --> 00:55:19.640
update un delete y la implementación de esta interfaz ahora sí nos va a

00:55:19.640 --> 00:55:24.320
decir el cómo se debe de hacer entonces ahora sí es ese get all

00:55:24.320 --> 00:55:27.260
productos lo hago haciendo esto

00:55:28.440 --> 00:55:33.100
y si te fijas este de aquí este service implementation también tiene

00:55:33.100 --> 00:55:38.140
una inyección de dependencia pero con la capa que se va a encargar de

00:55:38.140 --> 00:55:42.540
recuperar de los repositorios la información en este caso es el

00:55:42.540 --> 00:55:48.520
producto repositorio si te fijas yo me voy a su definición igual sale y

00:55:48.520 --> 00:55:52.720
cuá y fíjate cómo estoy parado aquí cuando yo mapeo a la clase que me

00:55:52.720 --> 00:55:56.680
abrió va a brincar y se va a ir al repositorio entonces ahí tú vas haciendo

00:55:56.680 --> 00:56:01.880
la cadenita no el controlador ocupa el servicio y el servicio ocupa el

00:56:01.880 --> 00:56:06.820
repositorio si te fijas aquí está tu repositorio va el repositorio como

00:56:06.820 --> 00:56:10.980
yo te decía con de las clases de configuración él sabe que todo lo que

00:56:10.980 --> 00:56:17.220
extienda de jpa repositor y va a ocupar un un connection string que va a estar

00:56:17.220 --> 00:56:22.280
muy seguramente dado de alta en un archivo aplicación properties ocupa que

00:56:22.280 --> 00:56:27.220
le digas de qué modelo quieres entonces ahí está la otra palabra clave modelo

00:56:27.220 --> 00:56:32.120
si ocupa un modelo aquí si te fijas los subraya si yo me voy igual a

00:56:32.120 --> 00:56:39.000
su definición le doy clic derecho y a la implementación la enlazo aquí para

00:56:39.000 --> 00:56:44.320
que me diga qué clase es si te fijas ahora subió a modelo va entonces ahí la

00:56:44.320 --> 00:56:49.820
cadenita el controlador ocupa el servicio el servicio al repositorio el

00:56:49.820 --> 00:56:54.180
repositorio al modelo va y si te fijas ya se están ocupando todas las

00:56:54.180 --> 00:56:59.460
claras todas las carpetas es como separarlo en capas por así decir no y

00:56:59.460 --> 00:57:05.660
tu modelo es una clase que basado en estas anotaciones la clase la

00:57:05.660 --> 00:57:11.220
anotación entity la anotación table se mapea con la tabla que nosotros

00:57:11.220 --> 00:57:17.920
creamos acá y bueno quien los en los ddl no en los definition language por

00:57:17.920 --> 00:57:22.580
ejemplo el de producto vamos a volver a abrir el definición de

00:57:22.580 --> 00:57:25.480
no el manipulation sino el definición de producto

00:57:26.040 --> 00:57:31.400
el que define la tabla producto y si te fijas aquí está no mi nombre mi nombre

00:57:31.400 --> 00:57:37.700
de tabla es products igual que la que estoy creando acá no products

00:57:38.240 --> 00:57:44.100
sale y las propiedades que tiene son id name y price entonces son esas

00:57:44.100 --> 00:57:49.580
tres propiedades las que tengo que agregar no hay di nombre y price el

00:57:49.580 --> 00:57:51.260
id adelante

00:58:03.620 --> 00:58:04.720
a

00:58:04.720 --> 00:58:05.840
claro

00:58:13.260 --> 00:58:16.800
cambiar entre esquemas

00:58:18.660 --> 00:58:25.400
ok bueno a ver bueno una una primer nota que habría que hacer ahí de

00:58:25.400 --> 00:58:33.340
hecho este es el tema de que cuando tú estás trabajando aquí en microservicios si te fijas yo

00:58:33.340 --> 00:58:42.840
no voy a no es que no se haga pero es tal vez un poco ya no tan necesario el hacer relaciones uno

00:58:42.840 --> 00:58:47.900
a muchos muchos a muchos porque si te fijas ahorita vas a ver cómo se relaciona el producto

00:58:47.900 --> 00:58:54.800
con órdenes con los varios y yo no yo no voy a crear ese tipo de relaciones porque porque las

00:58:54.800 --> 00:59:00.820
bases de datos están contenidas en servidores separados no que es como que la propuesta que

00:59:00.820 --> 00:59:08.580
trae el microservicio cada cada base de datos se va a guardar en su en un servidor propio no

00:59:08.580 --> 00:59:14.800
obstante no quiere decir que no haya dentro de ese servicio relaciones entre tablas no que

00:59:14.800 --> 00:59:21.080
si se pueden mapear cuando quieres trabajar de entre esquemas lo mejor que puedes hacer es

00:59:21.290 --> 00:59:27.730
aquí en la conexión este no o sea tú aquí puedes mapear que base de datos también puedes

00:59:27.730 --> 00:59:35.230
decirle hacia qué esquema se va a conectar y de esa forma este ya tu conexión debería de

00:59:35.230 --> 00:59:41.970
funcionar no necesitas especificar le más además si no lo quieres mapear en el conexión

00:59:41.970 --> 00:59:49.850
este si hay si hay ciertas anotaciones que te permiten mapear los esquemas va aquí como

00:59:49.850 --> 00:59:56.130
el ejemplo que yo traía era muy este es muy burdo realmente es muy de tablas sencillas para

00:59:56.130 --> 01:00:00.710
no invertir mucho tiempo pues no se ilustra no es necesario crear varios esquemas pero

01:00:01.390 --> 01:00:05.730
incluso me parece que aquí mismo tú puedes dar de alta el esquema con esta anotación no

01:00:06.650 --> 01:00:11.250
con el nombre punto el nombre de la tabla y con eso las tareas mapeando de hecho creo

01:00:11.250 --> 01:00:15.450
que ésta también te tiene que funcionar lo podrías probar ahorita que toque la práctica

01:00:16.450 --> 01:00:23.770
meter el esquema public que es donde tenemos aquí nosotros dado de alta la tabla si y este

01:00:23.770 --> 01:00:32.150
te fijas aquí va a estar public este en la base de datos tu esquema y este aquí está el

01:00:32.150 --> 01:00:37.450
esquema y lo puedes este mapear y te debe de funcionar según yo si te debe de funcionar con

01:00:37.450 --> 01:00:42.490
esta misma anotación que te estoy poniendo entonces lo puedes mapear de esa forma o lo

01:00:42.710 --> 01:00:49.270
puedes mapear simplemente así en caso de que sea el mismo esquema va si más o menos

01:00:54.170 --> 01:01:03.770
perfecto va que va ok entonces este bueno esta es la clase del modelo de productos va entonces

01:01:03.770 --> 01:01:08.910
si te fijas tiene las anotaciones para que está este campo se ha tratado como un identificador

01:01:08.910 --> 01:01:15.210
una primera aquí tiene su generación su estrategia de generación identity para que

01:01:15.210 --> 01:01:22.570
funcione como un este como una identidad y no va a ganar redundancia como un serial aquí

01:01:22.570 --> 01:01:30.150
en en pos en postgres que así así lo lo maneja el bar chart de 255 pues es un string y aquí

01:01:30.150 --> 01:01:38.550
tenemos como un doble el numérico que es un 10 2 al final es un doble lo mapeamos de esta

01:01:38.550 --> 01:01:45.870
forma sí y tienes también su constructor y tiene sus guedas y sus sedes va aquí está la sección

01:01:45.870 --> 01:01:52.790
de guedas y sedes y este es el modelo este tal cual es el modelo y nos falta por recorrer

01:01:52.790 --> 01:01:59.890
una última clase que es el DTO el DTO es de hecho el primero que se maneja porque aquí

01:01:59.890 --> 01:02:06.730
en el controlador este esto que se maneja acá y lo puedes ver los detalles lo puedes

01:02:06.730 --> 01:02:12.650
ver tanto en los ricos es como a los responses va entonces este es el que les decía que

01:02:12.650 --> 01:02:19.070
solamente es una clase que sirve como para para ir pasando las peticiones y las respuestas

01:02:19.070 --> 01:02:25.510
desde que llega la petición hasta que se va al modelo o se guarda en la base entonces

01:02:25.510 --> 01:02:31.110
el controlador también ocupa al DTO si te fijas aquí desde el controller te puede ser

01:02:31.110 --> 01:02:42.410
el DTO y el DTO no es más que la misma clase modelo este pero sin las anotaciones de

01:02:42.410 --> 01:02:50.010
persistencia no es él no es un entity no es un table es un este es una es un DTO un

01:02:50.010 --> 01:02:59.430
data transfer object así plano y tiene las tres propiedades tiene el constructor y tiene

01:02:59.430 --> 01:03:05.190
sus que decirse va no sé si haya duda adelante

01:03:15.690 --> 01:03:16.490
ok

01:03:21.850 --> 01:03:30.870
ok bueno esta clase modelo como dices las anotaciones no sirven porque esta clase sirve

01:03:30.870 --> 01:03:37.270
para utilizar persistencia es decir esto se va a guardar en la base de datos esto es esto es

01:03:37.270 --> 01:03:43.190
un modelo que se mapea con la base de datos y que es necesaria por las por los frameworks

01:03:43.190 --> 01:03:48.750
de persistencia y de jpa si cuando hablábamos del repositorio te acordas que te decía que

01:03:48.750 --> 01:03:54.150
extiende de jpa él requiere un modelo para que sepa cómo guardar la información y

01:03:54.150 --> 01:04:00.770
esa clase modelo debe de tener estas anotaciones esa es una para darle un porqué de esta clase

01:04:00.770 --> 01:04:07.670
digamos esta si no tenemos duda de que debe de ir ahora el DTO para que existe ah bueno

01:04:07.670 --> 01:04:14.370
sirve para que tú puedas tener un orden en y puedas diferenciar tus request y tu

01:04:14.370 --> 01:04:20.370
respons en objetos que sean para ti legibles porque a lo mejor yo puedo prescindir del

01:04:20.370 --> 01:04:27.210
DTO pero puedo crear aquí otra otro objeto x no y guardar información o puedo incluso

01:04:27.210 --> 01:04:31.430
pasar los parámetros tal cual no o sea puedo guardar el puedo pedir que me den

01:04:31.430 --> 01:04:39.050
el nombre y el doble así tal cual las propiedades este aquí en el controlador puedo pedir que

01:04:39.050 --> 01:04:44.770
me llegue un request así pero lo más digamos la mejor práctica es manejarlo todo como

01:04:44.770 --> 01:04:52.750
objetos entonces el DTO sirve para que te llegue el request el objeto request yo lo

01:04:52.750 --> 01:04:59.270
yo lo tengo más bien como un DTO y ese request o ese DTO es el que yo voy propagando

01:04:59.270 --> 01:05:04.610
hacia las diferentes capas por ejemplo el controlador que ocupa el servicio aquí si

01:05:04.610 --> 01:05:11.210
te fijas cuando ocupa el create este producto que llegó es el que llega del de la petición

01:05:11.210 --> 01:05:18.090
el parámetro va lo voy mandando y eso es lo que me lo voy a convertir en una entidad o en

01:05:18.090 --> 01:05:29.250
un modelo para que se transforme de esta forma y se pueda guardar entonces esa es

01:05:29.250 --> 01:05:36.090
y el otro es para que se maneje la el request el inter exactamente exactamente

01:05:38.930 --> 01:05:49.530
el modelo correcto exacto si no tuvieras base no ocupas el modelo puedes ocupar el

01:05:49.530 --> 01:05:57.410
DTO y lo puedes este ir mapeando incluso para fein clients este tú puedes propagar

01:05:57.410 --> 01:06:05.690
los DTOs y en otro micro por ejemplo el de órdenes que ocupa consumir al de usuario

01:06:05.690 --> 01:06:11.170
entonces tú puedes crear un en órdenes un DTO de hecho así está así lo vamos a hacer en

01:06:11.170 --> 01:06:16.830
órdenes tú creas un DTO de usuarios porque es el que vas a mandar al aquí al micro servicio

01:06:16.830 --> 01:06:22.690
de usuarios y ese DTO es el que se va a convertir en un modelo cuando llegue allá

01:06:22.830 --> 01:06:32.630
la petición va pero si básicamente esa es como esta es toda la arquitectura que se ocupa

01:06:34.750 --> 01:06:41.550
en el crudo en lo en lo de hecho es la misma que se ocupa en los tres crudos va este caso

01:06:41.550 --> 01:06:48.430
vimos productos en la diapositiva viene el de usuarios y el de órdenes pues es el que

01:06:48.670 --> 01:06:54.990
vamos a ir haciendo poco a poco va entonces ahorita ya hay que detenerlo vamos a ir a tomar

01:06:54.990 --> 01:07:03.010
la hora de comida a las 3 nos volvemos a conectar y ahora empezaremos con la práctica de crear

01:07:03.010 --> 01:07:08.770
bueno correr este micro servicio de producto para que vean cómo funciona el crudo lo vamos

01:07:08.770 --> 01:07:15.390
a levantar vamos a hacer peticiones hacia los cinco endpoints vamos a ver cómo responde y

01:07:15.390 --> 01:07:20.530
una vez que ya tengamos eso ya pasamos a la parte práctica que va a ser que me ayuden a

01:07:20.530 --> 01:07:26.590
crear más bien a completar el micro servicio de usuarios basándonos en este producto y

01:07:26.590 --> 01:07:32.830
completar el micro servicio de órdenes igual basándonos en este producto va realmente es

01:07:32.830 --> 01:07:38.550
un ejercicio muy sencillo pero con eso estaríamos terminando el el curso el día de hoy va

01:07:40.570 --> 01:07:42.710
alguna duda de lo que se plantea hacer

01:07:46.510 --> 01:07:55.490
súper muy bien bueno pues entonces nos estamos viendo a las a las 3 les parece esto provecho hasta luego