Transcripciones
1. INTRODUCCIÓN: Hola a todos. creador de Len
Spring Modult Monats Mi
nombre es Zeke Leamas,
creador de Len
Spring Modult Monats
the Microservices sin problemas. Soy un ingeniero de software al
que le encanta construir cosas y resolver problemas
a través de la programación. Estoy aquí presentando
mi segundo curso titulado LensPringGraph Este curso fue creado
para permitir que los amantes de Java, los amantes primavera de los
autos,
los amantes de las botas y aquellos que esperan hacer la transición
a la comunidad de primavera tengan un camino guiado implementar GraphQL con swing Este curso proporciona una ruta
estructurada a medida que miramos el núcleo de GrapQL sin desviarnos del
paradigma convencional de En otras palabras, no es necesario
cambiar la forma de implementar swing o swing boot y
al mismo tiempo
implementar GraphQL Nos fijamos en secciones
como paginación, manejo de
excepciones, validación Pop servicio web socket, instrumentación, pruebas,
seguridad con 02, construcción de una
imagen nativa con GAVM, CICD usando acciones GID, e implementación en
Cubertis
para que usted tenga un extremo a extremo Promete ser achilrating. Sinceramente
espero que vengas
conmigo en este emocionante viaje. Por favor, encuentra el enlace
en la descripción. Espero verte en el curso.
2. Beneficios de Graphql: Hola a todos. Z aquí. Todo bien. Como introducción
a este curso, quiero explicar rápidamente
qué son los beneficios de la señal gráfica. No pretendo este curso. Estos son videos
para ser muy largos. Te voy a mostrar
algunos de los principales beneficios de usar graph cue. El número uno es footprt
de red bajo. número dos es la flexibilidad, que en realidad van de la mano. Voy a explicar
ambos juntos. Ahora GAP Care
le brinda la flexibilidad de quering solo lo que necesita Voy a demostrarte
o mostrarte a lo que me refiero en términos de adyacingPLO
solo en unos pocos bits Sólo tienes que seguir adelante. una ruta donde puedes
consultar lo que necesites. A diferencia del aspecto del descanso, solo
obtienes todo
del servidor. Empiezas a manipular
datos alrededor. No, hay un paseo por ahí, pero GAF Quel en realidad se adapta específicamente a
este propósito Ahora, cuando tienes o estás
tratando con toneladas de datos, un servidor está emitiendo muchos datos por cada solicitud
o solicitud específica, GAF Qu DVD nivela tu billetera escogiendo una subsección de esa manera, podrías actuar el mismo servidor
devolviendo ciertas Ahora para móvil, solo
necesito un subconjunto para web, solo
necesito otro subconjunto o probablemente qué toring móvil
más algunas cosas adicionales Ahí es donde viene Graph Care. Podrías decidir qué
quieres consultar, que es uno de los
beneficios de usar GraphQL Ahora, otra cosa
es autodocumentar, Graph KWL es autodocumentar Ahora,
te voy a mostrar demostrando esto lo largo de los videos
para que veas lo maravilloso que es esto. Pero es solo una selección previa
para que ustedes puedan
ver algunos de los beneficios principales de Graph Keywll Ahora continúe.
Tomemos una muestra. Este conteo para la venta carga útil. Tomemos por ejemplo,
usted está obteniendo estos datos, todos los datos están
regresando a usted. Ahora bien, esto en sí mismo, que es el topping Gossy,
son bastantes Digamos que solo necesitas
el tipo de identificación y el nombre. La cura GAF te da este beneficio porque podrías
decidir que, oye, esto es lo que eres como lo
que necesitas para tu respuesta, y la cura GAF te quitará
todo esto G quita todo esto, y básicamente tienes en esto. Vas a estar demostrando esta vida en los videos y
vas a ver algunas cosas geniales, algunas cosas extra geniales. Alguien podría decir,
no, quiero estos datos. Sin embargo, no necesito esto. Quiero esto fuera del camino. GofCare te da la posibilidad de
patear y seleccionar
exactamente lo que necesitas Cuál sería un
beneficio genial de usar GAF Care. Es desarrollado por Meta, anteriormente conocido como Facebook, Spring en
realidad hizo
un hermoso trabajo al proporcionar un proyecto
para apoyar realmente esto. Vamos a estar
explorando esto en detalle en este curso. Miras cosas como manejo de
excepciones, validación, socket web, el CICD implementando para cobertis varias otras
cosas increíbles que vas
a estar viendo Espero verte
en el siguiente video.
3. Por qué Java 22: Hola, chicos. Genial
tenerte de vuelta, ¿verdad? Bien, entonces en este video, quiero
explicarte brevemente por qué estás
usando Java 22, ¿verdad? Y razón principal por la
que estás usando Java 22. La razón por la
que estamos usando Java 22 en realidad es por
esto, ¿verdad? Entonces, en algún momento de
la aplicación, estaremos usando una validación para las entradas que están
entrando al sistema. Entonces, como ustedes saben, confíen con el mismo modelo que Springbod sigue realmente De hecho, tenemos un
proyecto que se llama validación
de
arranque Springbok Ahora, esa
validación de inicio de Springbok básicamente funciona
para versiones web, ¿verdad? Pero para este caso, si
en realidad estás usando graph QL, estarás haciendo uso
de esta biblioteca llamada GraphQL Java Y esto realmente funciona muy bien. Ahora bien, el problema, la
declaración del problema de lo que realmente
encontré fue el hecho de que
estaba en la versión LTS, que es Java 20 porque me
encanta usar la versión LCs, Pero por alguna razón,
mientras intenté usar mientras intentaba
usar esta versión, el Graph K Java me dijo
validación para Java 21. Es decir, hay
que especificar 21 aquí. Empezó a romperse y
la flecha en realidad apuntaba sobre probablemente la sincronización
con la versión JDK Eso me dio algunos problemas. Me tomó algunos días
solucionar problemas. Lo que tenía que
hacer tuve que buscar lo último, y pensé en mi cabeza, bien, si estoy teniendo estos problemas, probablemente alguien más lo
habría descubierto. Pero pruebo la última versión, y boom, eso realmente
funcionó, ¿verdad? Entonces esa es la misma razón por que en realidad
decidí usar Java 22. Entonces por ninguna otra razón, esta sola razón, ¿verdad?
Entonces estoy usando Java 20. Si anotas ahí, ves,
te dicen que uses 210, significa que 21 punto cero debería
estar aquí para Java 21, pero encuentro problemas. Entonces me estoy apegando a Java 22. Entonces surge la pregunta, ¿de
dónde obtengo Java 20? Porque podría ser silencioso
navegar por el sitio web de Oracle. Todo lo que necesitas hacer
solo tienes que escribir JDK. Una vez que escriba JDK, llegue al sitio de Oracle, en
realidad requerirá
que se registre Una vez que te registres, todo lo que necesitas hacer una vez que ingreses
ya registrado, así que me llevarán directamente. Ahora una vez que estás en, los archivos
a los que realmente puedes ir, ellos tienen archivo, así
puedes ir a Java Archive. Una vez que vayas a Java Archive, una vez que te quedes abajo,
estaremos usando la máquina virtual grav Ves el deber de usar GAEM hacia el
final del curso,
pero al estar usando GravyN
escoges GravM para JDK 22, salsa para DK 22 una vez que entras, tienes toda la versión Descarga la que
en realidad te sea peculiar y que sea lo que necesites. Ahora, a medida que te configuras, es bastante
fácil de configurar. Todo lo que necesitas hacer muy fácilmente. Como pueden ver este es mi PC. Acabo de colocarlo en mi unidad C. Probablemente podrías colocarlo
en tus raíces estás usando Linux o si estás usando Linux o Mac o simplemente colocar un pliegue que
puedas identificar rápidamente, extraerlo porque solid
viene en un archivo Z, extraerlo tal
como lo he hecho aquí. Luego colocar en la variable de
entorno. No me gustaría
mostrar mi
variable de entorno aquí
porque contiene algunos otros detalles que no
sean el uso para otros proyectos. Te muestro en realidad una cepa, coloco tu variable de entorno. No se debe mostrar
cómo configurarlo. Solo Google cómo
configurar realmente las partes del hogar de Java. Esto es relativamente fácil. Pero si tienes problemas, aún
puedes plantear cualquier
duda y probablemente
en realidad te deje una guía
paso a paso sobre cómo hacerlo pero creo que
es relativamente fácil. Haz esto y una vez que lo hayas hecho así puedo traer mi tiempo ahora. Estoy trayendo mi
tiempo solo puedo decir versión
Java y se puede ver que me estoy ejecutando en el 20 dos.o2
y la app GravoraCogav Una vez que tenga esta configuración, puede estar seguro de que
podrá
tener las cosas funcionando sin problemas. Bien entonces los veré
chicos en el siguiente video.
4. Colección Altair: Oigan, todos. Este va a ser un video
relativamente corto. Quiero mostrarte cómo importar ta Así es como lo haces. Una vez que abras un ti, ahora verías la izquierda a
la esquina superior izquierda. Ves esta parte,
solo haz clic en I puertos. Entonces, una vez que haces clic en
los puertos, solo lo escoges. Entonces, una vez que elija la
colección de alquitrán, haga clic en Abrir. Una vez que lo hagas, eso
realmente entraría las cosas en. Ya tengo esto
en. Por eso se puede ver un duplicado de ella, yo
tengo esto y tengo esto. Yo solo sigo adelante y
borro esto, ¿de acuerdo? Entonces esa es la forma sencilla
de traerlo realmente. Simplemente haga clic en esto. Entonces
ves el recurso. El recurso está realmente
unido a este video. Simplemente escoge ese recurso, ábrelo y podrás ver la colección
de ataques de audio. Todo bien. Nos vemos
chicos el siguiente video.
5. Dependencias de Init Intellij: Hola, chicos, genial
tenerlos de vuelta. Lo que vamos
a estar logrando en este video es arrancar
nuestras dependencias. Al comenzar
un nuevo proyecto, necesitamos conocer
las dependencias que necesitamos Voy a estar arrancando
las dependencias, y lo estaré haciendo de dos
maneras Voy a estar usando la versión
definitiva de intelligen. Y por otro lado, ¿verdad? También estaría usando
un resorte extendido el. Se inicia la primavera IO. Arranca el spring dot IO, lo cual voy a estar haciendo
en un video de seguimiento. Entonces entremos en ello, lo que debes hacer
es hacer clic en Archivo, luego ir a Proyecto. Después Botas de primavera. Al parecer, en realidad la construcción
de una aplicación de arranque de resorte. Botas primaverales, entonces
como pueden ver, ya
estoy en mi
gravIn 22, gravIn 22 Estoy grabando este
proyecto en octubre. Bien, voy a ir
a colocar octubre aquí. Esto justo más allá de mi aplicación. Yo sólo lo tengo toda la sección fuera. Voy a llamar a esto
GraphQL CoS Graph QL, Cos. Entonces, me gusta usar
mi apodo ZZ o Z. luego solo especifica como necesites Entonces vamos a estar
eligiendo Java 23 aquí, ¿verdad? Sólo por estatus o mejor dicho, solo
elegiré Java 21. Pero se puede ver
que estoy usando JDK 22. No obstante, dentro del archivo de la bomba voy a
cambiarlo, voy a mostrarles cómo hacer
eso. Es relativamente fácil. Todo bien. Eso es
básicamente lo que necesitamos. Estamos usando Maving usando Maven. Tienes Java, a lo mejor puedas usar Gov o Go Cutler
lo que prefieras, me apegaré a esta Entonces al parecer es Java, luego paso a siguiente. Vamos a las dependencias del picker. Fresco. La primera dependencia que probablemente estarás
escogiendo es web. Oh, sí, es web. Entonces la siguiente dependencia básicamente
será picking es así que podrías
estar preguntando por qué web. Recuerda, para la web, donde realmente
estás usando web, supongo que en realidad haremos la explicación un
poco más tarde. Simplemente
escojamos rápidamente nuestras dependencias. Después siguiente parada, voy a
poner la gráfica QL. Gráfica Q, resorte para
gráfica Q que funciona. Impresionante. Entonces en el siguiente
estaremos eligiendo el JPA, el Spring Data JPA, que es uno de los subproyectos
bajo el periodo de datos de primavera La siguiente dependencia
será el uso de Docker componer. Me encanta Docker componer. La componer te ayuda
a arrancar realmente sin tener que especificar las propiedades. Eso es
bastante impresionante. Estoy usando cuadros pull. TsingPullQares. Eso literalmente funciona, entonces estaremos usando Lumbar. Soy un gran fan de umbo, ¿verdad? ¿Correcto? Recogiendo lumbog De hecho, podrías eliminar todos los
umbxupotsps de preferencia. Entonces vamos a ver. Creo que eso debería ser
lo que necesito ahora mismo. A medida que avanzamos en el curso, luego
agregamos las otras
dependencias que necesitamos Coloco esto y mi proyecto arranca en este
aspecto, esta ventana. Bien y las cosas
están surgiendo. Todo lo que necesitas hacer si
estás usando Java, si quieres volver a
cambiar Ja diez. Recuerda, mencioné
usar Java 22, ¿verdad? Yo sólo voy a entrar. Si
ves que esto es Java 21, solo
voy a cambiar
esto a Java 22, y eso es todo lo que necesito hacer. Además, si realmente hago clic aquí, quinto clip
clic derecho, desplácese hacia abajo. Verá la configuración del módulo abierto. Configuración del módulo abierto
ir al proyecto. Lo configuraste en Java 22, que es Gaviu 22 que estoy usando Quiero mantenerlo como Gavia 22. Ya tengo este
Gavia 22, ¿verdad? Gator, que básicamente es culpa de
mi SDK porque
si revisas los SDK, solo
me moveré paso a paso Ir al modus, Modus debe ser 22. Al parecer no puede ser esto, tiene que ser 22, 22. Fresco. Entonces SD SDKs tienes que colocar en 20
para que veas una
debución de nivel básico solo Así es como
configurarlo
realmente , estás usando Intelligent, pero para que apunte a un JDK en particular que tienes en tu sistema. Esto
es por proyecto. Esta configuración es un proyecto SPA, así que no tenías que
preocuparte por nada. Eso es una escuela. Yo regresaré
al proyecto, tú lo configuraste. Ese es el nivel de
idioma predeterminado por defecto es 22. Pero podría simplemente hacer solo
elegimos este 22 o
lo que prefieras Sólo por defecto. Eso es si demuestras
que un valor por defecto es 22. Porque recuerden, hice esa
Java mi versión Java en el último video y muestro
que estoy usando K 22. El módulo y mostrar que establece su nivel de idioma a
22 de lo contrario tiene problemas. Después AKs, establece tu Sk 22, que es un gavio
22. Eso funciona bien. Entonces solo aplica esto
Bien. Todo bien. Para que puedas ver
escaneando a indexar, las cosas están
subiendo. Todo bien. Bien. Fresco. Esto es bastante impresionante. Ahora he podido hacer esto. Así es como me encanta
comenzar mi proyecto. Se podía ver que elegí
la última versión porque la última
versión funcionaría, y esto
realmente debería ayudarnos a volar. Antes de continuar,
creo que simplemente procedemos. Ahora bien, si nos fijamos en esta rehabilitación, entonces yo explicaría
dependencias o qué hacen en los videos
posteriores Ahora mismo, pasemos
al siguiente video y vamos explicar Bostropi desde
inicio primavera punto IO, veo chicos en el siguiente
6. Dependencias de Init start.spring.io: Hola, chicos. Gracias por
volver conmigo. Todo bien. Así que quiero mostrar exactamente cómo
podemos realmente arrancar usando
start the Spingard IO Así que voy a refrescar esto. Entonces, una vez que vengas a
iniciar un Spingard IO, todo lo que necesitas hacer es
elegir el lenguaje Java, luego el gestor de paquetes Entonces voy a escoger
voy a usar Combat Z. entonces lo llamaré una gráfica QO
Cos Graph QO cos GvQo Cos Gráfica Q curso. Entonces pick enviado por ahora, luego en realidad escoge
dependencia estar necesitando la web. Sí, vamos a necesitar GraphQL. Vas a necesitar
componer, componer. Sí, vas a necesitar pocas, nosotros estaremos necesitando Lombok Apertura JPA. Todo bien. Podemos explorar
esto mientras exploramos, ves exactamente cómo un pum se verá como
esta estructura de proyecto Eso es exactamente
lo que parece. Para que pudieras seguir adelante
y generarlo. Una vez que
generes, luego descarga dos veces solo voy a
hacer se enseguida. Así que de inmediato. Esto es lo que he seguido adelante. Ya tengo una carga hecha. Simplemente lo coloco dentro de la carpeta
particular aquí. Si solo lo coloco,
solo lo descargaré y
solo les mostraré chicos cómo
extraerlo. Todo bien. Todo bien. He seguido adelante, he generado,
lo he descargado. Ahí lo tienes. Así que simplemente lo extraes
Batalis viene en archivo Z. Yo sólo lo extraigo. Sí.
Entonces lo tengo extraído. Hay dos maneras de
hacer esto, ¿verdad? Básicamente hay dos
formas de hacer esto. Así que en realidad podrías
usar dos métodos, ¿verdad? Les voy a enseñar
ambos métodos sobre cómo hacerlo. Entonces el primer método
va a ir archivo, luego elegir un nuevo proyecto
existente. Esa es una parte.
Vamos por la otra ruta. Archivo, haga clic en Abrir. Archivo, haces clic en abrir,
luego yo navegaré. Voy a navegar
en mi pantalla para no mostrar algunas de mis carpetas
protegidas. Voy a navegar a ese lugar en particular hasta ese lugar donde
descargué el proyecto. Ellos van enseguida, yendo ahí, he puesto
una enorme carpeta anidada Solo trata de navegar por todo
el camino. Todo bien. Entonces ahí lo tenemos. Ahí lo tienes he
navegado a esta parte, solo eliges el
caso gráfico de caso QL Una vez que solo lo eliges, yo solo, Bien ahora voy a abrir
en esta ventana, vamos a abrir una ventana diferente. Esto será para leer tu
oración y probar esto exactamente lo que es y
darte todo lo que necesitas. Eso simplemente funciona bien. Entonces podemos entrar Voy a
cambiar esto a 22, igual que hicimos
en el último video. Entonces sólo voy a refrescarme. Una vez que me refresque, hago clic, voy a abrir Modelo seteen Recuerda, modelo de proyecto SDK. El proyecto primero,
cámbielo a 22. Tú eliges 22 por
aquí lo cual es genial, vas a modelos y vas
a recoger 22 por aquí, C luego vas a SDKs
y escoge Gram 22 Una vez que lo hayas hecho, bien. Ahora bien, podrías estar
haciendo la pregunta, ¿cómo supo Intelligent que
esto era Gavium 22 ¿Cómo se cargó aquí? Es simple. En el momento en
que realmente configuras tu variable de entorno en Java home y
comienzas inteligente, debería
recogerla automáticamente, debería recogerla automáticamente. Bien, ahí lo tenemos. Luego haz clic en Bien, luego sigue adelante. Entonces esto en realidad está
configurado y listo para usar. La alternativa, solo les voy a
mostrar chicos en B bien. Segundo archivo alternativo nuevo
proyecto a fuentes existentes. Una vez que haga esto, esto también
abrirá algunos datos personales, así que simplemente lo abriré y
luego navegaré hasta ese lugar. Yo voy a hacer. Una vez que lo hagas esto se
abrirá una vez que hagas clic en Archivo Exisur seleccionar
dict fuentes existentes Se ubicará toda
la entidad de bombeo que cuenta con bomba de proyecto DXM
GavDo y Grado KT Haz esto. Yo elijo esto por aquí, lo cual es un costo, entonces en realidad
hago esto. Ahora debería preguntarte qué proyecto están construyendo
para Aparentemente es Mving Ya está seleccionado,
solo crea. Una vez lo hago para que
pueda hacer esta ventana. Ves que esto realmente
surge, ¿verdad? Porque lo he cambiado,
por eso esto está aquí, cambia el 22, ven a abrir e ir a abrir la configuración del
módulo, proyectar, cambiar esto y mostrar esto es 22, solo ve ahora 22 y SDK Por eso los módulos
y show esto es 22, entonces los SDK son lo mismo Al parecer, una vez que lo has hecho, una vez que realmente
hiciste esto más bien, entonces estás listo para ir. Todo bien. Eso realmente
concluye cómo arrancar realmente las cosas con nuestras dependencias
iniciales, y luego podemos pasar
al siguiente Video
7. Explicación de dependencias: Hola, chicos. Gracias por
regresar. Todo bien. Entonces en este video en particular, vas a explicar
y tratar de pasar por el caso de uso o lo que realmente hacen
cada uno de estos dependientes, ¿verdad Entonces creo que esto es
bastante importante. Entonces, mientras estamos haciendo cualquier cosa y por qué estamos construyendo
lo que realmente en, podemos ver fácilmente cómo se juntan todos y saber de
qué biblioteca proviene. Todo bien. Bien, entonces Spring Bod inició datos JPA es en realidad de la
familia de datos de primavera Y los datos de primavera, es más como si fuera un
proceso abstraído o mejor dicho, permítanme decir que es una interfaz Déjame usar la palabra interfaz. Es más como un proceso
abstraído como si no se viera la implementación
central, que en realidad facilita el
uso de datos para conectarse
a bases Sin conexión per se, pero te ayuda a usar una capa para
poder trabajar fácilmente
con bases de datos. Para ser más específicos, puede trabajar con bases de
datos tanto relacionales no relacionales En ahora en caso de que estés
usando post quest. Algunos de los meollos de meollo
son escribir los SQs y los serán para ser extraídos de una
manera ya que si tuvieras que
verificar las dependencias y
vamos en el Spring Data JPA, también
verías que contiene hibernación también
verías que contiene hibernación Si estás familiarizado
con la hibernación, que es el ORM, eso es en
realidad el que se utilizará en la comunicación con Estar usando el estilo de primavera
escribiendo código de primavera, y eso básicamente
se
traducirá a un idioma nativo
que luego se
pronunciaría luego no hablado
que luego se utilizará para comunicarse a la base de datos de
post ráfaga. Todo bien. Si nos fijamos en esto
también, también tenemos un poco llamado aspecto aspecto. Aspecto primaveral,
cierto, en realidad miras si realmente
profundizas un poco, ¿verdad? Entonces el aspecto de resorte es en realidad
parte de es en realidad una subsubsección
del aspecto J, ¿verdad? Aspect J aspect J es más como lo que usas
familiarizado con la primavera, programación orientada a
aspectos. En realidad se extrajo
del Aspecto J, ¿de acuerdo? Ahora bien, ¿qué es responsable de
cosas como una transacción? Si estás enterado con una notación de
transacción, lo que hace es que
inicia un proceso, inicia una transacción antes que realmente intentes
registrarte en una base de datos, y cuando ese proceso termina, cierra esa transacción. Todo está hecho
por ti detrás de escena cuando
usas esa anotación. Hablemos de GAF Care. GFC es el tipo principal
que en realidad
contendría que contienen la mayoría de los detalles que
está utilizando para real
a está abarcando para
el gráfico de primavera QL Esta es la biblioteca de la
que es totalmente responsable
debería decir el proyecto? Entonces la web aparentemente
necesita
traer el contexto web de
vez en cuando, y esto es básicamente nuestro
responsable de eso. Si profundizas,
vas a la web y entras, que puedas ver la web de primavera. Se puede ver contiene núcleo de resorte contiene
núcleo de resorte. Si entras aquí, puedes ver que esto contiene contexto
primaveral. Esto contiene contexto primaveral. Entonces estás sacando
contexto de vez en cuando. Bien, entonces Docker
Compose es muy sencillo. Todo lo que hace es que al agregar
esto crea esto para nosotros. Eso fue traído en este expediente. Y ves que automáticamente
arranca el camino para que
realmente nos conectemos a un contenedor Docker Estamos hablando de contenedor
Docker. Por lo que no necesitamos especificar
todos los detalles dentro la aplicación o propiedades
o aplicación de ñame Dmving esto más adelante
en el curso, una vez que realmente quieres contenerizar porque como ves, si lo miras
críticamente, en realidad es un es opcional, es opcional Si bien pretendemos
entrar en producción o construir las
características listas para la producción, tomamos algunos de los subpartis
que lo colocan dentro
del Yam off para Bien ahora postgas es el conductor va a estar usando la base de datos depose
conectada, entonces umbog estoy seguro de que estás Lombog hace muchas decenas? Más como el código estándar, abstrae la mayor parte de
él y
genera un tiempo de ejecución para que básicamente lo
usemos. Entonces tenemos todos nuestros trajes de prueba. Si ve, tenemos un flujo de
manera traído. El motivo es porque mientras estamos trabajando a través de
la aplicación, básicamente les
mostraría algún lugar estará haciendo
algunas cosas de prueba reactivas, usar GraphQL, automáticamente
trae esto, y también tenemos
la prueba Graph Q, que estará profundizando
mucho en Creo que eso es básicamente todo. Espero verlos chicos
en el siguiente video.
8. Plugin de generación de código en dgs: Hola, chicos. Gracias por
volver conmigo. Muy bien, así que
voy a revisar
esto a un repositorio de GitHub, que voy a estar compartiendo. Todo bien.
En realidad surge una pregunta. Cuando estamos escribiendo graph, usamos un script que tiene
una extensión dot GraphQLS Eso es gráfico QL,
eso es para primavera. Todo bien. Entonces surge la
pregunta. Esta es una muestra. Esta es una muestra que vas a
utilizar. Mira la muestra. Mi pregunta entonces es, ¿cómo vamos a poder conectar
esto en el código Java, luego poder usarlo en la
aplicación, muy simple. Para poder hacer esto, hay un plugin que viene
automáticamente. También está en el inicio
de Spring Dot IO. Vamos a
empezar dospring dot IO. Estoy bien para comenzar o primavera
IO solo voy a elegir un M Java, entonces solo actuaré para ver si estoy tratando de boostr desde
el principio, web, luego graficar QL, hagamos DGS Se llama DGS. Este es un tipo. Cuando exploramos, como puedes ver, cuando exploramos, tiene este plugin
completo, este plugin. Ese es este plougin en el
que empezamos aquí. Yo traigo a este tipo. Entonces si bajamos, entonces agrega este tipo también, este azote. ¿Qué
es el plugin? ¿Qué se supone que debe
hacer? Bastante sencillo. Voy por delante para agregarlo, así que tenemos el enchufe aquí, así que lo he ddt adentro.
¿Qué hace esto? El plug in básicamente convierte ese script en un código Java, y está dentro de
la carpeta de destino. You'ware,
también podría ayudar a esto en carpeta de
destino desde di dentro de
la aplicación durante la prueba Estás probando tu aplicación,
estás desarrollando. Cuando estamos empaquetando
la aplicación, todo se
une, ¿verdad? Esto nos da el
apoyo total de lo que necesitamos. Necesitaba explicar ese poco. Hay algunas
configuraciones extra, vamos a estar haciendo aquí, pero apenas empieza a mantener
esto muy simple para
que podamos saber
exactamente para qué sirve esto. Esto es muy importante,
chicos, muy, muy importante. Tenga en cuenta la versión, y por eso soy
la versión divertida en realidad
debería simplemente seguir la misma versión divertida
porque recuerden, empecé con un
tres que es cuatro, y estoy seguro de que eso es lo que me
traerán aquí, ¿verdad? Bien. Bien, entonces dicho eso, veo chicos y el siguiente video.
9. Configuración del complemento Dgs y configuración básica de propiedades: Hola, chicos. Gracias por
regresar, ¿verdad? Ustedes han sido
increíbles hasta ahora. Queremos hacer un poco de configuración solo
para limpiar las cosas. Bien, entonces tenemos las cosas
en una forma adecuada. Lo primero que
cambiamos es esto. Recuerda, tuvimos que escoger esto
de Sat the spring dot IO. Esto apuntaba
a un paquete equivocado. Entonces tenemos que hacer que
apunte a nuestro propio paquete. Esto tiene que apuntar
a nuestro paquete. Esto debería ser una C, luego Z, luego la
gráfica QL curso Entonces queremos probablemente hacer que todo se genere
dentro del código Gen. Lo que significa que todo
lo que a
la vez los archivos o los scripts se
hayan convertido
a código Java, los
encuentre dentro de código gen Esto es muy, muy
importante, chicos. Es muy importante. Bien, entonces esa es la primera parte. La segunda parte es la
ruta del esquema, la ruta del esquema. Este quimiopat significa donde quieres colocar
tus guiones, Ahora, por defecto, debido a que
agregaste la dependencia
para graph cual, spring ya se adelantó
para crear una carpeta para ti. Y esta carpeta es la ruta por defecto que ya se
elige por primavera, ¿verdad? Podrías cambiarlo, pero
te aconsejo que no. Me gusta usar default, ¿verdad? Porque una vez que comienzas a
cambiar alguna configuración, mi pab necesita comenzar a actualizarse para cambiar otra cosa
para dar mis puntos, podría simplemente seguir en el inicio solo tener este efecto ripple, ¿verdad Me gusta mantener los impagos, excepto que estás completamente seguro lo que estás haciendo, ¿verdad Entonces lo que voy a hacer es
cambiar esto. Entonces esto solo sería gráfico QL. Para mostrarles chicos,
este es el valor por defecto. Si vas a aplicación o
propiedades entonces simplemente escribe spring dot graph QL Gráfica Q punto ves Trayectoria. ¿Qué es esto? Usted ve esto. Esta es la ubicación para la
gráfica Q schemop, cual es la parte de la clase, ¿verdad? ClasSpa es carpeta de recursos. La carpeta de recursos forma
parte de la parte de la clase. Entonces tenemos GraphQ y todo lo que esté debajo de esta
gráfica Q se cargará Puede tener carpetas
dentro de carpetas. Entonces eso es lo que significa starstr. Carpetas dentro de carpeta y ella, pero solo me gusta colocar
todo en una sola carpeta. En realidad solo lo aclaro. Voy a estar usando
esto directamente, ¿verdad? Voy a estar usando estos cambios de base y también lo he actualizado. Ese fue el cambio que hice aquí. Quiero que ustedes sean un
reloj vamos a la derecha otra vez. Esta parte era para cambiar
el nombre del paquete así que en realidad lo confirma
con nuestro proyecto. Entonces estaré
generando todo dentro de un nuevo
nombre de paquete llamado Co Jet. Cuando realmente construimos, cuando compilamos la aplicación, el código se genera dentro este paquete o carpeta,
como puedes llamarlo. También te mostré que este es el valor por
defecto que hay que hacer. Solo hagamos un
trabajo extra. Vamos a crear aquí. Vamos a alejar esto. Me gusta usar Yarmofl Soy un gran
fan de Me gusta usar aves Yermo, así que solo voy a seguir adelante y seguir
adelante, quitar esto Bien, acabo de crear el archivo Yama. Simplemente hago clic y luego solo
escojo esto con factor. Vamos a facetar este archivo
y cambiarlo a Yama solo un gran fan de Yama Pero es el caso que no
lo uso, pero me encanta. Significa que esto va a
cambiar. Esto va a cambiar. Entonces esto entonces esto está bien. Entonces duplicaré esto. Entonces tendría dos perfiles. Estar usando un derecho local? Usando un local,
también estaré usando un Docer. Estoy seguro de que sabes exactamente para
qué sería eso. Docker. Simplemente lo voy a mantener
tan simple como esto por ahora. O mejor dicho, Pablo podría simplemente
dejar esto fuera por ahora. Cuando estemos listos para ir
a Docker, entonces
podremos crearlo y
luego mover las propiedades
aquí dentro de ahí y luego
configurarlo correctamente ¿Qué voy a tener aquí? ¿Aquí dentro? Simplemente dejaré ahí el nombre de la
aplicación de primavera. Al mismo tiempo, así que
solo habilitaré la pisada virtual. Si solo digo banda de rodadura virtual, habilite banda de rodadura virtual, ¿verdad? A sus estoy usando la versión Java
más allá de la t o superior. Yo sólo voy a aprovechar
el futuro. Eso es genial. Creo que eso es básicamente todo. Eso es todo lo que tenemos que
hacer por ahora. Entonces podremos entrar más adelante
para empujar realmente esta cosa. A lo mejor otra cosa que pueda hacer ya ya ya
que tú ya estás aquí, normalmente
podría seguir adelante. Entonces hay algo
que tenemos que hacer. Estoy tratando de comparar todo
en un solo video. Simplemente hay tanto
zumbido en mi cabeza. Básicamente podríamos
habilitar el gráfico QL gráfico. Te voy a decir exactamente
lo que esto significa. Hay una interfaz
que nos da springys que ya forma parte de la aplicación.
Que es gráfico Q. Vamos a poder ubicarlo
en la base, esa es la IP, los puertos, entonces si
tienes un contexto base, entonces el gráfico Q
y funciona a través de él. Les voy a enseñar cómo funciona. Pero sin embargo,
no lo estaríamos usando. Yo solo quería
mostrarles que está disponible. Estaremos usando algo
llamado neumático o neumático de neumático, como se llame.
Eso es lo que estamos usando. Creo que esta
configuración es suficiente. Entonces por último, también estaría configurando el JPA porque
aparentemente estamos usando JPA Configure JPA, estaré
usando un lote hibernado. Por ahora solo lo configuraré en
actualizaciones. Entonces quiero mostrar mis SQL? Demostremos que todas las Qs son ciertas para
que pudiéramos ver básicamente todas
las cosas
en realidad estaban funcionando.
Creo que esto está bien. A partir de ahora, creo que
entonces podremos empezar a meternos en
algunos detalles extra. Entonces voy a revisar este auto y los veré chicos
en el siguiente video.
10. Tipos básicos: Oigan, chicos, gracias por
volver conmigo. Bien. Procedamos
de donde paramos. En este video en particular, veremos los tipos básicos de GQ,
los tipos básicos de GQ Gp QL solo admite
cinco tipos básicos, que vas a estar viendo de
inmediato. Bien. Recuerda de la
última configuración, que realmente
hicimos en el
yamo de Pom Do como agregamos en el
código gen Mv en plugin, especificamos que
estaremos escribiendo todo nuestro código dentro de la
gráfica de recursos principales Kio dentro de
esta carpeta, ¿verdad Entonces esta parte es a lo que
en realidad nos estamos refiriendo. Entonces iremos escribiendo, y llamaríamos
en realidad crearía el archivo. Lo llamaré todo tipo de datos. Todos los tipos de datos, graficar QLs. Por favor, esto es bastante importante. Spring en realidad usa QL de gráfico. Ahora hay una diferencia,
o debería decir, podría
parecer
una discrepancia, pero hay una manera separar realmente
las cosas Cuando escribamos nuestra prueba, usaremos GraphQL Graph QL Pero para los principales scripts que vamos a estar usando en la
aplicación es punto GraphQLS Comprobamos la
documentación de primavera. Esto está claramente dentro de ahí. Vamos a crear esto. Impresionante.
Tengo instalado un plugin. el momento en que
empiece a usar Graph QLS, se le dará una
sugerencia para un complemento De hecho, podrías
verificar el plugin. Si voy a mis plugins. Si voy a mis plugins y
una vez voy a mis plugins, entonces podría buscar gráfico Q.
Este es Graph que
que es proporcionado por Jedin en
realidad podrías traer esto, traer esto y
te voy a dar este simpático simbolo Ya que también te da
algo muy interesante, que también se vería más adelante
en el curso. Vamos a poner en marcha. Creas
algo llamado tipo. Ahora bien, para esto, me voy a preguntar
, ¿qué es el tipo? No entiendo de qué tipo es. Bueno. Tipo físicamente
significa una clase. Tipo de Clase C con ver
un tipo como una clase. Un tipo es una clase. Bien. No trates de ver cuán probablemente
te estás alejando demasiado. Solo ten en cuenta
que un tipo es una clase. Después yendo al tipo básico, simplemente
los
traeré rápidamente, así que tenemos una identificación. Un ID es de tipo cadena. Este ID es de tipo string, aunque es un
ID liberal, es string. Entonces en el momento en que
añades en
este símbolo, este símbolo estás
diciendo que es obligatorio. Este símbolo significa
que es obligatorio. Siempre que veas este símbolo
en particular, significa que es obligatorio. Otra cosa que podrías hacer, entonces
podrías usar un commer. Entonces usa una coma, algunos no. Yo
lo usaría indistintamente a veces y no lo
usaría a veces, así que ya ves que
realmente no tiene ningún efecto Entonces el siguiente,
vamos a
traer en realidad un datat nesta
type es una cadena Bien, una cuerda. También lo hago componer. Espero que
esto esté sincronizando. Una vez que usted o vea el símbolo, se compone
lo mencioné, voy a ir de nuevo, ID. A pesar de que se llama ID, siempre
es una vez que se convierte
será de tipo string. También estoy usando el
segundo tipo de datos que es de tipo string. Entonces pasemos
al siguiente, H,
He, que es de tipo int, ¿verdad? Que ya está pensando
para los desarrolladores de Java. Solo significa entero
para números, ¿verdad? Números que tienen precisión
exacta, y no tienen
ningún valor decimal. Fresco. Bien, sigamos
adelante. Próxima parada. A continuación, traemos,
usemos la altura. Alturas. Veamos la altura
y voy a tomar eso como flotador. Este es el tipo de datos netos. El tipo de datos neto es un flotador. Ten en cuenta símbolo una vez que
veas este símbolo,
significa componer. Significa componer. En realidad podrías pup
algunos comentarios aquí. Símbolo. Esto significa componer. De hecho voy a comprobar esto ya
que en realidad se puede ver. Significa componer. Entonces finalmente, estolas apec estola es en realidad verdadera o
falsa, que es un bullar Estos son los cinco tipos de
datos que existen. Dentro de la gráfica QL Yo trato con sub tipo string, luego la cuerda, luego termina, luego flota, luego el bolardo, luego el
bolardo Ahora bien, lo bueno o
lo maravilloso es que ya
hemos traído en
esta parte en particular. Una vez que sales y
haces una compilación en movimiento. Una vez que hagas una compilación en movimiento, verías exactamente
lo que va a generar para nosotros. Hagamos eso. Bien,
entonces compilar VN. Así que moviendo compilar, recuerda que
estoy usando Java 22, que es el JDK
gravin ya tengo una configuración en movimiento o tengo configuración en
movimiento en el sistema, y eso es básicamente
trabajar directamente Bien, entonces esto ya está
hecho. Vamos. Recuerden, establecemos un camino
aquí donde todo debería ser
convertido en lo que es este particular es cogen No tenemos cogen
en la carpeta principal, por lo que es generar
dentro del target Vamos al blanco.
Ves gráfica QL, cogen, causa cogen.
Comprobemos lo siento. También revisaré las
fuentes del generador que quise decir. Ves las fuentes del generador en la
fuente generada ves C Z, grafica Q causa cogen
vamos a comprobarlo. Los tipos. ¿Cuál es el tipo? ¿El tipo es de qué muestra? Veamos cuál es el generador. Voy a dividir esto a un lado. Voy a dividir bien, vamos a comprobar. Como puedes ver, este
ID es de tipo string. El nombre es de tipo string. El int es de tipo integer. Las carrozas, no mencioné estas disculpas, es de doble Entonces el bolar es
de tipo Bullard. Creo que esto es
muy claro, chicos. Muy sencillo,
muy claro. No hay necesidad de
confundirse realmente. Estos son los cinco
tipos básicos que realmente existen en la gráfica Q
¿cómo compilas? Usa tu maven VN,
compilar NBN, compilar. Entonces, los veré chicos
en el siguiente video.
11. Interfaz y Enum: Bien, gracias por
volver conmigo. Todo bien. Veamos las interfaces y um, establecer interfaces y ums. Ese es el siguiente paso,
interfaces y um. Veamos cómo se desarrolla eso
físicamente. Veamos la representación de
cura gráfica o los scripts para
escribir realmente interfaces y noms Esto también es muy
sencillo. Lo que voy a
hacer, voy a usar una base de escenarios para hacerlo cantar
realmente. la misma manera usamos interfaz, interfaz y usaré
una interfaz animal. animal más duro, por decir que
un animal tiene patas, en poner un int,
hacerlo componiendo Entonces quiero decir que tiene pluma, tiene pluma, hazlo bullan El plomo se hunde en. Ahora sólo me estoy apegando a
los tipos básicos. Entonces no podría decir un animal, queremos estar seguros de
cuál es el color de un animal y
nosotros tomando color. Vaya, ¿qué he hecho aquí? Acabo de introducir algo
que no estamos usando. Debemos tratar de entender de
la misma manera que funciona Java, donde realmente podrías usar, podrías encontrar una
firma dentro una interfaz y usar una clase
dentro de ella o usar una enum Lo mismo en realidad
funciona en graph quo. cuando
lo convertiéramos, veríamos exactamente en qué entraría
realmente. Ese es el mismo concepto
que estás siguiendo aquí. Esto se
unirá en un poco. Vamos hacia adelante. Entonces
vamos a crear una enum. M enamo trabaja nomotyp color. Soy como color stic ceja, estitan, palo ceja oscura,
bueno usemos Ámbar. Podrías decidir usar
recordar que te mencioné, podrías decidir no
usar las comas Voy a trabajar como es, ¿no? Prefiero usar la
coma porque
acabo de ver que usar la coma realmente
no cambia Como ya vengo
de un fondo Java, solo
tiene sentido usar
coma, solo podría tener definitivamente una
sola mosca en mi cabeza No tengo que
preocuparme si necesito una coma o no. Puedes ver ahora que hemos creado una interfaz y es una enum ¿Cómo usamos la interfaz?
Eso es muy fácil. Todo lo que tenemos que hacer
vamos a sacar esto, darnos algo de espacio.
Sólo dices tipo. Recuerda tipo es una clase, tipo perro
I implementa
un animal de interfaz. Ahora bien, para los scripts gráficos, a diferencia de cuando en realidad
tienes un tipo gero y
estás implementando una interfaz y los
me gusta, en realidad debes Debes escoger todo. Todo debe existir.
Bueno, esa es la desventaja. Ya ves que se estaba quejando
pero Miller agregó que ya
no se queja.
Debes editarlo. Entonces puedo entonces entrar y agregar probablemente una
característica más, dice atrás. ¿Un perro ladra? Sí,
ladra verdad, intimidante Cualquier perro que no ladre no es un perro, no sé
cómo llamarlo. Recuerde, cuando
implemente una interfaz, debe asegurarse de que
todos los atributos o los campos dentro de la
interfaz deben existir. Dentro de la clase o el
tipo que realmente está implementando Vamos a implementar dos más o vamos a tomar en un perro. Tomemos un perro. Un
perro implementa animal. Lo mismo,
recuerden, esto también tiene que venir en cada
detalle tiene que entrar. Entonces, entonces si
ves la señal estridente de
que yo era él antes está apagado, entonces solo diré meneo bot Al parecer, estoy seguro que
ustedes saben que un perro porque es bots la mayoría de las veces cuando los veo,
solo sigo riendo. En esta entrada, genial. ¿Hay un
bot de meneo de perros? Sí, lo hace. Entonces no tomaría uno
más, hay un león. Ion implementa animal, y sabemos que vamos
a tomar lo mismo. Recuerda, esta línea quiggly, te referías a dit in,
boom, está apagado. Entonces para un león, decimos fila. Qué liras Vamos
a darle otra um. Digamos una intensidad cruda. ¿Cuál es la intensidad
de la fila? Voy a hacerlo obligatorio. ¿Cuál es la intensidad de la fila? Eso sería vamos a
darle una enum. Di intensidad cruda. Intensidad. Diré en voz alta. Diré moderado, y voy a decir poco. Todo bien. Entonces, al parecer, mira lo que hemos
hecho, construimos una interfaz, luego en realidad la implementamos, por qué mientras
implementamos agregamos un campo extra
aquí un campo extra allá. Todo este ejemplo vamos a
entrar en detalles que usamos
para el curso, pero solo necesitaba que
esto fuera claro. También introducimos aquí un
tipo num, ¿verdad? Así que simplemente seguimos de la
misma manera que si has estado de la misma manera que estás
familiarizado con OOP, estás familiarizado con cosas
como interfaces y num Sólo te estoy dando una representación
clara de cómo la tienes
en la gráfica Q o dos. Todo bien. Así que esto hecho, esto realmente hace ver que
cubrimos las interfaces. Clases cubiertas y
hemos cubierto noms. Vamos pero esto.
Construyamos esto. Lo que se les ocurre.
Veamos compilar en movimiento. Así que hacemos tal vez compilar
y los chicos
pasando por y tiene
compuesto, suite. Entonces entramos, veamos, veamos nuestra interfaz animal. Ya ves como nos da
exactamente la misma representación, la forma en que vamos a tener
una interfaz Java normal. Esto es lo que tenemos. No se molesten por estas
cosas. Esta es solo parte de la
notación utilizada en la generación. Realmente no estaríamos
usando a estos tipos, ¿verdad? Entonces como pueden ver, ahora tenemos esto. Ahora
tenemos más información. Qué información, dice
Dog es un implementador, Doc es un implementador, un león es
un implementador, lo cual es bastante genial.
Comprobaremos el color. Verás, nos da un nom, exactamente
como debería ser. Enum. La misma presentación g
wow esto es bastante genial. Entonces echemos un vistazo a
cada uno. Veamos la
densidad correcta, lo mismo. Echemos un vistazo al perro. Guau, se puede ver que
implementa animal, lo cual es bueno,
implementa animal. Ahora bien,
lo genial de las clases no te
mencioné a todas las
clases como constructor. Cada clase tiene un constructor. Si ves que cada clase tiene un constructor y puedes tener una compilación, puedes
brotar cada una de ellas. Eso es
algo muy maravilloso creo que codificó gens. De hecho puedes tener
un constructor por cada um, perdón por cada tipo. Bastante genial, hemos
podido mirar interfaces, hemos podido ver cómo una clase o un tipo
implementaría una interfaz. Soy capaz de mirar num y compramos
todo juntos. Creo que en
realidad esto es sincronizarlo. De hecho, podrías
repasar el video una vez más para ver cómo funciona
realmente. A veces te confundes
desde el principio pero después mientras se pone simplemente
se vuelve más natural. Entonces los veré chicos
en el siguiente video.
12. Unión: Bien, gracias por
volver conmigo. Bien. Este será un video
relativamente corto. Bien, entonces ahora quiero
presentarles para separar
este video para mayor claridad. Ahora vamos a traer
un tipo más, ¿no? Entonces hay un concepto en
graphqe llamado union, ¿verdad? Se llama unión. ¿Y qué es la unión?
Unión simplemente significa un tipo que devuelve dos o más tipos.
Voy a repasarlo otra vez. Union es una combinación de dos o más tipos o algo que devuelve dos o más tipos, y eso sería muy importante para nosotros cuando estamos
desarrollando cuando tenemos regresar igual que en el caso de un tipo Java o un objeto Java
que pueda devolver cualquier cosa. De hecho podríamos hacer una unión de dos o más tipos
y devolverla. De esa manera podríamos devolver
cualquiera de ellos o ambos o cada uno de ellos
en realidad se compran juntos. Voy a llamar a
este perro doc. león. Solo dale algo
más Perro entonces esta es una sintaxis Dc y esta es
la sintaxis, entonces adelante. Bien.
Ya ves que podría traer esto, podría encadenarlo. Así es como usar un sindicato. Sigamos adelante y compilemos. Vamos a compilar. Veamos cómo se ve. Fresco. Esto está hecho. Ahora entremos y
veamos lo que hemos hecho. Como puedes ver,
mirándolo críticamente un pato Perro perro león
nos da una interfaz y ¿qué? Se muestra que el implemento
o los tres que se combinan juntos
un perro, dc un león. Puedo estar preguntándome ¿por qué
no solo usé animal? ¿Por qué no solo usé la
interfaz que no sea esta? Verías cómo
se desarrolla todo una vez que intentes
devolver los objetos. Verás que hay
esta dinámica donde vamos a estructurar las cosas y va a ser bastante
interesante saberlo. Entonces, gracias chicos. Los veré chicos
en el siguiente video.
13. Escalares extendidos: Bien, chicos,
gracias por volver. Alguien podría estar preguntándose. ¿Son estos los únicos tipos de datos o son los únicos tipos básicos
que vas a usar? ¿Ningún otro tipo de datos? ¿Y si quiero
lidiar con dinero y necesito un decimal grande para mayor precisión o largo para
tratar probablemente con
una versión menor? O necesito la moneda tipo
Java. ¿Cómo
voy a hacer esto? Hay una buena noticia, chicos, y la buena noticia es que tenemos una biblioteca de soporte
que hace esto, que es la gráfica kyo
Java escalares extendidos Guau. Bien, así que
esto está disponible. Lo genial está disponible. Veo que podrías
tenerlo en Java 20,
Java 21 o GK 20 enk 22, Estaremos trayendo
esta biblioteca, y si
bajáramos un poco, puedes ver que todos los
escalares personalizados están disponibles Tenemos datetime,
tenemos bits, tenemos tiempo. Oh, este es Podisomn. Entonces tenemos un concepto llamado extremos
positivos, extremos negativos, no positivos, extremos no negativos, a
veces solo para,
voy a traerlo. Voy a traer esto
entonces voy a hacer alguna explicación de lo que quiere decir
cada uno de estos tipos. Entonces sabemos cómo proceder. Bien, entonces iré a mi pum. Voy a copiar Voy a copiar
la dependencia. Iré a mi pum. Vendré aquí justo antes de la prueba y la
colocaré en, construimos. Boom, esto realmente entra, yo encare las cosas. Todo bien. Entonces ahora que tenemos eso en
fresco ¿cuál es el siguiente paso? El siguiente paso que vas
a dar, es que necesitamos cablear. Tenemos que configurar esto
para aceptarlo para aceptarlo. Tenemos que
configurarlo para aceptarlo. ¿Y cómo lo hacemos?
Hay un par de formas en las que vamos a hacer
eso y hacer que eso suceda. El primer paso es, necesitamos
realmente crear una configuración. Necesitamos crear
una configuración
que la configuración sea todo lo que
ayuda a traer esto. Yo lo llamo configuración y esa configuración, lo
llamo config. Luego publique bit config, entonces en realidad lo
llamaré GraphQL Entonces al parecer esto
sería una configuración de
configuración. ¿Todo bien? Entonces, ¿cuál
es el siguiente paso? El siguiente paso es que
vamos a traer algo llamado configuración de
cableado de tiempo de ejecución. No voy a hacer esto.
No me lo estoy inventando, chicos. Es exactamente exactamente la forma en que la
configuración realmente estadía. si ves, dice
que realmente use, tienes que traer
en el momento equivocado el cableado de tiempo equivocado
y agregar esto en. Si estás usando
spring, si estás usando spring para Graph care,
que es lo que estamos usando, tienes que crear
una configuración aG care configs el nombre no responde
luego comenzar a cablear cosas Trae todos esos escalares
extendidos u otros tipos de datos que
quieras traer aquí Eso es exactamente lo mismo
que estamos haciendo aquí. Yo solo entraré y el Bam Bam y lo
haré público
aunque sea innecesario
que tuvieras público ahí. Haz de pines para ser visto para
que no necesites publicarlo. Tiempo de ejecución cableado configurar
es lo que necesito. La configuración es lo que necesito. Quiero tener la configuración de cableado
del mismo nombre. Sí. Después siguiente parada, volveré, lo
devolveré directamente. Entonces traes una configuración de cableado que ya
está disponible para usted Configurador de cableado y luego llama a
I'sAll wiring Builder. Constructor de cableado usando Constructor, luego puntos. Eso está muy mal. Lo siento, solo a
los constructores de cableado les falta eso. Constructor de cableado y luego constructor de
cableado. Puntos, luego escalar. Así que empieza a
traerlos uno por uno. Puntos escalares extendidos, ins no
negativos o ins negativos. Pero explique esto en
un poco negativo int. Entonces encadenarlo, escalar. Entonces solo presionemos un
control D sobre Intellij. Entonces solo estoy muy
arriba, ¿verdad? Simplemente cambiaré esto a ins
no negativos a non No,
sí, flotadores no negativos Creo que la forma en que está etiquetada realmente
debería comenzar a
darnos una
definición intuitiva de lo que es. Quiero decir un positivo en eso significa un flotador positivo un
positivo flota Entonces traemos un non
en flotadores no negativos, entonces necesitamos un largo, al parecer Largo se define como gráfico largo. Después las fechas van a traer
combustible gráfico como fechas. Entonces si necesitas
datetime, nosotros en datetime. Entonces si necesitas un gran decimal, un gran fan del bit decimal, me encanta Becimal Aunque
es caro, pero funciona, entonces vamos
a traer la moneda Java,
luego traer moneda, swop currency Todo bien. Entonces una vez
que hayas terminado con esto, entonces solo llamas a la construcción de
puntos. Todo bien. Esto trae en la primera
configuración que necesitamos. Esto es una Persis,
cómo la traes. Vamos a explorar uno de ellos. Si vas a Graph
care si haces un clic de control o simplemente lo
abres y mira la definición. Como pueden ver,
va todo el camino hacia abajo. Ahora veamos el uso. El uso en realidad llama Java privativo Graph big
decimal. Vamos a abrir esto. ¿Correcto? Nosotros lo denominamos gráfico
tipo cicatriz Q decimal grande. Veamos,
bajemos a ver el uso, Vamos a símbolo educado por el usuario. Vayamos aquí abajo.
Como pueden ver, entra y trae
el decimal grande. Al parecer pero una vez
que tengamos esto acumulado, nos va a dar un decimal
grande, un decimal grande. Todo bien. Yo sólo
quería señalarlo. A lo mejor deberíamos revisar uno más. Si revisamos uno más
echemos un vistazo a nuestro largo. Comprobamos largo va Java
primitivo largo, una cola larga. Si ve el uso por aquí, en realidad dice que una descripción
larga es 64 B con signo entero. Sabemos exactamente qué es esto,
que es exactamente correcto, nos genera un largo que realmente funciona. Bien. Todo bien. De día, solo trata de explorar para
que no te lo explique. Estoy tratando de mantener el
video más de 8 minutos. Volvamos en el
siguiente video para ver
las otras configuraciones que necesitamos hacer para que esto funcione. Los veo chicos en el siguiente video.
14. Configuración de Scalars extendida: Muy bien, gracias chicos
por volver conmigo. Muy bien, entonces, ¿cómo procedemos? Ahora, lo siguiente, si estás trayendo unos escalares extendidos Graph QO no lo sabe, así que necesitamos informar a Graph Ker respecto, ¿y cómo lo hacemos? Creamos un nombre de archivo, pero me encanta
llamarlo escalar Vamos a llamarlo punto
escalar GraphQL. Recuerda, Gráfica
QS, S es importante. Entonces cuando empiezo
a traerlos uno tras otro en función de cuáles son
los tipos que quieras usar. Uno por uno, se define un escalar, escalar de int negativo negativo Sólo estoy siguiendo
este tipo aquí. Voy adelante para
no perder el tiempo, solo
voy a cantar
los otros adentro, solo agrégalo. Negativo en
flotadores no negativos, debería llegar a apostar. Entonces esto entonces positivo
ints flotadores positivos, flotadores
positivos positivos, flotadores
no negativos No negativo, dupliqué
esto, necesito quitar esto. Flujos no negativos, recójalo. Entonces necesitamos aquí necesitamos un flotador no positivo,
no positivo positivo. Flotadores no positivos,
entonces tenemos un largo el gráfico largo entonces
tenemos el decimal grande Tenemos el decimal grande para el decimal grande entonces
tenemos las fechas, entonces las fechas, luego tenemos las
fechas para dt y moneda. Ahora bien, se puede ver que
la convención de nomenclatura realmente
no sigue Sí, no sigue. algo muy importante
que realmente tenemos que hacer. Pero vamos a mapear
esto primero de todo lo
que necesitamos realmente
traer en el escalar y eso es muy importante reversa Entonces después de traer eso en el siguiente paso es entonces
¿cómo lo convertimos? Cómo vamos ahora sólo
hemos registrado esto. Sólo lo registramos como runt
que vamos a estar usando esto. Estaremos usando un
tipo de bit decimal, usando long, usándolo. Pero sin embargo, cogen no es
consciente porque recuerden, cogen está estrictamente haciendo
que converta para nosotros, pero no es consciente de
este tipo que acabamos de comprar ¿Cómo hacemos que cogen sea consciente? Este tipo que
vamos a estar usando
la sincronización con lo que va a ser
usado como runt muy sencillo Después ve a nuestra bomba XML. Una vez que vas a un poXML, si revisas la
documentación correctamente, ahora es necesaria,
digo, la
documentación original para coden estaba en
Gdos hecho en Gdo Yo era una comunidad que
en realidad lo portó a Maven, pero tiene muy buen apoyo,
lo cual es bastante impresionante Lo que tenemos que hacer tenemos que
añadir algo llamado. Déjeme tomar esto.
Déjame solo dejarla. Ese algo llamado
mapeo de tipos. Mapeo de tipos. Básicamente, se ve el
tipo mapiner. Desea asignar un escalar a
un tipo de datos del que
Java es consciente Que mientras esto está construyendo, reconocerá el escalar
que estás usando así que estás usando un decimal grande para
saber exactamente cómo se
verá el decimal
grande dentro del código, ese mapeo se
va a hacer El escoger el script y
convertirlo en código Java, escoger el script y
cubrirlo a código Java. Eso es exactamente lo que es.
Entonces, ¿cómo se vería esto? Ahora que tenemos todo esto hecho, esto es algo
en realidad esto por aquí, este es un tipo escalar que es reconocido por GraphQ
vamos a hacer la Conversión, el primero
que usamos es negativo Int, usar exactamente el mismo
nombre, negativo Int. Int negativo, ¿verdad? Entonces me quitaré esto. Déjame usar un escalar.
Escalar más preciso Tan negativo Int, ¿verdad? W tomamos el Int negativo, a
qué queremos mapearlo
quiero mapearlo a Java punto Lang inte Jar Ahora, volveremos para ir a
revisar la documentación para
ver qué significa esto. Pero antes que nada,
terminemos esta parte. Ahora necesitamos un int no negativo. Hay una
t no negativa. un int no negativo, también lo
mapeamos a un entero. Nosotros solo quiere decir que
no debe ser negativo. Lo vemos, lo vemos brevemente. Entonces, ¿qué es un flotador
no negativo? Recuerden, tenemos estos flotadores
no negativos. Simplemente soy demasiado perezoso para escribir. Ninguno negativo se
mapeará para mapear a double. ¿Qué pasa con el
int positivo? El int positivo? Al parecer, se puede
adivinar esto ya, se mapeará a entero. Veo que ven chicos, esto es bastante sencillo. Entonces, ¿qué pasa con el flotador
positivo? Al parecer habrá un doble. ¿Correcto? ¿Qué pasa
con los flotadores no
negativos, el
flotador negativo no positivo quise decir, flotador
no positivo también
será un doble. ¿Qué pasa con un largo? Un largo. ¿Qué pasa con un largo? Lo adivinaste,
va a ser un largo. Entonces, ¿qué pasa con un
decimal? ¿Un gran decimal? Un gran decimal, estoy seguro que también lo
adivinaste, esto no sería Esto se
encontrará en las matemáticas Java Eso es un gran decimal.
Bastante dulce. ¿Qué pasa con la fecha? Una fecha. Seguro que sabes exactamente
lo que va a ser. Fecha, voy a mapear mi fecha
a Java hora fechas locales, probablemente
quieras
pensar en tal vez Java, YouTube y empezar a buscar, todavía
hay una función de fecha? Hay una fecha, pero no,
quiero usar su preferencia. Sabes exactamente la
marca que estás buscando. Entonces fechas hora, al parecer, yendo por mi línea de pensamientos, ya
sabrías que quiero
usar fechas locales tipo. Y finalmente, para la moneda, aunque no
vayas a usar moneda, vas a usar moneda. La moneda
básicamente vendrá de la clase de moneda, ¿verdad? No debería estar seguro de la moneda. Moneda. Digamos que moneda
Java es
ese plus en este momento. Déjame buscar eso. Ese será ese debería ser el YouTube. Moneda Java UT Glesn escogió, recuerda, no podía
recordar dónde estaba. Todo bien. Entonces
ya hicimos el mapeo. Así que esto es genial, ¿verdad? Ahora, cuando
construyamos esto, podremos ver que nuestro negativo en cualquier lugar que usemos
negativo dentro de nuestro tipo de datos, si usas una t no negativa, automáticamente
será un entero y usamos un
float no negativo para ser un doble. Entonces vamos a
ver eso en acción, pero estos videos
ya se están haciendo tanto tiempo. Así que volvamos
en el siguiente video y realmente construiríamos esto y para mostrarnos exactamente en qué se marcará
esto
porque lo vamos a usar. Entonces al mismo tiempo, también
exploramos la documentación para
ver qué significan estas cosas. Entonces los veré
chicos el siguiente video.
15. Uso extendido de escalares: Bien, gracias por
regresar, chicos. Les mostré en el último
video cómo traer esto. Voy a hacer un rápido recapitulativo. En primer lugar,
traes una dependencia. Que es grafica Q Java escalar
externo. Estoy apuntando a 22 Java 22
porque estoy usando Java 22. Resumiendo Java 21,
voy por Java 21. Pero recuerden, me quedé con Java 22 porque habrá una parte de validación con la
que tenemos que tratar. Bien. Primero lo primero, tienes que configurar todos
los tipos que necesites, ¿verdad? Configurar el toque es
bastante sencillo. Aquí es un constructor, así que
solo configuras todo. Después se replica el mismo
escalar dentro de una gráfica QLs. Dale para que luego puedas usar estos escalares para tus tipos, nums y lo que pretendas Una vez que hayas hecho
eso, el siguiente paso, que es el paso número
tres es que necesitas
configurar porque los asesinos de GF no saben lo que significan
estas cosas, verdad? No
sabe lo que significa. Pero sólo se trata de
cinco tipos básicos. Entonces, para que sepas exactamente
lo que significa esto, necesitamos ahora hacer mapeo de tipos. Diciendo en cualquier lugar que veas final
negativo usa un entero. Ves un
flotador no negativo usa un doble. Ves una fecha, usas
un dt blanco local, y ves un usuario de moneda y el Java, dices moneda. ¿Bien? Entonces esta es una parte
de configuración. Ahora veamos
la definición. Es bastante sencillo si lo
piensas bien, ¿verdad? Entonces veamos la definición. Entonces pasando por esto, así ves, int
positivo, int positivo,
es decir, un entero en escalar
debe ser mayor que cero Detengamos un int no positivo, en escalar que debe ser
menor o igual a cero Por lo que significa que
no debe ser negativo. Lo siento, no debe ser
positivo o no positivo. No debe ser c menor
o igual a cero. Podrías adivinarlo si
miras lo no positivo, así que debe ser menor o igual a cero,
eso es realmente un bocado Por eso
ahí estaba chocolate. Realmente es un bocado. Pero esta es mi recomendación. Esta es mi recomendación. No tienes que usar todo esto. Ahora bien, este es un lugar por lo tanto hay algunas restricciones apretadas. Eso es lo que es
útil. Pero sin embargo ,
recuerden,
todavía vamos a hacer alguna forma de
validación de nuestra parte. ¿Correcto? Las validaciones no
terminamos, seguimos encubriendo No queremos que algunos valores
arbitrarios signifiquen el tipo de valores Usar la menor cantidad de
escalares posible, excepto que esto es muy obligatorio Si yo dijera,
diría para cosas como negativos, ins
positivos, ints
no negativos,
o el tt en él, el tipo de datos básicos
int es suficiente El tipo de datos básicos,
la gráfica básica ca tipo int es suficiente. Pero esta es puramente mi opinión. Yo no soy
definitivamente podrías tener una opinión diferente solo
haz lo que funcione para ti. Pero solo estoy
aconsejando cuanto menor, mejor, no
compliques demasiado Prácticamente podría
entender cuando ahora
estás trayendo
el tipo local, la señal Garf, la excavación Decimal, la dosis larga son esenciales Pero por todo esto, que
son bastante bocados, solo usa solo lo que
necesites. Todo bien. Dicho esto, hemos
podido encontrar
esta documentación que en realidad pongo a disposición. Esta documentación ya está disponible en la
sección de inicio o sin embargo, probablemente solo
reestructuraré
y la pondré a disposición antes de este particular
este video en particular Así que en realidad tenemos este enlace
para que lo exploremos más. Entonces, ¿qué es
lo siguiente que queremos hacer? Bien. Ahora que
trajimos todas estas corbatas increíbles. Es natural que lo
usemos, ¿chicos? Creo que deberíamos
usarlo, ver cómo funciona. Déjame agregarlo a mi muestra. Volvamos a mi muestra y déjenme solo
darle algunos comentarios, solo
diré otros tipos
escalares, otros tipos escalares, solo lo
llamo escalares extendidos Ahora vamos a verlas en acción.
Sólo voy a hablar unos pocos. Yo solo diré
aves de datos, aves de datos. Fecha de nacimiento, ¿verdad? Recuerden, no voy
a poner un comino aquí. Probablemente solo voy a hacer eso deliberadamente
solo para que veamos cómo funciona. Fechas. Recuerda,
no es escoger estas fechas. ¿Cómo lo sé? Cómo haga clic en
la cultura. ¿Ves? Yo salta aquí
directamente. Es bueno elegirlo. Bien, así que eso es genial.
Eso es genial. Eso es genial. Bien, así que procedamos. El siguiente, usemos
algo más es importante. Siguiente, sueldo. ¿Correcto? Entonces para los países que usan cosas como tal vez en Nigera usamos adoquines NIR
digamos para EU,
para usar probablemente centavos de dólar, para algunos otros países
que tienen un Yo soy de una fuerte opinión
que el pulmón es realmente bueno. Así que no tienes que
preocuparte por esos tipos de datos, y esa pequeña pieza decimal falta, y
una vez que falta, tu mal podría
causar un corte de tejido, ¿verdad Porque el dinero es muy
importante, ¿verdad? Siguiente paso, entonces usemos el dinero. Dinero usemos bi decimal
para dinero para representación. Entonces usemos
número de lápices. Acerca de pen sel, justo sobre
lápiz quiero un no negativo. Les voy a mostrar
chicos que no sabía lo que esto significa. No negativo. Tiene que ser positivo.
Es una boca para ello. Entonces moneda, ¿verdad? Moneda, voy
a usar la moneda, Es esta moneda Java la
que tenemos aquí. Y por último,
solo usemos uno más. Solo agreguemos uno más.
Simplemente llámelo creado el. Creado en el paso de fechas tiempo, que es un villano para
mirar fecha y hora Bien, ¿esto funciona? Ah,
también tengo curiosidad por averiguarlo. Entonces compilar NBN. Y veamos qué pasa. Oh, sí, tenemos
esta gran dependencia. Bien, veamos qué pasa. Bien, eso es ser exitoso. Entonces chicos, también tengo
curiosidad como ustedes. Tengo curiosidad. Vamos a saltar. Veamos los tipos,
vamos a comprobar, muestra. Vamos a abrir esto.
Fresco. Como puedes ver, Java time, mira fecha. Nuestra conversión funciona. Hurra. Entonces, si traigo
esto solo para comparar, estamos viendo Mi dinero
debería ser grande decimal. Como puede ver, el decimal grande va a los tapetes Java, decimal grande. Si revisas esto,
vayamos a las entradas. Se Tapetes Java. La conversión
funciona con éxito. Entonces la moneda va hacia
ella en realidad va a la
moneda Java util. Esto funciona. Esto es rápido o chicos,
veloz o algunos tipos. Entonces el largo largo también
va al Java Lang, largo, Java Lang, luego el largo. Esto es simplemente Impresionante. Chicos, así es como se
llega a usarlo, ¿verdad? Entonces puedes ver ahora podemos entonces al crear nuestras entidades
o probablemente nuestros DTOs, entonces
podemos definir todos
los tipos que necesitamos y luego definir todos los tipos cuando hagas la configuración
por aquí Una vez que hayas hecho
la configuración, crea tu escalar solo
hay un recapitular, luego ven a la bomba, luego define a qué se
debe traducir el escalar Una vez que hayas hecho eso, entonces
puedes usarlo como nosotros. Muy bien, chicos. Los
veré chicos en el siguiente video.
16. Tipo de consulta, parte 1: Hola a todos. Gracias por volver conmigo. Todo bien. Entonces queremos discutir tres tipos
especiales en gráfica QL, tres tipos especiales en gráfica QL Y el primer paso que estamos
discutiendo es una consulta, ¿verdad? Es una consulta, el primer paso
estamos discutiendo una consulta, ¿
verdad? Y ¿qué es una consulta? Entonces voy a
añadir algunos comentarios. Entonces dices que la consulta
son todas las lecturas. Todas las lecturas, tú lo haces. Lo haces en HTTP, eso implicaría eso
involucraría en una Multitud, esa es la R, la R en multitud. Sólo estoy tratando de dar
tantos ejemplos como sea posible. Di que quieres obtener uno,
quieres obtener uno,
leer leer usuario, como
cualquier video que estés haciendo, cualquier video que estés haciendo cae
bajo tu tipo de consulta. Cualquier video que estés haciendo
cae bajo el tipo de consulta, y ¿cómo construimos
el tipo de consulta? Ahora, un tipo de consulta ahora alberga
todos los puntos finales de codificación. Voy a usar esa palabra con cuidado, todos los extremos de codificación a los
que vas a estar llamando Un ejemplo típico será
que vas a tener que decir que
quieres ir a buscar,
quieres ir a buscar Digamos, tenemos
una muestra aquí. Estaremos usando tipo de muestra. Quieres ir a buscar una muestra. Es una muestra de hechos, entonces hay que pasar, hay
que pasar en
el nombre de la variable. Entonces básicamente llámalo
el ingreso de muestra fetch. Primera muestra imputa. Físicamente, no la sintaxis, imputa la
primera muestra. Ahora bien, ¿por qué estoy usando imputes? Entonces, en realidad
, entonces definamos fetch. Muestra, imputa. ¿Qué es esto? Yo. Entonces se pone como, Oh, esto se está volviendo
más complejo. Bueno, en realidad, no lo
es. Entonces obtenemos una respuesta y la respuesta nos
dará una muestra. Ahora, ahora
bajemos un poco. ¿Qué es una muestra? La forma en que funciona en la gráfica QL, cuando intentas
consultar una gráfica QL, debes o bien pasar
lo que llamamos un Java, lo que llamamos un primitivo nosotros, esos cinco tipos básicos, pasas en esos
cinco tipos básicos, o pasas en tu o realmente
pasas en el tipo escalar
extendido, o pasas en Tenga en cuenta esto con mucho cuidado, pasa esta entrada. No
te aceptará usando una clase. No aceptará usar
una clase o un tipo. Si estás intentando realizar una consulta, debes pasar una entrada. Una entrada normalmente
se vería así. Requiere una palabra clave, entrada. Bien, entonces podemos crear
la imputa de muestra fetch. Entradas de la primera muestra. ¿Y por qué estamos consultando? Esto luego contiene los
datos por los que nos consultan. Digamos que estamos
consultados por el ID, y también estamos
consultando por el nombre Tomaré esto con claridad. Voy a
tomar esto muy despacio otra vez. Siempre que estés haciendo una consulta, siempre que estés haciendo
una consulta, bien, debes pasar o bien debes pasar
los cinco tipos básicos, o pasar los escalares
estándar, o pasar en una entrada No aceptará el
tipo. Probemos esto. Entonces digamos que en realidad quiero ir a buscar, vamos a dar
otro ejemplo aquí Estoy diciendo buscar muestra también, y luego estoy tratando de
pasar un objeto de muestra Yo sólo llamo a esta muestra. Después le paso una muestra. Esta muestra que
realmente existe es un tipo veamos
qué nos da. Devolver una muestra. ¿Puedes ver esto? Verá, el tipo sample
no es un tipo de entrada, sino que se utilizó como tipo de entrada. Necesitaba entender esto. Para que puedas pasar un
tipo regular, que es una clase. Si quieres, todo lo que necesitas
hacer es crear un tipo de entrada, luego mover todos los
campos ahí dentro, igual lo tenemos aquí. Entonces, por favor, tenga en cuenta
que cuando intentas qu no acepta una clase, toma un tipo de entrada. Verás más
cuando entremos en el proyecto principal con el
que vas a estar tratando o
con el que trabajarás
en esto y por supuesto, pero en realidad necesitaba explicar
vamos a repasarlo
desde el principio. ¿Cómo funciona de nuevo? ¿Todo bien? Siempre que quieras hacer todas tus lecturas
como un usuario get, el usuario gordo obtiene más como si estuvieras leyendo de
una base de datos o estás leyendo puntos finales de corte que
básicamente se usan para leer
como la R en una multitud Ya sabes, la R es una
lectura en crudo, ¿verdad? Tienes el create
read o gets delete. R es la lectura. Si quieres hacer
algo que sea una lectura, debes someterlo dentro de
un tipo de consulta, ¿verdad? Dentro de un tipo de consulta, y eso es muy,
muy importante. Entonces habiendo explicado
esto, ten en cuenta, solo
puedes recibir
un tipo Impute, o si quiero hacer esto, entonces
puedo seguir adelante
y pasar una identificación Ves esto funciona,
funciona porque puedo usar el Java puedo usar
los tipos primitivos. Pero cual es la gráfica tipo
básico que quiero decir. O en realidad podría decir que quiero
pasar en un decimal grande. Se puede ver que también
acepta un decimal grande. Así que voy a repasarlo
otra vez como un resumen. Cuando intentas
hacer una consulta, una consulta aceptará
solo un tipo intut
como parámetro Aceptará ya sea
los tipos básicos de GraphQL o los tipos escalares
extendidos, pero no aceptará un
tipo de clase, ¿verdad Eso es muy, muy
importante saberlo. Ahora bien, esto es solo te estoy
presentando uno, Proyecto de
estudio propiamente dicho,
ves exactamente lo que es. Entonces con esto hecho, vamos a compilar rápidamente y ver esto va con éxito oh,
sí, compilar y eso
se está moviendo a través y luego, se somete
con éxito Si tuviéramos que
navegar rápidamente en esa carpeta en
particular y ver cómo se ve, verías que no necesariamente tenemos una consulta
aquí no hay consulta aquí. Pero si revisas
tu constante de excavaciones, constantes excavaciones a menos que esté
configurado para consulta, Y busca consulta,
como puedes ver. Entonces esto es exactamente
lo que creaste. En realidad es una clase en sí misma. Recuerda que mencioné,
cada tipo es una clase. Pero esta vez, esto se
utilizará para definir nuestros puntos finales cuando
realmente lo estemos creando, ¿verdad? No quiero
entrar en estos detalles porque cuando estás
mirando te ves confuso, pero cuando todas las piezas
empiezan a juntarse, a entender
los conceptos básicos y cómo funcionan
estas cosas y cómo
encaja todo. Pero lo que debes
saber por ahora es que cuando quieres crear
un punto final para una lectura, sujeto dentro de un tipo de consulta, luego corta la definición que deseas,
cortas la variable, lo que recibe,
debe ser una entrada, ya sea de tipo básico o escalar que te den la respuesta Con eso,
los veré chicos en el siguiente video.
17. Tipo de consulta, parte 2: Bien, chicos, muchas
gracias por volver. Bien. Entonces, en el último video, realidad
miramos el tipo Quervy, que es uno de
los tipos especiales que se usa para
leer, ¿verdad? Y también definimos también definimos la
firma que se utiliza. Te pasa la consulta, te pasa realmente pasas
en una variable que esta. Entonces alguien podría
hacer la pregunta. ¿Puede tomar múltiples? Oh, sí,
en realidad puede tomar múltiples. En realidad podría,
podría decir entrada dos. Imputa dos, y también recibo otro argumento y de
hecho podría decir que quiero que esto
sea un gran decibal Esto también funciona. Puedes tener múltiples de
la misma manera. Tienes de la misma manera que
lo tienes para un tipo HTTP que
pasas en varios argumentos. Esto también puede funcionar. Pero
tenga en cuenta amablemente, prefiero sugerirle que siempre coloque todo
dentro de un solo tipo de lámpara. Pero si necesitas más, simplemente haz clic en varios tipos de lmpu y de hecho pasarlo. Vamos
a ver la sintaxis. Solo te estoy presentando
cómo se ve la muestra cómo se ve
básicamente la sintaxis. Entonces, introduje aquí
algo muy clave, que es este corchete. ¿Qué es un corchete? Tenga en cuenta que un corchete significa
simplemente una lista. Un corchete significa una lista. Ahora editar como comentario
es corchetes. El corchete significa una lista. Entonces, cuando ves un
cubo cuadrado, significa una lista. Ya definí antes que una vez que veas este símbolo, el símbolo básicamente
es obligatorio. Entonces significando debes
dar una muestra de respuesta. Ahora bien, esta es la
respuesta en sí misma. En el momento en que tienes el nombre de los puntos finales
que quieres usar, entonces dentro del dentro de los corchetes, en realidad
estás colocando cuáles serán
los tipos vacíos Después seguido de una columna, entonces en realidad
tienes las manchas rojas. Y una vez que veas
un corchete, significa una lista, ¿verdad? Espero que
no estén confundidos, ¿verdad? Podrías intentar
ver el video para
poder obtener los
conceptos con claridad. Pero puedo asegurar que usarás toneladas de ejemplos, estaremos usando toneladas de ejemplo una vez que entremos
al curso mientras estamos
cortando todos los puntos finales, y esto
básicamente se hundiría Entonces, una vez que ves un
corchete, en realidad
significa una lista. Y este pack también
significa obligatorio. Entonces, ¿alguien puede mirar esto? Cuando en realidad hago esto,
¿qué significa? Simplemente significa que estoy
devolviendo una lista, es
decir, estoy
devolviendo obligatoriamente una Como señalar que soy
obligatorio devolver una lista y el objeto que estoy
devolviendo es de tipo muestra, y también es obligatorio. Esto significa que estoy devolviendo
uno o dos de un objeto de muestra porque
debo devolver una muestra. Pero sin embargo, no es
obligatorio, me sale una lista. Podría conseguir
un solo objeto, pero estoy seguro de uno o más. Eso es lo que
significa. Pero por aquí, significa que estoy seguro
de más de uno. Por eso la
lista es obligatoria. Espero que este concepto realmente
canta vaya a repasar algunos otros tipos y lleguemos a ver cómo se desarrolla realmente. Eso es impuso. Eso es impuso. Como diría más adelante,
voy a comentar todo esto porque cuando
estudiamos cuesta correctamente, seríamos el mismo proyecto, no
me gustaría que el nombre realmente entre en conflicto.
Eso es justo por el. Bien, eso se está diciendo, los
veré chicos
en el siguiente video, y en realidad
empezaríamos a mirar el segundo tipo que es físicamente ver chicos
en el siguiente video.
18. Tipo de mutación: Oigan, chicos, gracias
por volver. Esto es Z. Muy bien. Hemos
mirado con éxito el tipo quivy y la firma sobre cómo
se ve, ¿verdad Ahora, ¿podemos tocar
esto una vez más? Si lo piensas, en realidad
podrías hacer un
vio a cabo una discusión. ¿Es eso correcto? Oh, sí. Básicamente podría sacar esto. Vamos a llamar a esta muestra de traste tres y voy a quitar
todo aquí dentro ¿Correcto? Me quitaré esto totalmente y puedo
ver devolver una muestra. Esto también funciona, vi que
mencionaste, esto funciona. Ahora el siguiente tipo
que vamos a estar viendo es la mutación
de tipo. Mutación tipo. Vaya, ¿qué significa
mutación tipo? Ahora, recuerden que hemos estado
mirando a la multitud. Ahora bien, si tuviera que copiar esto aquí, veces
puedo ser perezoso. Pero para copiar esto, usted dice, los datos, todos los cambios de datos. A los cambios de datos. Todos los cambios de datos que haces, que es la C,
que es la creación. La U, que es la
actualización, y la D, que es la eliminación en multitud
son todo tipo de mutación, es
decir, estás
cambiando algo. Esto es muy clave, estás
cambiando algo. Siempre que estás
cambiando algo, en realidad sometes todo dentro de tu mutación tipo. Sujetas dentro
de la mutación tipo. Un ejemplo muy sencillo, para
no hacer realmente esto
muy complejo es
solo podría decir crear muestra. Crear muestra, y probablemente usaremos las mismas
imputas que tenemos Yo solo diré crear imputes, después recibiré las imputas de muestra
fetch Entonces, ¿qué me deberías dar? Bien, solo podría decir,
quiero devolver una identificación. Esto funciona, ¿verdad? ¿Recuerdas? Sólo así estoy tratando de ser muy flexible para que veas que no es del todo diferente de lo que haces cuando creas un juego de palabras final
normal Sólo se puede decir que
quería devolver una cuerda. Quiero devolver un objeto. Lo mismo, pero la idea es simplemente obtener la sintaxis, ¿verdad? Recuerda lo que hicimos aquí, este cubo cuadrado significa una lista. Entonces se podría decir que quiero la lista de algo y devolverla. Cuando estás creando, la
mayoría de las veces
probablemente solo devuelvas un objeto de muestra. Lo que haremos es
conseguir otro tipo de entrada, y yo lo llamaré respuesta. Voy a llamarlo una respuesta de muestra. Vamos a llamarlo respuesta de muestra porque es para ser consistente. Lo llamaré entrada de
respuesta de muestra. Derecha. Sólo voy a devolver una identificación. Lo haré obligatorio, luego devolveré un nombre. Lo haré que sea una cuerda,
pero no es obligatorio. Podría decir que esto
me daría una respuesta de muestra, ¿verdad? Esto en realidad básicamente me
da perdón, quise decir, esto es lo que en realidad
estaba apuntando. ¿Qué están tratando de hacer aquí? Estaba tratando de
devolverle una respuesta. Lo siento, quería hacer un tipo. Una respuesta de tipo, un tipo, un tipo. Este era el objetivo era
ser un tipo, ¿verdad? Se supone que es un
tipo, no imputar. Yo quería conseguir un tipo, así que podríamos regresar solo puedes devolver esto
y esto físicamente
funciona, ¿verdad? Esto funciona hsally. Así que recuerda, para que uses una imputa, debe
ser de tipo
imputa, O podrías usar cualquier azúcar
extendido si usas alguna extensión como esta
y esto funciona, o podrías pasar pampsical solo la gráfica básica
tipos A, y eso también funciona Así que sé creativo. Inmutación. Sin embargo,
piensas que solo tienes que seguir,
asegúrate de poder
devolver un tipo de entrada. Un tipo de entrada
entra como parámetro, y devuelves cualquier
tipo de tu elección. Ya sea el tipo básico o
el tipo escalar extendido o realmente devuelve
un tipo de objeto personalizado Eso se trata de la inmutación. Vemos toneladas de ejemplos, pero solo quería
presentarles esto. Esto físicamente funciona. Impresionante. Entonces veremos el último tipo
en el siguiente video para que luego
todo se junte. Os veo chicos en
el siguiente video.
19. Tipo de suscripción: Todo bien. Esto es Z aquí.
Gracias por regresar. Bien. Entonces ahora estamos viendo el tipo final que
vamos a usar. Estos son los tres tipos
especiales que existen, y este es tipo,
suscripción, ¿verdad? Suscripción. Ahora bien, la
forma más fácil de explicar esto es tu submodelo de pub submodelo Pub que es un editor y
un suscriptor Entonces la forma en que funciona de
la manera en que funciona es, tener un motor o tendríamos nuestra aplicación
realmente produciendo actuando como el editor, para estar produciendo
o emitiendo datos. Entonces habrá alguien
por ahí o un grupo de prensa va a estar llamando al dput y estará consumiendo los datos que
realmente liberamos Es tan simple como
tienes una
fábrica de refrescos que siempre está produciendo y que los consumidores siempre esperan
tomar el refresco. Entonces esto es lo mismo
que funciona aquí, ¿verdad? A diferencia de estos dos tipos en los
que necesitan desencadenarse, ya sea la consulta
o la mutación, cualquiera de los tipos necesita
ser activado por el usuario, antes de que realmente vaya a base de datos o de donde sea que estemos
obteniendo la fuente de datos, luego se vuelve a sintonizar o para la mutación,
se activa. Pero en este tipo, no
se dispara. Nosotros somos los unico ting. Un ejemplo típico
podría ser que
en realidad estás creando un conjunto
de refrescos, ¿verdad? Y hay alguien simplemente
siempre leyendo de ello. Un ejemplo del mundo real
que puedes mirar es el hecho de que existe
este reporte meteorológico, ¿verdad? No es necesario activar una API para que se creen
los informes meteorológicos, ¿verdad? Esto ya está hecho. Por lo que
se ha hecho análisis, se ha hecho
algún análisis geográfico y se
ha recabado el informe. Se acaba de publicar
en el sitio web. Simplemente consumes la API. Una vez consuma la API, podría leerla en tiempo real y comenzar a recibir la actualización.
Entonces eso es lo que pasó. Otro ejemplo es
Forex una vez haciendo operaciones
de Forex o una vez estructura
o el comercio de divisas. Justo cuando llegas a la mayor parte de su plataforma,
cambia con el tiempo. No tienes que hacer clic en una API. Simplemente notarás que solo
está cambiando con el tiempo. Si realmente
consumes su API, probablemente
seas el suscriptor y ellos son el editor. Lo mismo que
en realidad tenemos aquí, lo que vas a lograr en graph estás usando web socket, pasa por el mismo detalle. Te tengo cubierto, y esto va a ser muy,
muy interesante. Un ejemplo típico podría
simplemente llamarlo dejar de muestra. Notificación, auto notificación. No hace falta ningún argumento, entonces solo devuelve esto, solo devuelve esto, devuelve esto. Veremos otras
varianzas una vez que realmente
iniciemos la aplicación principal, verás exactamente cómo funciona Ahora, he podido
lanzar esto juntos, teniendo que explicar
qué es la suscripción. Así que volvamos, hagamos un retoque. La consulta son todas
las lecturas que haces, leyendo leyendo desde
una aplicación. La mutación es que estás haciendo cambios en los datos
que existen dentro la aplicación o están haciendo cambios en los
datos que existen en una base de datos o alguna fuente que existe que
pasa por la aplicación. Entonces por último,
tenemos una suscripción nos podemos ver con comentario, digamos, un submodelo de pub. Déjame usar la palabra completa, que es suscripción,
modelo de suscripción de
editor editor, suscripción. Entonces esto básicamente es lo que es. Ahora bien, habiendo explicado
estos tipos, podremos ver que si quieres
pasar en argumento, debes usar un tipo
llamado IntutAsí usas los tipos escalares
que se trajo con
la biblioteca escalar
extendida de Java,
o pasamos
en el tipo
básico que existen,
que es el ID o la cadena o el bolardo
o
el float, ¿verdad? tipos escalares
que se trajo con
la biblioteca escalar extendida de Java,
o pasamos
en el tipo
básico que existen, que es el ID o la cadena o el bolardo
o el En realidad podrías usar eso
o realmente usar el int. Eso realmente funciona.
Entonces para la mutación, también,
básicamente funciona lo mismo. Recuerda,
te mencioné que no puedes usar un tipo, no
puedes pasar un
tipo en la entrada. Una vez que pasas en un
tipo en la entrada, lo marca y yo
pude mostrártelo chicos. También podríamos ver si
acabo de hacer esto ahora mismo. Verás, en realidad se queja. El tipo sample
no es un tipo de entrada, sino que se utilizó como un tipo de entrada, que básicamente está
bien . He podido
pasar por todo. Todo esto es una
introducción para que
estés familiarizado con las
cosas básicas con las que trabajaremos. Ahora, entonces estaremos profundizando
más para poder luego ver cómo
realmente se unen las cosas Los veré chicos
en el siguiente video.
20. Entidades en Graphql, parte 1: Hola a todos. Gracias
por volver conmigo. Habiendo mirado más bien los conceptos
básicos, hemos podido ver cómo jugaban
estas cosas juntas. Hemos podido ver
el tipo básico. Ese es el tipo gráfico queer, el tipo gráfico básico. Hemos podido ver cuales
son estos quiero decir,
que es el ID, la cuerda, los ins, el flotador,
y el lingote Luego seguimos adelante para verificar
realmente nuestros escalares extendidos
Vamos a ser capaces de
extender realmente para usar todos los tipos de jaa Tocamos la interfaz. Tocamos cómo podemos
implementar la interfaz. Te mostré en un
par de videos cómo podríamos realmente vincular
estas cosas juntas. También tocamos
noms. Todo bien. Todas estas cosas
además de la
mutación de consulta y suscripción, que te dije serían tus endpoints con los que
estarás interactuando como tu leer tus
otras actividades de código, que básicamente es sección en mutación de
consulta y suscripción como en el caso de la gráfica Q. momento,
vamos a estar entrando en los contenidos de la causa principal.
El contenido de la causa principal. Y luego para correr a través de esto
para que tengamos un alimento húmedo, tenemos un buen entendimiento de cómo
se dividen estas cosas. Ahora mismo, pasemos
a lo siguiente. Impresionante. Bien, entonces en este video, lo que estamos apuntando
a crear es nuestra entidad GraphQL DTOs
Graph entity DTOs Bien, ahora quiero
mostrarles algo
muy, muy único. Cuando les mostré antes chicos, cuanto a donde
podemos colocar nuestros guiones, mostré desde
esta parte en particular cuando hicimos graficar la ubicación de QL, cuando intentamos
buscar ubicaciones, vimos que es un gráfico
clave slash starter minute, coincide tanto con este como con
los subdirectorios Solo haz esto más limpio. Vamos a entrar aquí y crear TTO. Consigamos nuestros DTOs. Qué va a utilizar
para este curso. Sigamos adelante y creamos
sigamos adelante y creémoslo. Sólo le voy a dar
un nombre genérico. Simplemente llámalo entidad. Podrías darle otra
cosa, yo la llamaré entidad
porque va a abarcar cosas como nuestros
DTOs, nuestros insumos Todos y cada uno de los tipos
serán creativos también tendrán su aporte
específico. Yo sólo quiero agrupar
todo junto. Entonces no nos mezclamos con esto que
ya tenemos aquí, podría ser bastante diferente. Simplemente bastante diferente. O en realidad podrías seguir adelante, lo llamaré entidad GAF QL Cualquier cosa que prefieras solo hazlo. Solo estoy creando esto para llegue
una mejor palabra a la
cabeza para simplemente
separar las cosas. Lo primero que voy
a crear es uh Empresa. Empresa rápida GraphQL GraphQL. Company Graph QL, ¿qué contendrá realmente
la compañía? Vamos a utilizar
una empresa tipo DTO. Ahora, tal vez se esté preguntando
por qué tuve que usar el detalle. Esto es muy específico
porque cuando creamos nuestras entidades JPA, podríamos empezar a tener conflictos Ahora bien, los conflictos, no porque en realidad
fueran los mismos, sino conflictos porque cuando
ahora quieres ver
cuál usar, es la compañía que
es para la entidad JPA o
es la compañía que
es para el QLS de GAF, podrías empezar a
tener Sin embargo, lo que he decidido hacer es seccionar las cosas. Entonces tienes entidades JPA que en realidad
serán el nombre de la compañía, y este es el
detalle que se
utilizará como objeto de transferencia Estoy seguro de que realmente eres consciente de los
patrones de diseño donde
tienes tu lógica de datos
realmente separada en DTs, eso realmente tiene más sentido O su objeto de transferencia de datos, quiero decir, ¿cuál
sería el contenido? Tengo la intención de usar UUID como nuestro ID. Así que usa una U ID que es una cadena, tenga en cuenta que puede usar una larga. Ya hemos ido adelante,
agrega un largo aquí. Puedes ser flexible para usar
lo que pretendas. Yo solo prefiero
solo usar un UUID? Porque en mi antiguo curso, creo que me quedé demasiado tiempo. En este curso, solo me
sentí más flexible. Déjame usar otra cosa.
Estoy tratando de usar los UID. El siguiente paso,
vas a tener un nombre, nombre, ese es el
nombre de la empresa, y lo siguiente
va a ser obligatorio. Lo siguiente es el número RC. En mi país donde lo llamo número
RC es el
número de registro básicamente. ¿Qué pasa con el número de
registro del
curso de
la compañía para que
realmente me puedas decir
que es lo mismo También es ser una cuerda. Cadena, entonces tenemos
la oficina Add. Una oficina es más como
la dirección donde se encuentra
la dirección, ¿verdad? Entonces, ¿qué más estamos bien? Vamos a agregar país. Vamos a agregar un país, ¿verdad? País. País.
El país también será una cadena. Entonces, por último,
agreguemos algo genial. Digamos
tipo de negocio. Tipo de negocio. Este es el tipo de negocio del país, y tomaremos un
innum o tipo de negocio Tipo de negocio. Bastante genial. Bastante genial. Ahora, ¿qué
es el tipo de negocio? Al parecer,
tipo de negocio va a estar inmtaking
tipo de negocio, copia esto Tipo de negocio, y
vamos a tener cuatro
negocios que
tomaremos telecomunicaciones. Bancario. Entonces la educación,
¿verdad? Educación. Bastante genial. Bastante
genial. Bastante genial. Desde aquí hemos hecho otra cosa. En realidad he
podido definir este
buen trabajo. Todo bien. A continuación, vamos a crear la siguiente entidad y
sus detalles relacionados. Vamos a crear departamentos,
¿verdad? Departamento. Departamento departamento gráfico QLs. De hecho, departamento
hace Gráfica QLS. Departamento o gráfica QS, y ¿qué contendría
el departamento? Normalmente, algo
cercano, tenemos departamento. Departamento DTO. Mantequilla DTO,
tenemos un refrán UID. Entonces string, que va a ser una
cadena, tenemos un nombre. Va a ser una cuerda.
Va a ser una cuerda. Entonces tenemos
número de departamento porque departamento debe tener números o
alguna forma de identificadores. Número de departamento, que
va a ser una cadena. También es importante. Entonces
tenemos el nombre de la empresa. Al parecer, la compañía
pertenece porque tenemos la
intención de
construir realmente un sistema que alberga
múltiples componentes Digamos que tienes un portal
como un HR, que en realidad distribuyó
a varias empresas. De hecho, esta será
una buena manera tenerlo una vez en el
sistema, administrando a todos. Entonces RC número de la compañía, creo que también es genial lo
tenemos bajo departamento. Entonces tenemos
también es la cuerda. Entonces tenemos dirección. Domicilio. Ahora estamos
pegando en alguna parte. Domicilio. Todas estas direcciones, solo
vamos a llevarte dirección. Ahora bien, no sabemos dirigirlo. Dejémoslo por
ahora. Volveremos. Entonces tenemos división, División. También tomaría división. La división es un um para nosotros, lo cual es importante
y esa será una división numisi,
división. La visión. Bien. Bien, entonces tenemos
RRHH. Hagamos ventas. Hagamos tecnología. A menos
que hagas atención al cliente. Creo que esto debería funcionar. Sí. A menos que tu
atención al cliente. Bien, esto es genial.
Esto es genial. Aún no hemos creado esto, así que volvamos. Entonces tratando de mantener el tiro, hemos podido
llegar a un hito. Volvamos en
el siguiente video y continuemos con la creación de
un pozo clave GAF entidades Nos vemos en el siguiente video.
21. Entidades en Graphql, parte 2: Bien. Gracias,
chicos. Nosotros regresamos. Así que hemos podido
dejar la empresa. Hemos podido dejar
el departamento, ¿verdad? Así que pasemos
a las siguientes cosas. Pasemos al siguiente. Así que recuerda que todavía
tenemos que hacer aquí, pero quiero que esto sea el último para que realidad no
apresuremos las cosas, ¿verdad? Quiero que esto se haga
realmente ordenado, para que puedan ver cómo se conecta
todo entre sí Entonces el próximo mi creación
es empleado empleado. Empleado. Entonces creador,
un empleado. Empleado. Recuerda, esto no tiene que
ser una letra mayúscula. Podrías simplemente definir
lo que quieres. Sólo me estoy apegando a,
podría simplemente seguir adelante. No crees que no
tiene por qué serlo. Simplemente puedes pegarte
a letras minúsculas y sigue funcionando igual. No tiene
por qué serlo. No tiene por qué serlo. Simplemente me di cuenta de eso. Vamos a crear una gráfica de empleados
QL empleado punto Gráfico QLs. ¿Y qué contendría ese
empleado? Nuestro empleado va a
contener algo más. Entonces lo que haría
es crear un empleado. Ahora bien, el concepto
que quiero introducir es que también estaríamos
creando un empleado, pero al mismo tiempo también, estaremos creando
un agente de subcontratación Entonces, ¿qué es un agente de subcontratación? Ya sabes, en cada organización, tienes cosas como el Viaje a ti tienes cosas
como un jardinero Tienes cosas como un Gatesman. Tienes cosas como si tuvieras disculpas a la
gente por
usar la palabra cosas Tienes gente como Conserje. Tienes gente
como el jardinero, como mencioné, tienes gente que es la
tintorería, ¿verdad Probablemente algunos oficinistas
que no son de personal completo. Entonces probablemente quieras
hacerlos subcontratados, ¿verdad? En realidad son seres humanos. Entonces quieres
hacerlos subcontratados. Ahora, ¿qué hacemos? Entonces estoy tratando de
seccionar las cosas. De hecho, tendría un
empleado que tenga pleno empleo y una persona subcontratada
que también sea subcontratada Entonces seguiré adelante y crearé también un individuo
subcontratado, lo
llamaré subcontratado Entonces es GAF QL. Voy a buscar el GAF Q LS. Bien, entonces ahora tenemos eso
porque en realidad se relacionaron. Son seres humanos.
Tendrán básicamente las mismas cualidades
juntos, las mismas cualidades. La mayoría de las cualidades
serían las mismas. Voy a seguir adelante y crear
una interfaz, ¿no? Bastante genial, ¿verdad?
Bastante genial. Bastante genial. Así que crea una interfaz. Ahora ya ves cómo estamos
uniendo todo, todo lo que hemos aprendido hasta ahora. Cree una interfaz de
persona de interfaz, y ¿cómo se verá la
interfaz de persona? Eso sería genial. Así que
solo crea una interfaz. Una interfaz llamada
per se la interfaz persona
tendrá un UUID, que es una cadena,
que es obligatoria, persona tendrá un nombre, aplicar todo el mundo tiene un nombre Entonces tenemos fecha de nacimiento, fecha de nacimiento, fecha de nacimiento. Bien, entonces esa será una fecha. Recuerda, si estás confundido de
donde vinieron estas fechas, recuerda que ya creamos
un escalar aquí, ¿verdad Por favor, no se olviden, chicos.
Creamos un escalar Y lo que mencionaste
es una fecha, una cita. Recuerda que mapeamos esta fecha
a qué fechas locales. Entonces, si en realidad no estás seguro, corre
rápidamente al XML de Pond. Recuerda cómo mapeamos esto para
mapear la fecha a las fechas locales. Bien, así que
procedamos, chicos. Entonces el siguiente,
vamos a tener un salario aparte todos
necesitan un salario, salario lo tomará
como un gran decimal. Recuerda, también
definimos esto ahí dentro. Entonces la persona
será una dirección. La persona en realidad
tendrá una dirección. Una dirección sería un empleado podría tener una o
varias direcciones, así que voy a usar una dirección DeTao que aún
no has especificado, justo en el mismo
caso que departamento,
luego siguiente parada, la de la
persona, la edad de la persona Para la edad de la persona,
usaré el int positivo. Modus los
ins positivos porque nadie puede ser negativo,
es un int positivo Creo que esto es una idea
bonita aquí. Entonces tienes un teléfono. El número de teléfono de la persona,
haz esta cadena. Haz de esto una cuerda.
Entonces la empresa la persona trabaja
para la empresa. Recuerda, este es un proyecto
que tiene que ver con múltiples empresas que
usan la misma app o que son administradas
por la misma app. Entonces, ¿la persona está activa? Sí, la persona está activa. Ahora, el siguiente. La pregunta no
sería aparentemente, necesitamos definir necesitamos definir necesitamos
definir
necesitamos más o menos definir el género de la
persona, ¿verdad? ¿No lo creen, chicos? ¿
La persona es masculina o femenina? Yo puedo um, y voy a
decir género género. Al parecer, tenemos macho
y tenemos hembra, ¿verdad? Entonces tenemos masculino, tenemos femenino, cuanto al género.
Entonces puedo entrar aquí. Vamos a ponerla antes del salario. Solo dices género, luego género o
lo haces importante, ¿verdad? Bien, ahora ya hemos podido crear
a la persona. Lo genial
que puede pasar entonces es que luego vamos a empleado,
nuestro empleado tipo
será empleado, recuerda que estábamos
usando un objeto DTO, DTO entonces implementaría persona Recuerda, como mencioné en los videos anteriores en video
anterior mientras estaba
introduciendo interfaz, cada vez que
implementas interfaz, es obligatorio que traigas
todos los campos aquí. Si no lo haces, obtienes un error. Y si ves esto, si
miras el error, dice, debes definir
uno o más campos, y está buscando todo lo que está dentro de la interfaz,
que es el nombre del UID, dirección, fecha de nacimiento y
todas las cosas así Tienes que traer todo. Tienes que llevarte todo esto. Todo esto y tráelo
aquí, y tráelo aquí. Ahora, entonces agreguemos un
par de cosas más. Cada empleado tendría una identificación. Tienes una identificación de empleado, genial. Las cosas se perfilan. Cosas para dar forma a los chicos. Entonces el
número de departamento Número de departamento, ¿
verdad? Debe ser una cuerda. Fresco. Entonces también tenemos correo electrónico. Entonces necesitamos el correo electrónico
del empleado y queremos conocer el rol
del empleado. ¿Qué papel eres? ¿Qué papel? ¿Qué papel eres? W es no
dejo que esa
opción por ahora, pero al parecer
debería ser obligatoria. ¿Cuál es el papel
del empleado? Entonces el rol del empleado, empleado tiene un rol y es pasante o
es supervisor, o es gerente o es el GND Dejémoslo
así, ¿verdad? Fresco. Corremos rápidamente a la subcontratación y llevemos esto Entonces vamos a la
externalización o simplemente decimos externalizar tipo externalizar tipo subcontratar
externalizar DTO,
luego traemos esto porque implementa persona, ¿ externalizar tipo externalizar tipo
subcontratar
externalizar DTO,
luego traemos esto porque implementa persona, ¿
verdad? Y más o menos, déjame comprobar, ¿qué deberían persuadir detalles
adicionales La persona también debe
tener una identificación, ¿verdad? Entonces llamémoslo
ID subcontratado, ¿cuál sería una cadena? Entonces deber, ¿verdad? Entonces tomemos el deber de la persona. ¿Qué hace la persona?
¿Qué hace esta persona? Entonces entremos en ellos
y creemos un deber. Al parecer, digamos que tenemos
un conserje en la organización. Tenemos una
organización electricista, y tenemos una barredora Dejémoslo de esta manera, ¿
verdad? Tenemos prueba. Esto es bastante genial.
Esto es bastante genial. Bien, chicos, siendo capaces definir
a nuestro
empleado, nuestra fuente. Creo que estoy tentado a hacer esto,
y esto es muy crucial, ¿verdad Recuerden, chicos, siempre
podrían ser consistentes con su comercio
o no los usan. Lo estoy usando intercambiable dijo que estoy colocando algunos no estoy colocando para mostrarte realmente
no tiene ningún efecto. Ya he dicho esta zona. Bien chicos.
Te veré en el siguiente video.
22. Entidades en Graphql, parte 3: Todo bien. Bien, chicos, hemos podido
crear todos nuestros DTOs Bueno, sin embargo, todavía
nos falta algo. Seguro que ya lo has
adivinado, el dirigido a ETO, que es algo que
es común a todos Tengamos dirección
DTL GraphQLSGQLS. Bastante genial. Bastante genial. Tenemos un tipo, dirigido ETO. DTL. Entonces tenemos un UUID. Una nota, chicos. Si te sientes cómodo conmigo escribiéndome haciendo esto manualmente, preferiría que
en realidad lo pegara. Esto puede simplemente seguir adelante
y saltar o debería decir avance rápido el video
para que no se vuelva aburrido. Personalmente disfruto lo
que estoy aprendiendo a través, estoy aprendiendo de mi individuo. Me gusta paso a paso
y escribir a lo largo. Simplemente me hace más
retentivo de esa manera. Por favor, haga lo que funcione
para usted. Todo bien. Sigamos adelante. Después ID de entidad. ID de entidad, ¿verdad? Recuerde, el departamento
tendrá una dirección, un empleado
tendrá una dirección, y el estadio subcontratado
tendrá una dirección,
tendría una dirección, y cada uno de ellos tendrá sus identificaciones específicas ¿Cómo sabemos que un empleado subcontrata la dirección del
departamento Esto en realidad está mapeado
por su ID de entidad. El ID de entidad
será la clave foránea. Se podría decir la clave foránea, usando el mapa a la dirección. Muy cool. Todo bien.
Sigamos adelante. Entonces tenemos las calles. Tenemos la calle, calle, cada dirección tiene una calle. Entonces tenemos una ciudad
tienes una ciudad ciudad ¿
perteneces o ciudad? ¿Eres Nigeria Legas US, estás en Canadá, en Canadá? ¿Estás en We country
la ciudad más grande? Entonces cadena, que son los
estados, el estado al que perteneces. Después el Zip cut Zip cut. Bien entonces el código postal, estoy tentado a querer usar
un int positivo aquí, ¿verdad Pero me voy a quedar
con lo básico que es solo una idea ver
la razón más adelante. Bien, cuando empezamos a
ser validaciones, si usas ints positivos, queremos hacer algunas
validaciones Por eso me estoy
apegando a esto. Todo bien. Vamos a
revisar rápidamente nuestro departamento. Fresco. ¿No más error, empleado? Fresco. No más errores. Subcontratar. No más
errores. Entonces estamos bien. Esto se supone que debe ser
externalizado Curc subcontratado. Entonces este código. Tenemos todo esto definido correctamente y no
tenemos ningún error. Hemos podido
definir todos los datos,
todos los la entidad,
todos los detalles de Graph Kalent
que realmente adquirimos El siguiente paso ahora es
comenzar a buscar con atención los tipos de entrada que
se tomarán para cada uno de estos Bien, chicos, los
veré en el siguiente video.
23. Entrada de entidades en Graphql: Bien, gracias
chicos por regresar. Bien, así que hemos hecho
algo muy increíble. ¿Qué hemos hecho? Hemos
sido capaces de crear las NCDTU GAF QL Ahora, estoy tratando de explicar nuevo para que
también podamos atrapar esto. Recuerdo mencionar
que este departamento, este departamento habría
sido Departamento Departamento DT. Pero sin embargo cuando
empezamos a crear los tipos de entidades JPA, ¿verdad? No queremos los nombres
contradictorios, así que ahora tenemos que definirse el nombre completo para saber a qué
se refiere Esto facilita
las cosas fácilmente para nosotros. Crearemos entidad JPA. Por lo que ahora se utilizará
dentro del proyecto para interactuar
realmente
con la base de datos. Mientras que para esto, estos serían
nuestros objetos de transferencia de datos. Pensé que estaban
separando las cosas. Sólo pensé que
debería mencionarlo. Bien. Antes de continuar, creo que es genial
que en realidad ejecutemos esto. A ver si algo funciona
y no se rompe nada. MVN compilar. Entonces veamos, esto está pasando
y veamos rápidamente, ¿tenemos algún error?
A ver, no. Entonces no tenemos errores. Rápidamente echemos un
vistazo a uno de ellos. Vamos a verificar la compañía, entonces podemos seguir adelante. Todo bien. Entonces, ¿cómo se ve
nuestra empresa? Empresa DTL. Impresionante,
como puedes ver. Tienes todo
deletreado y nosotros
tenemos nuestro m creado, que es este es código Este es código es código. Todo bien. Hemos sido
capaces de hacer esto. Procedamos con todos los tipos de
IP que adquirimos. Empecemos con la estrella de
Cone con Coney y veamos el tipo de IP
que realmente adquirimos Bien, entonces vamos a
estar amasando para compañía, vamos a estar
amasando insumos de la compañía La entrada de
la compañía serán los datos que usaré para usar para obtener
realmente los datos. Recuerda explicar
esto con mucho cuidado chicos que no puedes usar tipo. No se puede usar un tipo graph quo dentro como entrada,
se quejaría. Yo les mostré chicos
antes en los videos, pueden
consultar en los videos
anteriores que estamos pasando por los datos o
la sección de tipo de datos, estamos viendo la base, les
mostré chicos cuando
estamos viendo la consulta la mutación en la suscripción,
los tipos básicos. Les mostré chicos, por favor
tengan esto en cuenta que
puedo usar un tipo de ahí
necesitamos una entrada, que tiene que llevar
esta entrada de palabra clave. Llámalo una empresa Imput. Empresa imputa. Cool Coty fresco. Prácticamente casi se
necesita lo mismo. Yo sólo voy a copiar esto. Por favor,
no hagas esto en casa. Tienes el nombre, número de RC, la oficina central, el país y el tipo de negocio. Esto es bastante genial.
Esto es bastante genial. Ahora que hemos podido
hacer esto, esto es genial. Esto es genial.
Tenemos la Imputa Ahora, a continuación,
revisemos por departamentos. ¿Qué
requiere el ingreso para departamento? Es de la misma manera, solo puede tener
insumos y departamentos. Imputa. Alguien podría decir, ¿por qué el
separado en
carpeta separada no coloca tu elección Se puede hacer eso y
nada se rompería. Se puede separar. Sólo estoy tratando de
agrupar las cosas juntas. Bien, ¿qué
necesitarías aquí? Sí, creo que haríamos esto el nombre, número de
departamento, nombre de
la empresa, número de RC,
dirección y división. Ahora, mira esto. Dice que el ajuste de tipo
no es un tipo de entrada. Esto es bastante genial. Me encanta Graph QO. Son consistentes. Incluso si define
un tipo de entrada, no
debe usar
un tipo dentro de él. El subcampo o nido también
debe ser un tipo. Esto tiene que ser un imput que
vamos a llamar a este imput. Adjustimput.
Volveré a ello en un rato. Corramos, corramos rápidamente
a empleado, empleado. Qué tipo de imput
vamos a estar esperando que
digas imputar empleado imputa Empleado imputa. Todo bien. Cody genial. Entonces
necesitaría visitar todo. Necesitamos visti todo. Vamos a estar seguros.
Recuerda esto también se quejan porque esto tiene
que ser un puesto de direccionamiento. Solo arreglemos eso rápidamente y vayamos a construir eso una vez que estemos allí. ¿Verdad? Oh, se está quejando ¿Cuál es la dirección? Así que recuerden, chicos,
este símbolo que uso, ya les
dije cuando
vean este símbolo, ya
saben, es una lista. Entonces a qué me refiero, estoy
diciendo que al menos debes pasar una dirección en
puesto puede ser una o más. En el momento en que hago esto, significa
que adquiero más de uno. Pero lo estoy restringiendo para decir, solo
necesito una entrada
pero si quieres
pasar múltiples direcciones
al mismo tiempo, oh, sí, puedes hacerlo Todo bien. Entonces esto
es genial. A ver. Tienes un nombre, databd,
género, salario, dirección, borde, el teléfono, el teléfono,
entonces el nombre de la empresa
es una persona activa Creo que podemos hacer
esto por defecto. Puedes hacer esto
activo. Activo puede ser por defecto, así que
podemos sacar esto. ¿Qué pasa con el nombre de la empresa? No creo que necesitemos el nombre de la
empresa porque
vamos a estar sumando número de
departamento. Del departamento,
deberíamos ser capaces de
inferir nombre. Creo que eso tiene
sentido, ¿verdad? Bastante genial. Entonces
tenemos el correo electrónico. ¿Verdad? Tenemos el correo electrónico
y tenemos el rol. Podría simplemente seguir adelante
y también quitar empresas para hacer las cosas un poco
más simples, ¿verdad? Mientras estamos desarrollando
si vemos el met y vemos el si
definitivamente volvemos a ello. Bien, entonces definimos
el tipo de imput. Quiero seguir adelante y agregar un
tipo de imput más para empleado Digamos que queremos actualizar
al empleado, ¿verdad? Empleado buscado. Por lo tanto, las entradas de actualizaciones de empleados te
permiten actualizar la entrada. Yo querría usar digamos al parecer necesitamos la identificación
para identificar al empleado. Digamos que queremos
actualizar el salario. Digamos que queremos que haya un desajuste con la edad de una persona y necesitamos actualizar la edad. Bien. Y finalmente,
persona consiguió un ascenso. Hurra. Agreguemos el papel. Entonces el rol, pbitra de intención a supervisor
o lo que tienes Bien. Así que en realidad hemos sido
capaces de hacer
esto con éxito. Bien, esto es genial. Entonces vayamos a la
subcontratación, ¿verdad? Vamos a subcontratar, ¿verdad? Para externalizar, prácticamente
solo tenemos lo mismo. Voy a sólo figuys detalles
en esta parte luego tipo. Ya lo he definido en otro lugar así que
solo tráelo. Nuestro tercerizado imputa,
comprobamos el nombre,
la fecha de nacimiento, el género, el salario, la dirección, la edad, la forma De igual manera, no especificé el nombre de la empresa porque lo
hacemos dinámicamente. Entonces no especificé que
la persona está activa porque ésta
estará activa por defecto. Entonces tenemos el
subcontratado y el deber, el deber del empleado
subcontratante. Ahora, no he definido esto. ¿Qué más necesitaríamos? Creo que después definimos
otras cosas. Por último, estoy seguro que ustedes han estado con ganas de saber cómo se verán las entradas de dirección. Vamos a entrar ahí.
Puedo entrar aquí, tipo de
aplicación Entradas
y entradas de dirección Esos tipos deberían
estar felices ahora mismo, sólo
vamos a tomar
esas mismas aletas. Abordar putes. Ahora para los Putes de dirección, vamos a tomar
el ID de entidad,
calles, ciudad, estados,
y el código postal, ¿verdad Creo que voy a
necesitar UID también, ¿verdad? Porque si voy a dejar de fumar, no
puedo crear una identificación. No puedo No puedo crear un UID, una dirección en aislamiento Bien, tomemos una
identificación. Tomemos UID. Voy a ver cómo se desarrolla eso. Y eso también será una cuerda, pero lo haré
obligatorio, ¿verdad? Voy a hacerlo
obligatorio. Bien, entonces, chicos, en realidad hemos sido
capaces de hacer esto. Ahora, vamos a confirmar rápidamente. Este tipo departamentos, este tipo no
sonríe, no más error. Este tipo no
sonríe, no más error. Este tipo no
sonríe, no más error. Muy bien, los chicos deberían cojo para definir nuestros tipos básicos de computadora Te veré en el siguiente video.
24. Entidad Jpa de la empresa: Gracias por regresar, chicos. Alguien ya está preguntando. ¿Cuándo vamos a
crear los tipos JPA? Estoy muy enamorada de JPA. Yo voy a hacer esto. Todo
bien. Aquí está el momento. Vamos a crear los tipos de JPA. Llamemos a esta entidad. Llamar a esta entidad,
llamar a esta entidad. Y básicamente comenzar con
el primero. Yo lo llamaré la entidad de la compañía. Entidades de la empresa,
llámela Empresa, ¿verdad? Todo bien. Pongamos
toda la JPA Shenaniga Entonces quiero mi agata. Estoy usando Lombok. Quiero a
mi setter Asta, setter Entonces quiero a mis entidades. Muy clave, mi entidad entit. Bien. Entonces quiero mi mesa t, verías Y en
los pedacitos, ¿verdad? Entonces quiero darle también a esto
un nombre a tablas el tema. Sí, entonces quiero mi nombre. Entonces quiero llamarlo empresa. Esto funciona. Entonces voy a estar definiendo algún conjunto
de índices, ¿verdad? Mírelo brevemente. Bien, ¿qué contiene
mi compañía? Justo lo mismo que hemos
hecho por los demás. Entonces vamos a
tener otros para la empresa DTU que quise
decir en una gráfica asesinos Voy a tener UID. Entonces llámalo ID, UID. Tenemos UID, UU UURD. Entonces vamos a tener un nombre. Vamos a tener
creo que el número RC sí. Vamos a
comparar enseguida. Cadena privada, número RC. Voy a tener
una oficina central o
una oficina central ubicada en
deliberada una cadena Va a ser una oficina central
crítica. Entonces vamos a tener la recitación del país,
es el país ¿Correcto? Vamos a tener el tipo de negocio, tipo de negocio
privado. Recuerda, usando este
negocio directamente desde el GAF KL ves
lo que viene adentro, ¿verdad Tipos de negocios, no
tengo que crear algo diferente voy a llamar a
este tipo de negocio. Entonces voy a añadir dos detalles más.
Digamos un privado. Pongámoslo marca de tiempo, ¿verdad? Una marca de tiempo, lo llamaré una la marca de tiempo
debería ser Java SQL, voy a haber creado
cuando se creó Esto va a ser
por defecto. Podemos simplemente seguir
adelante y hacer una nueva marca de tiempo y usar nuestro sistema de
sistema quarnt Esto funciona. Entonces
vamos a tener actualizado pero esto no
tomaría nada. Así que no tomes nada.
Ahora, estos tipos se quejan así que los arreglamos Primero que nada
arreglemos si no hemos hecho nada malo, voy a abrir esto
del lado derecho. Este es un UUID cool. Ahora estamos haciendo una conversión de ida
y vuelta
entre el UID a una cadena Esto está bien. Aquí hay una cadena, aquí hay un UID, así que está bien Entonces tenemos el nombre, tenemos el número RC, país de la
oficina central. Tipo de negocio, y agregamos
estos dos detalles adicionales. Bien, genial. Todo bien. Mira a este tipo quejándose, empiezas a
cerrar en minutos Entonces este tipo, disculpe, eres compañía solo
aguanta. Te vamos a arreglar. Hemos generado valor a valor generado
a valor generado, entonces tenemos una estrategia. Cuál es la estrategia
generar tipo, UID. Ves un esto empezará a caer o
procedamos por el nombre. Quiero darle una columna, solo
quiero decir
nullable, volverse nullable Después el siguiente, quiero el número RC. Quiero la columna
también, anulable primero, luego vamos a darle
digamos número RC ¿Conozco longitud? Digamos que bien.
Largo, sólo le doy 20. Ahora, veo que algunas personas siempre
colocan cosas como NN aquí. Coloca un nN aquí y
me dejas usar esto como ejemplo. Veo algunos individuos,
van a entrar aquí. Incluso después de colocar esto, ahora
harán algo como este nombre y pondrán esto como nombre. Esto no es necesario. El momento en que lo
que estás definiendo aquí
va a ser exactamente
lo mismo que esto, no cuenta. La única vez que desea
utilizar estos atributos name es para asegurarse de que lo que
quiere guardar en base de datos es diferente
de lo que tiene aquí. Me encanta de esta manera, así que
esto va a funcionar. Ahora para esta parte, este
va a ser un caso Snake. Esto se
generará automáticamente. En realidad sería algo así
como el número de SNC LCScoe, y este es exactamente
el comportamiento Es decir, estoy agregando cualquier atributo
aquí. Entonces esto está bien. Entonces la oficina central, la oficina central, solo
voy a hacer
lo mismo, no debería ser nulo. Entonces país solo
hago lo mismo, país no debería ser conocido. Entonces probablemente solo
dale porque
busqué el
país más largo del mundo. Descubrí que era bastante largo. Por eso estoy dando un 56. Probablemente estés viendo el video de esa compañía. Entonces para los crea Tsaps, no
creo que tenga que
hacer nada aquí Vamos a encargarnos de
esto especialmente. Entonces para esto, tener unas
fechas creadas en fechas de creación. Esto funciona para mí. Este
en las últimas fechas modificadas. Bien, esto
funciona. Ahora hay algo mal con mis
getters y setters. ¿Bien? Creo que verás
tener algunos errores. Entonces, ¿cuál es el error aquí? Diciendo atributo
no permitido aquí. Al parecer debería
haber algún tipo de error. A ver. A ver
vamos a ver, veamos, ¿qué
he hecho mal? Entonces, ¿tienes a mi creador eso? No, no voy a llegar a
esta final. Bien. A ver. Entonces tenemos esto. Bien,
déjame seguir adelante y ser definitiva. Atributos,
entonces volveré. En index, voy
a tener ese índice. Entonces el nombre al
que quiero llamar lo
llamaré índice de nombres
porque recuerden, van a estar usando
varias empresas. Entonces el nombre debe ser único. Entonces no quieres
tener una empresa con dos diferentes con
el mismo nombre. Entonces voy a hacer esto como nombre.
Entonces quiero que sea único. Cierto. Cada nombre
debe ser único. También podría entrar aquí y colocar aquí la figura única. También podrías hacer esto y colocar único por aquí, pero
acabo de definir aquí. Entonces, o lo estás usando nivel de
método o el nivel de
clase es el mismo, lo
estás usando aquí,
entonces funciona igual. Entonces en segundo lugar,
voy a entrar aquí, y voy a añadir como índice. También necesito otro índice. Ahora, coloco este RC
en el número de puntaje. El número RC también quiere que sea muy único, muy único, luego lista de columnas, luego
RC en el número de puntaje. Ahora, ya ves por qué estoy usando
esto porque esto va a coincidir con lo que
va a ser el nombre de la base de datos
porque va a ser serpiente. Por eso lo estoy
igualando aquí. Si no haces lo mismo aquí, vas a tener un error, y también quiero que
sea único, claro. Descubrí mi error, no agregué el símbolo del
arte aquí. Es por eso que
todos nos estábamos quejando, coloque el comme quitarlo también. Todo
básicamente sale bien. Pido definir
detalles y esto es genial. Esto es genial. Sólo
una nota final. Recuerda lo que uso índice. Los índices, aunque los índices
ocupan más espacio, pero aumentan la legibilidad cuando estás leyendo desde
la base de datos, ¿verdad Pero viene a un
pequeño costo de gastos generales. Cuando seas creado, tu creación va a ser
un poco más lenta, pero creo que eso es
básicamente lo que es. Los veré chicos
en el siguiente video.
25. Entidad Jpa, parte 2: Oigan, chicos, gracias
por volver. Hemos sido capaces de
crear la empresa. Ahora avancemos
a los departamentos. Hagamos departamentos. Departamento. He podido
cubrir la mayoría de lo básico. Simplemente sigamos adelante con
esto. ¿Qué hice? Yo creo fier en lugar de,
yo no era la intención. Clase Ijarro, ¿verdad?
Departamentos, ¿verdad? Bien, entonces lo mismo. Entonces voy a seguir adelante y
crear departamentos. Entonces departamento,
al parecer, estoy seguro que básicamente voy
a tener
los mismos detalles, así que déjelo solo estresarme
y solo traerlo, bien. Todos estos detalles
serán muy importantes. Yo sólo lo traeré. Bien, entonces puede entonces
crear los otros. Bien, por favor
no copie y pegue. Los males de copiarlo y pegarlo podrían llevarte a problemas
inesperados Bien, entonces tenemos esto, entonces también podríamos tener privado Cadena, luego
número de departamento, número de departamento. Esto es genial. Ahora tenemos esto también
hacerlo
falso cognoscible porque aprendiz
es muy, muy importante No debe conocerse. Entonces, ¿qué más? Déjame
simplemente hacer mis datos rápidamente. Mi en el mar, mi entidad,
luego una mesa. Al parecer va a nombrar algunos
detalles, darle un nombre. Nosotros lo llamamos departamentos. Letras minúsculas, departamentos. Entonces también quiero mis índices. Después en el índice. Creo que uno solo serían dos aquí. Entonces solo di el nombre. Entonces estaría teniendo vamos
a llamarlo profundidades en la partitura ven ya ves en el código que
será el nombre de la empresa, luego el número RC y
el número de departamento. Simplemente puedes
darle algo único como raro funciona. Bien, ten esto. Entonces tenemos el nombre de la compañía
nombre de la compañía. Recuerden que así fue
como definimos esto. Voy a cred este momento
compañía en el nombre clave s. Entonces tenemos el número RC. Esto es muy importante,
chicos. Número RC. Entonces finalmente, tienes número
de departamento. Departamentos en el número scud. Entonces va a
ser único a través de. ¿Ves por qué
se queja? no
puede encontrar nada de
eso. Hagámoslo funcionar. Ahora que hemos definido
esto debería bajar, entonces creo que no quiero
confundirme, solo
entremos aquí
y partamos a la derecha. Tenemos UUID, el nombre, el número de departamento, el la empresa,
el nombre de la empresa Haz esto. El nombre de la empresa. Solo diré el nombre de la compañía de
cadena privada? Fresco. El nombre de la empresa, creo que funciona lo mismo. Después el número RC,
defina el número RC, luego la división, la
división de división. División, habrá
una división privada. División división, división de
división para agregar esto. No, no
necesita ninguna adición, pero podría darte la longitud. Estoy esperando la longitud. No quiero
simplemente dejarla abierta. Voy a agregar una longitud
de 20 nollable be force. Ahora, ¿qué estoy usando esto
como 20? Ahora, mira esto. Si se cuenta esto, esto es uno, dos, tres, cuatro, cinco, seis, siete, ocho,
nueve, diez, 11, 12, 13, 14, 15, 16. Este es el más alto
que tenemos s para espaciar esto ahora hay una mejor
manera que podrías haber hecho es reducir el
número de caracteres. Echa un vistazo a mis otros costos, que es modult de primavera que
en realidad define eso Para esto, creo que solo
quieres que sea sencillo, así que tenemos esto
y te voy a mostrar cómo navegar o casar la división para casar
realmente un num directamente en base de datos, no
tienes que colocar
ninguna notación especial aquí, como enumerado y como no, no
necesitamos que
hagamos algo mejor Lo mismo también necesitamos esto quiero saber
cuando se creó, quiero saber cuándo
se modificó. Bien, así que
básicamente funciona. ¿Por qué se quejan, chicos? Tenemos número de departamento
que coincide con este, lo siento, esto no debería ser. Es una lista de columnas y
todo debería ser solo una. No es una matriz de cadenas.
Es sólo una cuerda. Si lo miras,
es solo una cuerda. Todo debe estar en una parte en
particular bien. Sí. Bien, así que somos
capaces de crear esto. Vamos a avanzar rápidamente y crear un ¿Me falta algo? Sí, me falta algo. Esa debería ser una fecha de creación. Una fecha de creación. Eso funciona. Así que sigamos adelante y creamos a
nuestro empleado empleado. ¿Eres el empleado
del mes? Averígualo. Empleado, ¿verdad? Entonces tú eres el
empleado. Entonces viendo que podría ser
un poco demasiado aburrido, así que solo voy a seguir adelante
y solo crear esto. Solo agregaré esto
y les mostraré a
ustedes lo que he hecho. Este pase tu paso y solo
voy a hablar esto. Bien, así que comparemos. Bien, empleados, tenemos
el UUID, tenemos el nombre. Tenemos la fecha de nacimiento. La fecha de nacimiento es la fecha local. Recuerda que eso es lo que
en realidad
lo casamos con fecha local. Entonces esto funciona. Entonces
tenemos el género. Ahora bien, ¿por qué estoy usando
el género como seis personajes? Si revisas el género,
cuando creas un género, si saltas aquí, no
puedes hacer clic. Verás, esto es seis. Si contamos uno, dos, tres, cuatro, cinco, seis, así
es por eso que todavía tengo seis. Entonces, usar seis
realmente tendría sentido. Ambig decimal es un salario, entonces tinta es la edad, luego el teléfono como supongo que
solo estoy chequeando cos, luego el nombre de la empresa, luego activo
lo están haciendo por defecto, ¿verdad? Es por eso que say no
colocó nada en las entradas porque
al parecer el activo va a
ser verdadero por defecto. Entonces tenemos la identificación del empleado, el número de departamento,
luego el correo electrónico, ¿verdad? Y por último, el
papel. También para el rol, si se comprueba cuál
es el rol máximo, el conteo es el más largo que
tenemos si cuenta, tenemos uno, dos, tres, cuatro, cinco ,
seis, siete, ocho, nueve, diez, y por eso
tenemos diez aquí, y luego coloco estos
otros detalles en. Creo que eso funciona
muy bien. Eso funciona muy bien. Entonces creo que también podemos hacer subcontratar
rápidamente, ¿verdad? Externalizar. Subcontratar, ¿verdad?
También necesito suspenderlo. Por último, mira el
nombre de esta empresa que coincide con el nombre de la compañía. Recuerda el caso de huracato.
Esta N mayúscula, vamos a subrayar
la letra minúscula N. Entonces la identificación del
empleado coincidirá con esta es una letra mayúscula para que coincida
con el caso de adelanto, el número de departamento en realidad
coincidiría con esto Vamos a subcontratar.
Por lo mismo, ya
he hecho esto también, solo trae esto
y agrégalo aquí. Todo bien. Vamos a
comparar las divisiones ¿verdad? Todo bien. Entonces,
también vamos a traer esto. Bien. Todo bien. Entonces como pueden ver,
el nombre UID nombre, fecha de bits,
género, salario, edad, compañía
telefónica es ID activa, el deber entonces creó
ahora lo mismo aquí, se
puede ver un comminum musical
y yo estudio y también estudio caso serpiente porque aquí es mayúscula.
Todo bien. Entonces esto es básicamente
lo que necesitamos. Y finalmente, necesitamos nuestro chico el tipo que nos está
dando errores también, incluso en el Grafeno
que es la dirección, dirección es la dirección Dirección simplemente muy sencilla. Simplemente finalizamos esto
y solo lo agregamos. Dirección tenemos una dirección aquí y quiero
colocar algunas etiquetas aquí. Bien, bastante genial, muy genial. El índice, en realidad estoy diciendo que esta ID de entidad debe ser única. Lo siento, no es único. ser el indep porque vamos a
buscar por él, ¿verdad? Recuerda, cuando
creamos a nuestro empleado, empleado podría tener
más de una dirección. Eso es que no estoy haciendo
esto único, ¿verdad? Esto es bastante genial coincide. Esto en realidad coincide con esto. Si ve, también estoy diciendo que también
estoy diciendo las calles. Entonces se puede decir que
tiene dos direcciones, y la calle es la misma.
No puede ser lo mismo. Es decir, te refieres
a la misma casa, y por eso me la estoy
enamorando aquí. Espero que esto realmente
funcione, chicos. Así que voy a volver y voy a hacer alguna explicación extra
en la calle. Los veré chicos
en el siguiente video.
26. Por qué no usaremos relaciones de entidades en JPA: Oigan, chicos, gracias por
volver. Todo bien. Quiero hacer alguna explicación en torno a esto y particularmente
en torno entidad subcontratada
patrona nossa Graph calzor Estoy usando una lista aquí, Una lista de entrada debería ser una lista. Una lista contiene uno o más. Entonces ahora Sasa, estoy
usando una lista aquí. Pero si ves por aquí, no
estoy usando nada como eso, ni siquiera
estoy incluyendo la dirección del
empleado en absoluto. Aquí mismo, nunca voy a
presentar dirección en absoluto. Pero esta parte aquí, entonces
tengo mi dirección separada. ¿Por qué es que no tengo una relación que podría haber
hecho a la vez muchos años? A en muchos, y podría
haber hecho muchos a uno, escribiendo relación en
relación con las otras entidades. Entonces tienen ese
tipo de relación. Bueno, la cocina básica es que
si estás familiarizado con JPA, JPA tiene una sobrecarga cuando en realidad
estás
creando cuando
tienes una entidad cuyo
elemento hijo es ahora mucho Digamos que ahora estás
tratando de recuperar una entidad y el elemento hijo probablemente sea
como 50 o 100 o más El problema con eso
es que corta una sobrecarga. Hay una sobrecarga, y
es un rendimiento intensivo. Entonces empiezas a tener que
pensar en usar cosas
como tal vez buscar tamaño, bien, o tu lote 50 Entonces esa es una manera de
truncar, ¿verdad? Entonces, lo que significa que no obtendrás
todos los datos en alt. Entonces yo por otro lado, no
creo que sea
yo personalmente esto es personal esta es opinión
personal no
es ideal para
todos, ¿verdad? Personalmente, me gusta
manejar mi lógica yo mismo donde separo
las cosas limpiamente. Entonces tengo alguna forma de relación entre
cada entidad. Es por eso que ve
este ID de empleado se traduce a ID de entidad aquí. El departamento para
el departamento, se ve el
número de departamento también se traduce al ID de entidad aquí. Lo mismo para
la externalización, también estudio se traduce
al ID de entidad aquí Entonces, lo que ese usuario
literalmente hace por mí es que solo puedo llamar a
entidad cuando la necesito. Puedo llamar a un empleado, me origen stor departamento
cuando lo necesite. Entonces cuando necesito la dirección, puedo tirar perezosamente. Entonces de esa manera, no me carga al sistema. Yo
sólo lo llamo a voluntad. Ahora, tómalo de la
instancia de una interfaz de usuario. Digamos que en
realidad estás llamando a una interfaz de usuario. Si realmente estás en una interfaz de usuario, no la llames si estás
en una interfaz de usuario, ¿verdad? Y vas a buscar la
lista de entidades. Ahora, es sólo idea que no
devuelvas todo a la vez. Sólo regresa a Yentis solo. Entonces por cada
cosa que hagas clic, se realiza
otra llamada
al back end para luego buscar la dirección. Hay varios diseños
justo alrededor de esto. Pero esto es solo mi preferencia, y por eso lo estoy
presentando a. De ninguna manera, utilizo todos los tipos de
entidad relación, la de uno a
uno demasiados, y funciona muy bien. Pero solo necesitaba
hacerlo de esta manera para señalar
algunas de las Hecas Entonces, si es algo y
tu empresa quiere adoptar, es algo que
quieres probar personalmente. Pero al menos, has
visto que hay un camino en el que puedes usar la
relación y funciona. Este tamaraam que te muestra otra forma en la que
podrías simplemente conectarte y conectar
manualmente estos detalles solo significa que tienes que
hacer más trabajo Tienes que escribir
más código de bajo nivel, pero te da un mejor control cuanto a cuándo buscar
y cuándo no buscar Pensé que
en realidad debería mencionar esto, Esto es muy clave en el futuro, así que
en realidad no compruebas esto. Habrá lista año,
¿cómo es que estoy viendo? Ni siquiera
lo encuentro en este año. Porque recuerden, en realidad estamos
atando de hecho encuentro esto que esta clave aquí realmente entra aquí para ser las claves una clave foránea aquí necesitaría. Entonces los veré chicos
en el siguiente video.
27. Convertidor de Enum: Oigan, chicos, gracias
por volver, ¿verdad? Entonces me he metido en
checar este Git upp. Recuerda que todo
está disponible. Lo estoy registrando con
problemas con temas. Entonces, si estás familiarizado
con GitHub, el momento en que realmente
termines tu trabajo, podrías atarlo a un problema, y el número de problema simplemente se cierra y
realmente ves trabajo, ojalá, lo mostraré antes de que realmente
terminemos esto. Todo bien. Ahora, en este video, queremos
hablar específicamente del convertidor num. Tenemos alrededor de cuatro nums
que hemos definido, ¿verdad? Entonces, si nos fijamos en los ums, tenemos un
tipo de negocio. Tenemos división. Tenemos papel, y
tenemos deber, ¿verdad? Tenemos deber. Y creo que también
tenemos uno
húmedo cinco, ¿verdad? Género. Entonces, ¿cómo hacen estos num? ¿Cómo se
traducirían a la base de datos? Entonces no tenemos ningún problema como si estás usando cosas
como un enumerador, tienes que empezar dependiendo
los dns y los likes, que si agregas otro
num tendrán problemas Entonces esa es una experiencia aquí. Entonces lo que vamos
a hacer es muy sencillo. Entonces voy a
crear un nuevo paquete llamado num converter. Voy a llamarlo vamos a
llamarlo paquete, un paquete. Llámalo um convertidor. Entonces voy a recoger a todos y
cada uno de ellos y
mostrarles cómo se hace. El primero, hablemos del tipo
de negocio, ¿no? Vamos a traer el convertidor de tipo de
negocio. El convertidor de tipo de negocio. Ahora bien, una buena manera de hacerlo, nos ha proporcionado
algo deliberadamente de la asistencia de
Jacara,
que es un convertidor de atributos, que es un convertidor de atributos, y esa es una forma de convertir
tu num a la base de datos
o base de datos de nuevo Entonces, ¿
implementarías lo implementarías? No, esto no. Estos no
son para completar. Convertidor de atributos. Convertidor de atributos. Sí. Entonces
queremos esto de los negocios. Esto es suma de lanza. Entonces
simplemente implementamos el método. Y como puedes ver, lanzas convierten a
columna de base de datos, convierten a entidad Por lo que estamos convirtiendo
el tipo de negocio a una base de datos col
va a convertir de nuevo. Entonces el para fluir, ¿cómo se
manejaría?
¿Es lo que vamos a hacer? Entonces para evitar
también usar cualquier otra anotación extra
en nuestras entidades, tomemos, por ejemplo, para la empresa, donde necesitamos negocios, usarlo así simplemente
funcionaría Tenemos que añadir esto. Tenemos que agregar esto en
convertidor, Auto aplicar a través de. Cuando aplicamos automáticamente
a través lo
hacemos detrás de escena.
¿Qué queremos hacer? Si el tipo de negocio, ¿cómo queremos convertir
a columna de base de datos? Es muy sencillo. Solo haz atributos,
que es un nombre de punto. Recuerda, ya atienden,
si miras esto claramente, ya atendido para
el tipo de negocio, creo que
me perdí
algo muy clave aquí Me alegro de haberlo comprobado. Esto habría sido un problema. Quiero especificar la
longitud máxima ¿Cuál es la longitud
máxima? Este es el más largo de
uno a tres, cuatro, cinco, seis, 789. No quiero
dejarlo abierto. Si lo dejo abierto terminado, se
verá como una cuerda, y voy a tomar una columna 256. Yo sólo voy a entrar
aquí, cognoscible cae y sólo te daré
la longitud de diez, verdad, que es
lo que tenemos aquí Esto es diez. Dije nueve personajes. Diez es suficiente. Diez
deberían cubrirlo todo. Esto funciona. Esto
funciona. Todo bien. Con esto, siempre que
realmente hagamos un guardado en
la base de datos, se convertirá y
comprobará el nombre. El nombre y usar este nombre exacto y guardarlo en la base de datos. El está
regresando, ¿cómo
debería convertir?
Vas a definir. Lo que voy a
hacer es, recuerda, en realidad
vamos a llamar a
esto está bien. D datos. Datos de base de datos, entonces podríamos
hacer una cadena de puntos matrices, luego pasar en los valores de punto
de tipo de negocio. Tipo de negocio el
valor, ¿puedes ver que nos
da una matriz Por el tipo de
valor de los usuarios, entonces yo diría, vamos a filtrar. Vamos a filtrar. Dije este tipo,
este tipo de negocio, este negocio este
tipo de negocio puntos nombre, ¿verdad? Punto es igual a ignos case, lo que significa que es igual
a estos datos DB Entonces, lo que viene de DB
debe ser igual a esto. Si eso es así, encuentra la
primera ocurrencia. Bien primero. O de lo contrario. O bien, vamos a lanzar un error. O bien, vamos a mostrar. Vamos a mostrar vamos a lanzar una
excepción de argumento ilegal entonces yo, ¿verdad? Hagamos esto. Hagamos esto,
¿verdad? Hagamos esto. O bien cierto, perdón, se cierto. Claro. Pequeña palabra verdadera. Bien. Ahora, no se preocupe por manejo de
excepciones o
vuelva a él y elimine esto y use nuestras propias excepciones
personalizadas cuando
lleguemos a esa sección. Vamos a ver esto por ahora. Bien, entonces para la división, sigamos adelante por la división. división, tipo de
división o división, convertidor de
división. Seamos consistentes, convertidor
de división. Entonces, lo mismo, en realidad
pasamos por
lo mismo. En esta ocasión, me
parece que va adelante. Entonces solo para implementar
actubt converter, entonces tenemos división División, es una cuerda. Queremos que sea una cuerda. Cuerda. Entonces en convertir
para aplicar en conversos, auto apply a través de la lección implementa todo este método. Ahora bien, esto es muy
sencillo elegir los atributos nombre del punto. Preferí nombre a la cadena, esta, lo mismo,
justo lo mismo aquí, males de copiar y pegar Tengan mucho cuidado aquí, chicos, lo
contrario tienen un error. Yo sólo copio y pegando. Entonces esta vez alrededor de esta
división necesito aquí. Divisiones sólo lo llamo Div. Dev Aviation, esto funciona muy bien. Voy a quitar el cielo. Todo bien. D con eso. Pasemos al deber. Recuerde, el deber es para
los agentes subcontratados. Convertidor de servicio,
¿verdad? Convertidor dt. ¿Por qué llamo a este tipo? Tipo de negocio tipo de negocio. Deber, luego implementa convertidor de
atributos. Entonces tenemos el
deber, luego una cadena. Luego convierte auto apply
a través de luego implementar todos los métodos. Me encanta la primavera. Me encanta inteligente solo
todo este auto, autof. Entonces lo mismo aquí, vamos a hacer
lo mismo. Recuerda, males de
copiar y pegar, haz lo mismo excepto
que sabes lo que estás haciendo Entonces necesitamos deber
aquí códigos deber. Deber deber, y nosotros lo hicimos. Nos movemos esta parte. Después, a continuación, vamos
al convertidor de género. Convertidor de género,
¿qué deletreé? Esto no es correcto, Ezequiel. Convertidor género género, tener implementos convertidor de
atributos. Convertidor de atributos, cadena de
género, luego auto apply que entra. Entonces tenemos Auto aplicar true. Entonces lo mismo que hacemos aquí, esto será esto debería ser atributos el nombre del
atributo name. Entonces esta parte de aquí, al parecer, vamos a copiar a este tipo. Males de copiar y pegar. Lo estoy haciendo y estoy diciendo
males de copiar y pegar. Esto es género,
solo llámalo Gen. Yo lo llamo gen, entonces tenga esto Esto funciona. Hemos
podido convertir esto y finalmente, por fin, estos espectadores se hacen muy largos. Hagamos
esto rápidamente. Convertidor de roles, implementa convertidor de
atributos de atributos. Entonces tenemos el rollo, luego la cuerda. No necesito esto. Esto es w. esta mal. Aplicar esto serían entonces
los atributos, el nombre. Entonces lo mismo por aquí. D traer esto.
Recuerden, voy a cambiar la excepción más tarde
cuando la mencioné antes. Voy a cambiar eso
luego traer esto. Voy a necesitar el
papel, el papel aquí. Yo lo llamo rol Roll and roll. Todo bien. Antes
de terminar este video, vamos a explicar qué es esto. Tomando el nombre, es decir, sea cual sea el nombre
que le pasemos, solo recibe el nombre. El nombre será la
representación exacta de
lo que tenemos aquí. Esta representación exacta, acabo de dar a la base de datos. Ya hemos atendido,
si nos fijamos en esto para el papel,
creo que el rol en
realidad se encuentra en empleado ya atendido
para el cual es diez, que es el máximo
que en realidad llaman, que es el máximo aquí Si miras a los personajes,
los personajes son diez. Todo bien. Eso básicamente funciona. Lo que estamos haciendo
en esta última parte es que estamos
pasando por la matriz. Y si lo estás leyendo de
nuevo que estamos dando, estás obteniendo la columna y convirtiéndola de nuevo
a la entidad. Así que elige verificar a través
del rol como una matriz. Después filtramos a través Wever role matches this remember
the name is in as it is Si coincidía, bastante genial, todo lo que tenemos que hacer
es encontrar el primero. Si no se encuentra, muestran en el argumento legal excepción. Bien, chicos, habiendo hecho esto, veré en el siguiente video
28. Cierre del problema en GitHub del convertidor Enum: Hola, chicos. Gracias por
volver conmigo. Bien, mencioné que quería mostrarte
una vez que crees esto, cómo vas a
empujar en un tema. Creo que solo
mostrarles una vez va a estar muy bien, así que no tengo que
seguir haciéndolo. Ya he conectado
esto a Git've inicializar esto está conectado a mi
GiturPositU para este curso, que voy a compartir el enlace.
Ahora di esto. Lo que va a pasar es
que he creado un problema, así que vas a temas,
puedes crear un problema He estado
cerrando todo con un tema, como pueden ver, todo
se ha cerrado con un problema. ¿Correcto? Estoy cerrando
todo. Entonces, ¿cómo lo cierras? Gil
hub tiene esta característica especial. Una vez que hayas creado un problema, solo
digo que he creado aquí, que llamo convertidor tipo num. Podría copiar esto tal como es, luego comprometerlo
con ese mensaje. Ahora el nombre, este
nombre no importa. Se podría decir que tipo
o simplemente vamos a hacer ese convertidor de tipo implementado. El nombre de la redacción
no tiene que ser sincrónico. Sin embargo, el ID,
este ID es muy clave. Tienes que usar esta idea, usar la palabra clave cerrar o cerrar. Cierra la identificación. Sólo cuando haces de esa única manera yo hago eso
se cerrará esto? Vamos a probar
eso rápidamente. Estoy cerrando así que eso limpiaría todo esto. Entonces tenemos todo
colocado en una marca de puesta en escena, lo cual es genial. Entonces vamos a empujar. Y veamos esto. Entonces esto se
ha ido automáticamente,
esto está cerrado. Todo esto es una característica bastante
impresionante. Pensé que les mostraba chicos. Así que no quiero
aburrirlos chicos con esto
así que me estoy saltando esto pero al menos ahora lo he demostrado para que puedan saber exactamente
cómo estoy comprobando las cosas ¿Cuál es una de las
bellezas? Una de las bellezas es que luego puedes ir
más tarde a los temas. Una vez que verifiques los números,
podrás ver tus números cercanos. Si quieres ver las carreteras de
código que
en realidad están en contra de alguno de los temas, puedes
simplemente abrirlas. Una vez que abres
siempre hay este commit, que es tu sha o tu hash. Una vez que lo
abres, como puedes ver, ves todos los
cambios que hiciste. Esta es una
característica bastante impresionante para que pueda verificar cuándo y
dónde realizó sus cambios. Bien, chicos, espero que esto
haya sido muy informativo. Los veré chicos
en el siguiente video.
29. Crea repositorios Jpa: Hola, chicos. Gracias por
volver conmigo. De hecho, pude mostrarte cómo convertir realmente tu um
a columna de base de datos, ¿verdad? Ni siquiera necesitamos
molestarnos por ello, solo
te sientas y
lo creas automáticamente para nosotros. Puede que no mencione esto,
pero automáticamente te das cuenta en el momento en que realmente comienzas a crear
entidades o los datos, simplemente
se crea automáticamente. Todo bien. Bien,
entonces en este video, vamos a crear reposit reposit Entonces voy a entrar
y crear un paquete. Yo lo llamo reposie, ¿verdad? Voy a llamar a lo contrario. Empecemos. Voy a partir de
mi empresa sentarse debería ser una empresa de interfaz
postular, C tres Entonces voy a implementar
extender, perdón, extenderé el JPA,
el reposito GP Esto tomará compañía y
estamos usando una identificación usu aquí. UID. Eso funciona. Identificación de la UE. Ahora, yo también estaría extendiendo. También estaría
extendiendo y usando el ejecutor de especificación JPA porque usaremos
alguna especificación JPA Ahora,
lo genial de la especificación JP es que podríamos filtrar y filtrar dinámicamente
o
recuperar dinámicamente algo en la base de datos, y realmente
va a ser bastante increíble agregarlo
a este costo Entonces por eso en realidad
agrego un poco, ¿verdad? Así que esto es genial, ¿verdad? Entonces esto es muy necesario, y una de las consultas
que necesitaremos
es que estamos tratando de buscar a la
compañía bien por su nombre Sí. Bueno, esto
estuvo muy bien. Pude
averiguarlo bien por su nombre. Entonces esto es muy importante.
Vamos a estar usando a estos tipos. Entonces dejo esto adentro.
Podrías seguir adelante y agregar ese repositorio aquí
o no lo agregas. Se marchitan agregan o no lo
agregan, funciona, ¿verdad? Esto se
alimenta automáticamente para ti, ¿verdad? Así que publica solo consistente
y solo agrégalo. Creo que lo
dejaré así. Entonces podrías o no podrías. Esto lo anotamos, chicos,
podrías o no podías. Entonces vayamos a
departamentos, Departamentos. Un repositorio de socios. Posit se extendería o
es una interfaz, es una interfaz o una clase Permítanme seguir adelante y agregar ese Reposit para que sea consistente Ellos sumarán la JPA. Miembro del departamento del repositorio JP usando UUID, UUID. Entonces lo mismo también
será será el ejecutor de JP,
utilizando el ejecutor JP Esto es chicos muy muy
importantes. Lo que
necesitaría algunos detalles que es que voy a estar tratando de
buscar la lista de departamentos Sí, está bien, pero encontraremos departamentos por nombre de compañía. Creo que vamos a necesitar esto. Encuentra departamento por nombre de empresa. Esto es muy clave. Encuentra
departamento por nombre de empresa. Recuerda esto, estoy seguro si
estás familiarizado con JPA. En el momento en que haces esto, esto crea
automáticamente una
consulta detrás de escena. Lo que esto hará es hacer
algo como seleccionar estrella del departamento
donde el nombre de la compañía es igual al pase la llamada. Entonces esa es la consulta
que me van a generar. Entonces, lo que haría,
creo que ya lo he hecho aquí. Ya he habilitado
la consulta de show. Cada vez que hagas una llamada,
verás que la consulta se emite. Entonces por eso habilité
esto. Entonces ves la consulta. Entonces, cuando no estés seguro del tipo de queri que voy a generar, podrías usar esto
para aprender la consulta que realmente obtendrías Bien, así que vayamos a empleado. Creo que me estoy volviendo perezoso. Pero, hombre, no
quiero ser perezoso. No quiero cometer
ningún error aquí. Entonces va a ser una interfaz. Empleado el puesto Estoy
jugando YPostT ser un Yaposti. Al parecer, esto
debería extender JPA. Proceder a empleado y
este será un UID. UID. Entonces de la misma manera usando JPA como acto o suscripción
como una Q que realmente funciona Creo que podría estar necesitando
dos detalles a partir de aquí. Necesitamos dos detalles. Necesitamos que el empleado opcional
encuentre por ID de empleado. Gracias. Gracias, JPA Gracias, JPA. básicamente nos daría
que no hay una cadena. Recuerda que el
ID del empleado es una cadena. Si no estás
convencido de que vamos, ID de
empleado es una cadena, entonces es una cadena que necesitamos aquí. Entonces también, necesitamos una
lista de empleados. Entonces ya conoce la
lista de empleados, entonces sí encontramos
todos por empleado en. Podrías hacer esto. Ahora,
esto genera una consulta. Se trata de queri quien genera. Entonces para hacer esto,
hacer algo como seleccionar estrella de empleado, por lo que será de
empleado donde la identificación en, luego pasas en una lista de identificaciones. Digamos, digamos, ese es el ID uno, hice dos, hice tres, hice cuatro. Esta es la cotización
que vas a utilizar. Seleccionas el
ID de desgaste del empleado en, ves generador. Ahora, estoy haciendo esto porque
paso una lista de identificaciones para poder obtener
todo el empleado que vas a necesitar estos
datos en la cancha. Yo sólo pensé
definirlo
ahora mismo. Esto es bastante genial. Definamos un subcontratar. Externalizar reptoct
un repositorio de origen vamos a Interfaz de interfaz. JPA, reposita, entonces tenemos el subcontratar
y tenemos ¿Vamos a estar
necesitando algo? ¿Vamos a
necesitar algo aquí? Sí, estamos en estos. Creo que el mismo
detalle que este, ¿verdad? Sí, me olvido, también
estaremos extendiendo
el JP como ter. Gracias. Entonces la llave también. Entonces también necesitamos un hallazgo
opcional por, necesito por hallazgo por ID
subcontratada externalizada SoCd. Creo que esto
se llama, ¿verdad? Multa por. Externalizar ID codificarlo. Confirmemos tercerizar
Externalizar ID de subcontratación. Tan bien por subcontratar ID. Entonces lo conseguirá correctamente
para estar feliz de saber. Bien. Esto está bien y va a estar tomando una cadena de
cadena de subcontratar ID Empleado, ¿es lo
mismo? Sí, que así sean ellos. Entonces nosotros básicamente,
también estaremos necesitando una lista. Una lista. No lo subcontraten Entonces obtenemos un hallazgo hallazgo yo fuente en es
bastante informativo. Pude hacerlo pero quiero usar. Encuentra por esto y por lo que funciona. Entonces, finalmente, vamos a
crear una dirección. Address, que
implementamos o extendemos más bien. Esta es la interfaz, entonces extendería la
interfaz miembro extiende la interfaz, luego JPA, la publicación JPA, luego la dirección, entonces
esto sería UID UUID. Es repositorio,
consistente, entonces esto realmente
tendría Esto es exactamente
lo que necesitamos. ¿Necesitamos algo de MAD? Sí, creo que necesitamos dos
cosas. Necesitamos dos detalles. Número uno, necesitamos una lista de por lista de direcciones, encontrar por ID de entidad. Necesitamos ID de entidad.
Debe ser ID de entidad. DNI. Entonces también necesitamos
una dirección opcional. Dirección opcional. Bien por creo que hemos estado
necesitando dos cosas aquí. Así que hemos estado necesitando
multa por NTT ID y UUID. Y ves la
razón por la que luego ¿verdad? Entonces necesito esto. Voy a
necesitar un UUID y UUID Todo bien. Bien, entonces estos son
los detalles básicos que necesitamos. Uh, esto es muy clave. He podido
definir todos nuestros detalles. Tenemos una postura en cada uno? Sí. Hemos sido capaces de
definir esto en el ejecutor de suscripción JPA JPA all
extend Esto ya se está
convirtiendo en un video largo. Vuelve a explicar realmente un detalle más aquí,
que es muy, muy clave. Los veré chicos
en el siguiente video.
30. Implemente solo el repositorio que necesita: Hola, chicos. Z aquí. Bien, esta es información muy importante muy
importante Necesito que ustedes
presten atención. Ahora, veo un
error común que cometen los desarrolladores. Cada vez que
implementan o usan JPA, siempre antes solo extienden la postura de GPA, pero
no tiene que ser ¿Eres consciente de que JPA extiende
internamente multitud,
también extiende cosas
como la paginación, que es la paginación de un
determinado repositorio La regla es implementar
lo que necesites, implementar lo que necesites. Ahora, por razón de justificación,
la razón por la que estoy usando un ejecutor de suscripción de JPA es porque
un
ejecutor de assocption de JP
escribe Esto escribe en él.
Esa es la razón por la que en realidad estoy creando
necesitando la especificación. Voy a necesitar
cosas como pagables. Si tuvieras que checar
dentro de este tipo, te darías cuenta básicamente notarás que estos son los detalles
que básicamente nosotros. Entonces es muy importante, ¿
verdad? Es muy importante. Conoces estas
diferencias, ¿verdad? No uses el depósito JP
si no lo necesitas. Si todo lo que estás haciendo
es solo una identificación, crea una actualización, eres mucho mejor simplemente
implementando el depósito crod Así que tenga en cuenta
que hay diferentes tipos. Por favor use solo el depósito
Crod, ¿verdad? Si ahora estás diciendo que
quieres una lista, elegirás una lista Depositry de
código ¿Cuál es la diferencia?
Demos un paso a paso. Ahora mira a la Multitud. El código te
da básicamente
todo lo que necesitas. Puedes hacer un guardado, puedes hacer
guardar pasando múltiples. Podrías hacerlo bien por existir. Todo viene
a ti por defecto. Tienes todo esto.
También tienes cuenta. Ahora, ahora estamos diciendo, Bien, quiero poder
obtener una lista de esto. Entonces considere usar una
lista llamada depositario. Esto se acaba de agregar en
algún momento reciente. Entonces no está ahí
desde el principio. Ahora bien, ¿qué te da esto? Esto le da el
aspecto de guardar múltiples entidades
y guardar múltiples A diferencia de la multitud,
te dan guardar todo pero
obtienes un comedable Pero en esta parte, puedes guardar todos y obtener la lista, ¿verdad? Una caridad o una lista. Elige cuál quieres,
iterable o una lista, ¿verdad? Antes de eso solo
tienes que usar un comedable. Entonces cuando obtienes el
netb entonces tienes que
convertirlo probablemente en
una lista y los likes, aunque ambos sean parte de la colección y biblioteca Bien, lo mismo también, si ahora miras a JPA, si ahora quieres hacer
cosas como paginación,
paginación, entonces quieres usar
cosas llamadas la biblioteca de paginación y picadura Esa es la
epstura de paginación y picadura que quise decir. Esta es la parte que te
da el aspecto de pagable donde obtienes una página
y comienzas a desplazarte Recuerda el concepto
de paginación, es como si estuvieras
desplazándote por Esto es muy importante, chicos. Solo implementa lo que necesites. Cuando vas a entrar,
puedes, antes que nada, entrar en Paging y a JPopositre entrar al
repositorio JP así, hacer clic de
Control o entrar,
ver si esto hacer clic de
Control o entrar, ver si Si esto es demasiado,
ir a la multitud e ir a la multitud y decir que esto contiene lo que
necesitas, usa esto solo. Si la lista contiene todo lo
que necesitas, usa esto solo. Espero que el concepto
sea claro chicos para que no tengan que empezar a
preocuparse por todo esto. Ahora, también veo algunas personas también alguna escuela
diferente de decir, deberías usar bien
por debería usar Geb Ambos son aceptables. Podrías usar Fine By
y podrías usar Geb. Esto no va a romper nada. También podría entrar y decir, se las arregla. Esto es lo mismo. Esto se traduce exactamente en
esta misma cosa. Solo sé consistente. Si estás usando find,
usa find todo el camino. Si estás usando get,
usa get hasta el final. Espero que eso quede muy claro, chicos. Sólo pensé que debería
mencionárselos eso a ustedes. Al mismo tiempo, si te das cuenta, vamos a perforar en Crowd, también
hay un
concepto de ejemplo. Déjenme mostrarles eso chicos. También es un concepto de ejemplo, que ustedes deben
estar al tanto, ¿verdad? Entonces también podrías usar el
ejemplo por estas cosas son solo formas diferentes de
lograr lo mismo, ¿verdad? Así que elige lo que uh,
creo que lo he visto. Consulta por ejemplo.
Entonces ves ejemplo, ejemplo, ejemplo,
ejemplo, ejemplo. Todo se envolverá
alrededor de este tipo de ejemplo. Lo cual básicamente es hacer
casi lo mismo. Solo usa lo que
te resulte cómodo. Si quieres usar una G, usa un get si quieres usar un find, usa un find y solo
implementa lo que necesites. Me estoy tomando el
tiempo para explicar esto para que para cuando estés
empacando, para cuando estés empacando, vamos a estar usando salsa y esto que estemos quitando
las cosas que no necesitamos Si tan solo implementamos una
codificación se va a quitar todas las demás
cosas que no necesitamos, y eso hará que nuestro artefacto de
construcción sea más pequeño Esto es muy importante para
que sepas exactamente cómo
navegar por
el repositorio JPA Con ese set de construcción,
revisaré a este tipo y los veré
en el siguiente video.
31. Consulta inicial en Graphql: Oigan, chicos, gracias por
volver conmigo. Es genial
tenerlos aquí, chicos. Bien,
procedamos. Vamos a proceder. Lo que vamos a
lograr en este video es que queremos empezar a dar vida
a todos los puntos finales a
utilizar en este curso de Gap
Kell, Entonces, el primer paso para
poder lograr eso es crear el punto final G
va
a ser necesario, ¿verdad? Entonces los puntos finales se
conectarán por lo que necesitamos definirlos realmente en términos
de Bquery y mutación Recuerda que mencioné, cuando en realidad estás
tratando con consulta, igual que para los tipos de auditor. Entonces estás lidiando con consulta, consulta básicamente significa
todo lo que estás leyendo, toda la lectura en
tu cuajada, ¿verdad Que es todo lo que
dices que estás haciendo un HTTP. Entonces la mutación es cualquier cambio, crea actualizaciones
eliminar, ¿verdad? Así que vamos a estar haciendo a
estos dos. De hecho tocamos esto en
la sección posterior
porque en realidad se requiere
cierta atención especial. Así que en realidad estamos haciendo esto. Todo lo que necesitamos en el
Quervy y la mutación, vamos a meternos enseguida en ello. Muy bien, genial, genial, genial. Entonces lo primero que
voy a estar creando es ya que tenemos el concepto
de que tenemos entidades aquí, así que simplemente voy a
seguir adelante y crear un archivo unificado llamado query. Yo solo lo llamaré puntos de
consulta Graph QLs. Consulta Gp QLs y Quit Graph QLS, esperamos que luego tome tipo, aparentemente asociado tipo query ¿Cuáles son las cosas
que quieres hacer Recuerda, estamos
tratando con empresa, departamento, empleado y subcontratados Empecemos a
verlo paso a paso Lo primero que creo que
deberíamos hacer sería entonces ir a buscar toda la compañía.
Vamos a buscar a nuestra compañía Una vez que hayamos creado
toda nuestra empresa, queremos buscar todo,
buscar toda Quiero darle
una respuesta llamada, como pueden ver, aquí no estoy
pasando ningún parámetro. Miembro, chicos, si van a comparar con
los tipos de auditor, en realidad podrían
pasar parámetros. Podrías pasar en parámetros. Pero alli company, al parecer
porque al igual que digamos, dos o tres compañia, no
queremos muchos, no queremos ningún parámetro. Le voy a dar algo
llamado respuesta de toda la compañía. Todo esto es diferente. Esto es definido por mí. Una respuesta
de la empresa. ¿Y cómo será la
respuesta de toda la compañía? Volveremos en un
minuto, solo continúa. Al siguiente vamos a buscar
todos los departamentos. Al parecer, todos los departamentos
dentro de una empresa, todos los departamentos por
nombre de empresa, por nombre de empresa. Recuerda que por eso
hicimos que el nombre de la empresa fuera único. Si revisas nuestra entidad, mira la empresa,
mira el nombre. Estamos diciendo que el nombre
debe ser único. Podrías haberlo definido aquí o podrías haberlo
definido aquí. Espero que estés siguiendo a
chicos, increíble. Quieren buscar todo el nombre de la compañía, al parecer esto
ahora tomará impute, decimos compañía, nombre y nombre
común es lo que cadena Cadena lo hago
importante diciendo que queremos que esto sea
importante y vamos a estar obteniendo la respuesta de
departamentos Departamentos. respuesta del departamento
es realmente importante. Después el siguiente. Ahora, queremos
ir a buscar a todos los empleados. Hagamos una búsqueda básica todos los empleados empleados
que estén disponibles en todo
el sistema. Nosotros solo decimos búsqueda de empleados. Búsqueda de empleados. Ahora, recuerden, como mencioné
en el último video, en el último video, o es el último video
de un par de videos. Pero cuando mencioné que
creamos una interfaz
llamada presionar, ¿verdad? Y el prensado en realidad es
implementado por empleado, y también implementado
por el subcontratar Así también implementado por sur. Básicamente podríamos decir, si realmente sintonizas
una búsqueda de empleados, deberías poder
devolver ya sea el subcontratar o el empleado principal Entonces en ese sentido, lugar de regresar a
cualquiera de los dos, estoy tratando de ver cómo
se une, aquí es donde entra la interfaz que creamos,
que es bastante dulce. Así que esta vez
voy a decir, ¿es esto un subcontratar Entonces, hazlo importante.
¿Se subcontrata o no, si no lo es, o si
es persona de retorno? Espero que esto tenga sentido, chicos. Ahora en realidad estoy
regresando en persona, así que no tengo que preocuparme, digamos, ¿es esto un empleado
o es esto un subcontratar Cualquiera que sea el que regresemos en realidad nos daría los
detalles que necesitamos Y les voy a mostrar chicos cómo
va a funcionar esto porque ahora hay esta cosa común que
vamos a hacer de una manera que vamos
a extraer y obtener los otros detalles si es para empleado y otros detalles
si es para subcontratar Más cosas buenas por venir, chicos. Más cosas buenas por
venir. Bien, así que vamos a suplir
rápidamente este detalle Vamos a resolver este detalle, que es toda la respuesta de la empresa. Ahora, al igual que todas las respuestas que tienen la mayoría de las aplicaciones, vamos a darnos una
respuesta base para trabajar, ¿verdad? Démonos una
respuesta base con la que trabajar. Y con eso, voy a crear
voy a crear un
Graph QLs llamado
response gpqlsrspons do Graph QLS va Haré tu respuesta, ¿verdad? Ahora, lo genial de
esto es que voy a decir que ella acaba de devolver
el éxito es el éxito, que va a ser un lingote Entonces también debes
devolver un mensaje. También devuelve un mensaje
para que sea cadena, ¿verdad? Al parecer, estoy haciendo esto importante por alguna razón
y esto no es importante. Podríamos tenerlo o no
podríamos tenerlo. Ahora, teniendo esto,
recuerden a lo que nos
dirigimos son los compañeros y la respuesta del departamento. Lo que voy a hacer, entonces
voy a entrar en la empresa. Voy a entrar en el detalle de la compañía que voy a crear lo que necesito, y ese entonces será un tipo un tipo de crédito con el mismo nombre por
aquí, el mismo nombre. Va a ser una respuesta de
la empresa entonces para implementar la respuesta. Entonces obtienes un éxito. Recuerda, cuando
implementas, debes traer todo
. Eso es un cero. Si no traes todo,
se va a quejar. Así que yo solo voy adelante y
solo traigo todo. Entonces este tipo ya no
se quejará. Fresco. Y voy a
añadir otra cosa que van a ser las empresas,
las empresas, que
va a ser una empresa, DTL va a ser importante Estoy diciendo que podría conseguir
una o más compañías. Una empresa obligatoria y si es más de una
va a ser una lista. Seguro que consigo uno, pero no estoy
seguro de ser más de uno. Por eso no estoy haciendo importante
esta lista. Espero que sea claro chicos. Sigamos saltando
a departamentos. Departamento también
tenemos lo mismo. Sólo tenemos que conseguir ¿cuál es
el departamento abajo? Qué es una consulta una
consulta acaba de obtener esto, solo obtenga la respuesta
del departamento. Entonces solo entra aquí y haz lo mismo
en el tipo de crédito, e implementaría respuesta. Al mismo tiempo, así que recuerda que tienes que traer todo. Estoy trayendo todo. Y lo genial es que ahora
tenemos que traer también todos
los demás detalles que
queremos para lo que es
departamentos, ¿verdad? Y este tipo va a tomar
adivina ya. Seguro que ya lo adivinaste. Tengo que llevarme
te voy a departamentos de término, DTO, obligatorio y
el menos opcional Bien. Bien. Creo que
esta es una buena jugada. De hecho, hicimos
algo genial. Así que vamos
a repasar rápidamente lo que hicimos. Entonces lo que hice ahora
queremos empezar a consultar. Recuerda te dije que tenemos tres tipos y graph qu query, una mutación o una suscripción. Aquí estamos tratando con
la consulta donde queremos realmente ahora
comenzar
a interactuar, más como estamos usando para conectarnos
a nuestras APIs o
endpoint, por así decirlo De hecho estoy cuating tres Gita, que es la compañía que es la empresa fetual
que me das respuesta de tu
empresa que me das respuesta de tu Un departamento Fatual
por nombre de empresa. Recuerda, estaremos
demostrando tres o
arrancando tres empresas
y una búsqueda de empleados , ¿verdad?
Una búsqueda de empleados. Y aquí le expliqué
que no tenemos que decir
específicamente quiere
devolver empleado o externalizado Esto es que ambos
implementan esta interfaz de persona Lo mejor es devolver
una interfaz de persona. El show conseguirá
una persona, ¿verdad? Y también podría
ser más de una venia
regresando y te mostré cómo se
construyó
toda la respuesta de la compañía, lo cual es bastante sencillo. Simplemente implementamos la respuesta, y la respuesta básicamente tenemos estos dos detalles,
el éxito y el mensaje. Entonces solo agregando este detalle extra para buscar el detalle
de la compañía De igual manera, para
departamentos, estamos haciendo lo mismo y solo
regresando departamentos, y tenemos un DTO
departamental, ¿verdad Bien, chicos, esto es
genial, chicos. Te veré en el siguiente video.
32. Consulta inicial en Graphql 2: Oigan, chicos, gracias
por volver. Todo bien. Entonces creo que podemos proceder desde
donde empezamos. Antes de verificar esto,
solo estaba pensando, creo que sería
genial
crear realmente uno más así que realmente
crear un tipo de consulta más. Ya que estás buscando,
creo que será genial crear algo llamado empleados Búsqueda de empleados
por ID de personal. Básicamente podemos
pasar una identificación de personal. Recuerda que es un UUID. En este caso, se pasa un
personal lo siento, la identificación patronal. Me refiero a la identificación del empleador
y su identificación de origen, identificación de
empleado y su identificación de origen. De hecho, podrías encontrar
empleado establecido por ID de personal. De esa manera, podríamos
decir que esta es la identificación del personal. ID del personal, y quiero
que sea una cadena. Al parecer,
va a ser una cuerda. Entonces estaremos
regresando a una persona,
sólo una entidad así que
devuélveme a una persona. Pero creo que esto es genial, chicos. Tenemos que devolver esto. Voy a hacer que no sea obligatorio. ¿Y si no
encontramos que el empleado realmente
podría dar la excepción
adecuada Bien, entonces traeré
esto. Todo bien. Grace, creo que con esto hecho, en realidad
puedo
verificar el código. Básicamente puedo verificar
el código para que
podamos ver cómo se desarrolla eso. Voy a crear un problema voy a crear un
problema mostrarles chicos. Al parecer, de la misma manera, por sólo reforzar un aprendizaje. Creo que traje el equivocado
para reforzar un aprendizaje. Entonces llamaré a esta
consulta inicial, consulta inicial. Por lo que llamo a esta consulta inicial. Sí, llamemos a la consulta inicial
gráfica gráfica consulta QL. Al parecer, empiezas lo
que mezclo, consulta gráfica inicial. Entonces copio esto,
recuerden, tengo que copiar. Entonces saco esto, entonces recuerda que tienes que
apegarte a la palabra clave. Esa palabra clave es bastante
importante chicos y se compromete y luego hay que
usar esta palabra clave cierra. Coloco esto en. Eso era cierto, entonces yo
haría un empujón de Gets. Me van a empujar, pero
esperamos que esto
realmente me comprometa. Esto cerrará de inmediato. Impresionante,
increíble, increíble, chicos. Pensé que es solo agregar que una pieza
más de información. Va a llenar esta consulta
con muchos detalles. Hay algunas
cosas extras que iban a hacer. Vamos a tocar
la paginación. Vamos a tocar algunas cosas de
socket web o los gustos. Son algunos detalles más
por venir chicos. Todo bien. Entonces esto está bien por ahora, saltemos al siguiente video
mientras analizamos la mutación, alguna de las mutaciones básicas con las que
quiero comenzar. Bien chicos.
Te veré en el siguiente video.
33. Mutación inicial en Graphql: Oigan, chicos, es bastante
increíble tenerlos de vuelta. Todo bien. Procedamos
de donde paramos. En el último video, en realidad
agregamos una consulta más. Agregamos un
detalle más a la consulta. Entonces para poder
buscar por ID de empleado. Ahora veamos
alguna mutación, ¿verdad? Entonces la mutación iba a hacer. la misma manera,
solo voy a repasar y simplemente crear un archivo
llamado mutación. Punto de mutación DAFQLS. Gráfica QL, ¿verdad? Recuerda, eso tiene que ser
gráfico QLs. Todo bien. Así que vamos a crear algunos detalles y eso va a
ser bastante impresionante, así que sigamos adelante. Entonces, si lo piensan, chicos, voy a decir tipo. Mutación, al parecer, tiene que ser M. La mutación es muy clave. Entonces se puede decir que
crea compañía. Eso es bastante correcto. Tienes que ser capaz de
crear empresa, ¿verdad? Buena compañía. Entonces lo
llamaré empresa imputa Eso es lo que vamos a conseguir, bien, los detalles que necesitamos. Recuerden, ya creamos
algo para compañía, chicos. Si nos fijamos en estas piezas, ya
tenemos imputes de empresa, que contiene todos
los detalles básicos necesitamos para crear nuestra empresa Así que simplemente voy a hacer clic en esto, y eso es lo que
voy a estar usando aquí. Entonces voy a estar tomando un
aporte de la compañía, y esto es obligatorio. Entonces voy a estar devolviendo algo llamado respuesta de creación. Respuesta de creación. Esto
lo vamos a definir. Bien, a continuación, vamos a crear departamento de
departamentos. Entonces en crear departamentos, tomamos un departamento insumos. Departamento imputa, ¿verdad? Entonces ya lo has adivinado. Entonces lo tomo departamento
imputa, ¿verdad? Y también va en respuesta
de creación. Recuerda en API estándar, no
quieres revelar
demasiada información. Solo quieres decirle a tus usuarios si estás
creado o no. Entonces lo mismo no va estar revelando
demasiada información. Bien, siguiente, hagámoslo, déjeme darle un poco de
espacio, crea empleado. Empleado de seguridad, seguro
que ya lo has adivinado. Entonces voy a tener
algo llamado empleado empleado
subcontratado, ¿verdad Y te diré que estés en un
minuto. Empleado subcontratado Y voy a estar recibiendo el detalle llamado empleado
subcontratado. Imputa. Y esto debería estar
regresando también devolviendo una creación, una respuesta de creación. Bien, vamos a tratar rápidamente con los detalles que hemos creado hasta
ahora. Impresionante. Impresionante. Bien, así que vamos a saltar. Si miras esta parte, si miras esta respuesta de
creación, ¿cómo deberían ser? Pasemos a esta respuesta
que creamos antes. Voy a crear un tipo. Al parecer, va
a ser un tipo al que estás devolviendo un tipo
llamado creación. Respuesta de creación, luego
implementa esta respuesta. Si lo implementa,
¿qué significa? Significa que en realidad tenemos que
traer esto también. Entonces todo lo que voy a
escribir es solo UUID, solo el ID, ID de creación El ID en el que se
creó eso , eso es todo
lo que voy a estar regresando. Entonces esto estará sonriendo. Todo esto sonríe.
Eso está escrito. No quiero revelar
demasiada información. Trate de seguir fiestas estándar, pesar de que
vamos a romper gran parte de su externalización
reza subcontratada ¿Por qué crees que quiero
crear esto abajo? La razón por la que quiero
crear esto es recordar
que tenemos dos secciones de empleado
o ambos son empleados, que es el empleado principal
y tú subcontrataste Es justo cuando en realidad
lo que hago. ¿Bien? Es justo
cuando lo estamos creando, podemos recibir la
entrada de una vez. Una vez que recibimos
el insumo a la vez, estamos cortando a un empleado, lo usamos para el
empleado y estamos seguros que el de
externalizar no es necesario los parámetros por lo que los campos
o los atributos no se necesitan
los campos
o los atributos o el subcontratar Y estamos cortando una externalización, estamos seguros de que
el parámetro o el campo para el
empleado no es necesario Sigamos a la derecha y creémoslo. Entonces no encaja en esto, no encaja en esto. Lo que voy a hacer,
lo que voy a hacer es simplemente
voy a
crear algo que se llama solo vamos a llamarlo, solo
quiero
algo,
algo, algo que no así que
quiero separarlo. Vamos a llamarlo yo solo
lo llamaré genérico compuse genérico Una impusa genérica. ¿Yo pienso qué? Genérico comp GAF QLs. Recuerde, aprovechando el hecho
de que en realidad
podríamos
escribir tantos archivos, y esto en realidad sería escaneado y
todo estaría listo. Bien, entonces lo que queremos crear, como mencioné, Ea, es este tipo. Entonces que al parecer
va a ser un impus. Recuerda, cuando en realidad estás haciendo usando una entrada,
tiene que ser un impus, ¿verdad Entonces ahora, recuerden,
ya tenemos una persona
realmente tenemos una persona. Creo que puedo seguir adelante
y simplemente copiar todo esto, luego mirar lo que
necesitamos. Veamos esto. No necesitamos el UUID, este se creará
automáticamente para nosotros. Necesitamos un nombre, fecha de nacimiento, género, no necesito un salario. Necesitamos un salario. Necesitamos la
dirección. Necesitamos la edad. W necesitamos un número de teléfono
cuando la empresa. Recuerda, esto tiene que ser
direcciónponer dirección imputar. Hay que pasar en
la dirección impute. Entonces estamos explicando
que en realidad cuando creamos eso para
empleado, ¿recuerdas esto? Sí, seguro que lo recuerdas. Ahora solo estoy creando algo
que es único para ambos. Sólo estoy uniendo a ambos
. En lugar de tener dos puntos finales separados, uno para crear empleado y otro quiere
crear un subcontratar Podríamos haber hecho eso, pero solo deberíamos
unirlo. Probablemente apuesto perezoso de todos modos. También es una manera de ver cómo
podemos usar tanto la composición. Esto es muy clave.
Podemos usar la composición, y la forma en que funciona es
obtener algún campo y otros
campos que no necesitamos. Entonces, los detalles para empleado
que necesitamos son prueba, estos son los detalles que
necesitamos para el empleado. Pero esto es
sólo para el empleado, así que
voy a agregarlo. Entonces en la identificación del empleado,
el número de departamento, el rol de correo electrónico. Al parecer ya que esto no
voy a ser ya que podríamos estar
cortando nuestra fuente, no
necesitamos que
sea obligatoria, ¿verdad? Estoy seguro que lo
entienden, chicos. Esto es obligatorio. Esto es obligatorio,
esto es obligatorio. Pero para este tipo, no
es obligatorio. No es obligatorio. Entonces
también para el subcontratar, ¿qué necesitas
para el subcontratar Comprobamos la externalización. Esto es tan detalle que en realidad hablan con el subcontratante o
habla del subcontratar Traer esto en parte
pronto será obligatorio. Ya sabes la razón por qué
porque es opcional. Podríamos estar cortando empleado, esta sería opción
esto no va a ser necesario. Podríamos estar cortando externalización, esto no va a ser necesario.
Aclarar las cosas, chicos. Entonces, si vuelves aquí, esto se
ha creado con éxito. Esto ha sido creado
con éxito. Bien, chicos, creo que este
video se está haciendo muy largo. Volvamos en
el siguiente video y agreguemos algunos detalles más
a una mutación. Bien, chicos, los
veré en el siguiente video.
34. Mutación inicial en Graphql 2: Hola ahí. Es bueno
tenerte de vuelta. Bien. Entonces, lo que
vamos a hacer, como mencioné en el último video, vamos a estar agregando algunos detalles más
a esta mutación. Bien, vamos a meternos en ello. Bien, entonces voy a seguir adelante
y agregar en la actualización. Digamos que queremos actualizar una dirección de empleados
existente, ¿
verdad? Deberíamos ser
capaces de hacer eso. Oye, acabo de mudarme
a me acabo de mudar a otra parte del país o me mudé a
otro Debería seguir siendo tu empleado, deberías poder
actualizar mi dirección. Fresco. Diré actualización empleado. Domicilio del empleado. Entonces estás actualizando la dirección del
empleado, deberías estar tomando la
dirección imputa. Toma tu entrada de dirección y
solo traeré la dirección
Imputs, ¿verdad? Y debe ser obligatorio. Entonces sólo voy a devolver la respuesta
de creación, también, ¿verdad? Eso debería estar bien. Entonces
al mismo tiempo, también, digamos que queremos
actualizar los datos de los empleados. Actualizar los datos de los empleados. Esto también es muy clave
actualizar los detalles de los empleados. Ahora, ya hemos ido adelante para crear algo antes de ahora, así que solo haciendo uso de eso, llámalo actualizaciones de empleados. Ahora llámalo
actualizaciones de empleados Imputs. Os voy a mostrar chicos en un minuto. Eso lo hicimos y vamos a
estar necesitando esto. Entonces la respuesta de la creación, ¿verdad? Así que vamos a verlo. Y estas son las
actualizaciones de los empleados, ¿verdad? Entonces, una vez que se actualiza una vez
que dices
la identificación del empleado , el salario, la edad y el rol, probablemente podrías agregar el subcontratar
tú mismo, ¿verdad Solo quiero enfocarme en
empleado cuando estés actualizando la IP del empleado, es
bastante impresionante, ¿verdad? Entonces quiero aburrirlos chicos con repetitivos o hacer lo mismo Bien. Bien, chicos, hemos
sido capaces de crear esto. Uh creo que es bastante impresionante
agregar estas cosas en. Entonces en este momento, creo que entonces estamos en
condiciones para luego empezar pasar
a lo siguiente para luego ver cómo
empezar a implementar. Si lo piensas,
el primero
que debería implementar no debería ser consulta, Porque no hay datos, hay datos, piénsalo si no
hay datos,
qué estoy leyendo. El primer punto final de QL Q que debería estar implementando
es para la mutación Y al parecer entonces luego
vamos después a la consulta. Estoy seguro que me están haciendo chicos. Compañía de crédito,
departamentos, el empleado, luego empezamos a ver cómo
funcionan las cosas realmente. Con esto dicho, los
veré chicos en el siguiente video.
35. Una consulta, una mutación: Oigan a todos, y agradecidos tenerlos de vuelta
conmigo. Todo bien. Lo que vamos a
hacer en este video, vamos a estar implementando los controladores
para la mutación. Recuerda, como mencioné
en el video anterior, mencioné por qué
tendrías una identificación sin tener algunos datos en la base de datos, solo es ideal. De hecho, comenzamos con
el aspecto de la mutación. Cortar algunos controladores para ello y ver luego proceder de ahí. Antes entonces arrancamos tentadores para las consultas. Todo bien. Pero antes de continuar, en realidad
quiero mostrarles algo, ¿verdad Si sigues adelante, solo
golpeo esto y solo hago v y compilo para compilar todo lo que realmente
hemos hecho hasta ahora. Si realmente haces esto,
vas a ver quién recibe un error. Y eso realmente
deletrearía algo muy clave. Verás, estamos
recibiendo este error. ¿De dónde viene este error? Esto es muy claro. Es decir,
si miras esto, está
diciendo que
ya hemos definido esto. decir, ya tenemos una consulta, ya
tenemos una
mutación y ¿por qué es eso? Si recuerdas en nuestros datos, por qué en realidad
tratamos de arrancar
esto es quejarnos de que, oye, estás cortando una consulta de tipo
aquí y estás cortando una mutación de tipo aquí por aquí, también
estamos cortando mutación Webster creando consulta. Sólo se puede tener una mutación y sólo se puede tener una consulta. No puedes tener ambos. Tener a ambos
en realidad entraría en conflicto. No sé cuál
usar como tu punto de entrada, lo que vas a hacer o
lo que vamos a hacer es entrar aquí
y renombrar esto. Vamos a
seguir adelante y renombrar esto. Como nos hemos apegado a
la muestra de palabras clave, llamemos a esta consulta de
muestra, consulta de muestra. Entonces llamemos a esta mutación
de muestra. Esto es muy importante, chicos, necesitan
saber que solo
pueden tener una mutación
querer, y por eso dicen
que creé solo un archivo para manejar
todas nuestras consultas, y creé otro archivo,
que es un archivo GAF QL
para
manejar realmente una mutación y esto básicamente
debería hacer el trabajo Si vas ahora mismo y
claro y haces una compilación de VN, y veamos cómo resulta
esto. Entonces ahora estás
haciendo la compilación, ¿obtenemos el mismo error? No, no obtenemos el mismo error. Espero que esto sea claro chicos. Sólo se puede tener una consulta. Sólo se puede tener una
mutación. Todo bien. Este es un video muy relativamente corto para que solo
pueda mostrarles esto debería ser solo un independiente para que podamos
entender este hecho. Cuando volvamos
en el siguiente video, volveremos para implementar nuestra mutación y comenzar a
cortar los controladores. Entonces los veré chicos
en el siguiente video.
36. Traducción de verbos Http en Graphql: Hola, chicos. Gracias por
volver conmigo. Es genial
tenerte de vuelta. Todo bien. Ahora podemos entrar entonces en
implementar la mutación. Esta vez va
a ser chicos muy, muy divertidos. Realmente me encantaría
que ustedes solo
prestaran atención y esto
va a ser muy muy clave. Lo que vamos a hacer, Lo que vas a hacer
es muy sencillo. Entonces solo seguimos el
mismo paradigma de NVC, ¿verdad? Controlador de vista de modelo. De una manera más como te
estás separando, no
tenemos un
front end, derecho. Pero sin embargo, voy
a separar cosa. Así que en esta ocasión,
voy a crear un paquete donde almacenemos
todo nuestro controlador. Entonces cada uno de nuestros puntos finales los
que el sistema
va a ser gravado, o los forasteros van
a estar interactuando,
lo llamaré API Entonces voy a crear un paquete,
y lo llamaré API. Entonces lo
primero que vas a crear nuestro país lo siento,
nuestro controlador de la compañía,
un controlador de la empresa. Debe ser una empresa. Contralor de la empresa. Todo bien. Ahora, quiero que ustedes vean
algo muy impresionante. Dividamos esto.
Voy a dividir la pantalla aquí para que podamos
tocar esto aquí mismo. Voy a rastrear
esto aquí, bien. Ahora bien, esta es la belleza. Desarrollar, desarrollar
GraphQL con resorte no te saca de tu zona normal o donde se supone
que debes estar Sigues en ese
mismo lugar, o debería decir, sigues usando el mismo
concepto de controladores, el mismo concepto que
usarías para inyectar realmente. Todo sigue funcionando igual. Esa es la belleza de
usar la primavera para la gráfica QO. Vamos a entrar. En
realidad vamos a definir controlador. En el controlador. No, eso
debería ser un controlador. Eso debería ser en el controlador. Entonces entraré en el controlador. Bien, así que esto es genial. Después siguiente parada. A continuación, en realidad
somos
particulares sobre esto. Esto crea controlador de la empresa. Se trata de chicos muy, muy claves.
Esto es muy muy clave. Ahora, cuatro gráficas QL, a diferencia de nuestro HTTP bs regulares, tenemos el G, tenemos el post, tenemos el put, tenemos
el parche y los likes Para HTTP, solo voy a seguir adelante
aquí y solo teclearlo. HTTP web, HTP web, entonces tenemos el post, que es el post mapping, post mapping,
tenemos el mapeo G Tenemos el get mapping. Esto es muy crítico, chicos. Tienes el get mapping.
Tenemos el mapping de puts. Entonces tenemos un mapeo de eliminación. Eliminar mapeo. Bien, así que lo
dejaré así. Sabes que los otros son
en realidad viene a la par. Ahora, cuatro, si
realmente vamos a dividir esto, podríamos decir para las
lecturas para lecturas, básicamente solo
tenemos que tener
mapeo Gets, que estás usando
para HTTP, Get mapping. Estoy agregando esto como contenido para
que podamos usar realmente. Voy a comprometer
esto para que siempre
puedas comprobar para ver cómo puedes realmente
subirlos juntos, para
ver la diferencia. Entonces para nuestras actualizaciones, o debería decir, cambios. Vamos a llamarlo
cambios, ¿verdad? Pero los cambios, al parecer, un post mapping es un cambio porque estás creando
algo nuevo. Un mapeo de puts es un cambio
porque estás actualizando un mapeo de eliminación es
un cambio porque en realidad
estás sacando
algo de la base de datos. De la misma manera para GraphQL, ¿verdad? la misma manera para GraphQL, para GAF QL, esto también es Ahora para Gf QL,
también es de la misma manera. Entonces podríamos tener Gf QL
básicamente tener tres tipos, que son los tres tipos, que es muy simple, que ya
hemos mirado Ahora bien, ¿cómo se define
en términos de para Gf QL, es bastante
sencillo, verdad Es bastante
sencillo chicos, y realmente no hay nada que decir. Entonces también tenemos mapeo de consultas, tenemos mapeo de mutaciones, y tenemos mapeo de
suscripción. Voy a
mostrarles cómo funciona esto. Voy a tomarme mi
tiempo para explicar esto para
que podamos ver realmente cómo funciona, ¿verdad? Ahora,
vamos a tener una mutación. Tenemos un mapeo de consultas,
un mapeo de consultas. Tenemos un mapeo de mutaciones. El mapeo de mutaciones. Entonces tenemos un mapeo de
suscripción. Recuerda que hablé de
suscripciones que te
conté de hace algunos videos que voy a estar viendo
como sockets web. Aquí va a
pasar lo mismo, ¿verdad? Así que tenemos que
mantener eso en realidad. Tenemos un mapeo de suscripción. Todo bien. Entonces mutación. Hay una consulta mapea un mapeo de mutaciones y hay un mapeo de
suscripción. No obstante, hay algo a lo que
quiero que ustedes
paguen muy importante, muy buena atención. De la misma manera, esto se
puede traducir. Se podría traducir
una asignación de solicitud. Podrías traducir a estos tipos. Esto también es lo mismo que el mapeo de solicitudes.
Solicitar mapeo. Entonces tienes algo
así como un método y el método será HTTP obtiene, método
HTTP, creo que se pone. Espero que haya llegado ahí
lo estoy consiguiendo correctamente. No consigue, ¿verdad? Bien. Mismo tenemos este concepto. Creo que este es un método de solicitud,
método de solicitud, ¿verdad? Ahora bien, este mapeo get
puede ser lo mismo que este. Voy a tratar de
estructurar y colocar en el archivo Widne del
contenido de este curso para que
siempre puedas referirte para ver exactamente cómo se
mapean
esto porque esto es bastante importante, ¿verdad Es posible que te
confundas fácilmente aquí, pero si
realmente
puedes obtener esta parte, verás que realmente no difiere de lo
que ya estás acostumbrado. Solo necesitas
conocer el concepto. Lo que haría,
me llevaré todo esto. Llevémoslo a un archivo Red M, entonces eso tendría más sentido. Consigamos el
archivo ReadMe con este proyecto. Nosotros me archivo, lo llamamos WidmND. Nadar punto md, llegar a MND. Es MD. Bien me leí ese ND. Entonces lo que voy a
hacer, voy a entrar aquí, solo llámalo gráfico Ko cos. Yo sólo voy a hacer una gráfica Ko
cours graph QL curso. Ahora. Digamos, vamos a hacer algo vamos a hacer
algo así como una comparación, y luego vamos
a manejar el bit. Bien, chicos,
voy a dividir las cosas, así se vuelve más así
es más comprensible. Entonces tenemos el HTTP. Al tener HTTP, voy a
dividir esto de esta manera. Entonces tenemos el post mapping. Post mapping, y
al mismo tiempo, tienes el post mapping, que se puede traducir
también se puede traducir a
esto un mapeo de misiones. ¿Correcto? Entonces este es un
post de la misma manera, ¿no? Así que haz la publicación HDP. Así que de esta manera somos
capaces de
distinguir realmente luego el post HDB De la misma manera digo cambios. Déjenme decir cambios. Cambios, cambios de datos de HDP. Entonces los datos de HP cambian.
Entonces tenemos el post. Si duplico prueba, también
tenemos los puts. Esto eventualmente se pondrá. Entonces también tenemos el delete. También tenemos las eliminaciones y
traducimos a eliminaciones. Entonces de la misma manera,
esto entonces, ¿verdad? Para la gráfica QL,
pongamos esto aquí. Yo sólo quiero darle un
poco más de espacio. Para la gráfica QL, la traducción. La traducción sería mapeo de
mutación de mutaciones. Mapeo de mutaciones, derecho,
que también se puede traducir a mapeo de esquemas.
Mapeo de esquemas. Entonces tenemos lo que llamamos
type name type name. Y el nombre del tipo puede
entonces ser mutación, que siempre es una cadena. Mutación, ¿verdad? Este video es en realidad se está
haciendo muy largo. Volveré en el siguiente video para tener realmente todos estos
detalles deletreados. Bien entonces,
te veré en el siguiente video.
37. Traducción de verbos Http en Graphql, parte 2: Oigan, chicos, gracias por
volver conmigo. Es genial
tenerte de vuelta. Todo bien. Esto es lo que me
adelanté a hacer. Con el fin de ahorrarle toda la mecanografía y semi tipo todo, voy adelante para
establecer realmente todo. Simplemente voy a repasarlo en este video para que veas
exactamente cómo funciona. Entonces cuando tienes cambios
como el mapeo put, el post mapping,
el delete mapping, también podría ser que
también podrías tenerlo de esta manera. También podrías
tenerlo de esta manera. Y esta parte, podría
simplemente gustarle un valor, y tienes cosas como libros. Déjame tomar todo esto
y solo agregarlo aquí. Tienes libros,
lo mismo puede tener aquí. Piensa esto por último. Podrías hacer algo como
esto. Al parecer, tal vez quieras agregar quizás
una variable de ruta aquí. Desea agregar la variable de
piezas en cuanto
al número que desea eliminar
o desea eliminar todas. Pero el punto no es
realmente revelar ni
hablar de HbB Es sólo para
mostrarte la comparación. Ahora bien, esto podría
traducirse a esto. Podrías tener solo
un post mapping, que es un alias
para la asignación de solicitudes, luego valor, el pasar el
método que es un post. El mapping pone tiene
esta traducción, justo en el mapeo de eliminación, ¿cómo funciona para la gráfica Q? Lo mismo para la gráfica
Q así que para la gráfica QL, se podría decir, Oye,
quiero hacer una mutación Entonces la mutación es lo que maneja
cualquier tipo de cambio. Yo lo borro crea un delete o cualquier
cambio que quieras
hacer con tus endpoints, ¿verdad Entonces esto es lo que tienes
se llama mutación. Entonces la mutación es de la palabra
para mutar para cambiar, ¿verdad? la misma manera, ya que esto tiene un como que realmente
corresponde a esto, también
tenemos otro alias. Entonces esto es mapeo de esquemas. Después en su lugar el
nombre tipo como mutación. Después unos días libro. Entonces
esto se traduce en esto. Ellos son exactamente la
misma representación. Entonces podrías ver si probablemente
estás
revisando la documentación, podrías ver que esto se usa, y podrías ver que esto se usa. Entonces es lo mismo. Sólo tienes que encontrar tu
preferencia y apegarte a ella. la misma manera si estás
haciendo alguna lectura, al parecer, sabemos que va a ser un get
mapping y un get mapping, déjame ser consistente. Escojamos esto aquí,
solo déjalo caer aquí. Esto también se traduce en esto. Este mapeo de Gets es un
alias para el mapeo de misiones, entonces tienes el método get. la misma manera olvídate en GAF QL, tenemos mapeo cuavy Se llama mapeo cuavy. Mapeo de consultas, de la misma manera que lo
tienes es un alias para decir, Oye, quiero que el tapping sea de ty querry y el
pez debe ser libro Así se traduce. Espero que esto sea muy claro chicos. Esa es la razón por la que he seguido adelante. Cómo mostrar esto la comparación para
que no te confundas. Entonces, por favor, apégate a uno. Si te sientes cómodo con
este corto, increíble. Si te sientes cómodo
con esto, increíble. En el siguiente ejemplo, siguiente video, lo que estoy creando para
el controlador de la compañía, usaré ambos y
comentaré uno, luego me apegaré a uno a
lo largo del video. Quiero que ustedes
realmente lo noten. De la misma manera también para el mapeo de
consultas, esto. Dicho esto y habiéndoos mostrado chicos,
hablemos del último,
que es el mapeo de suscripciones
porque vas a hacer algo así como es un editor, cosa del suscriptor del
editor,
lo que vas a hacer. También tiene esta traducción, la suscripción y los
libros de campo de la misma manera para chicos. Dicho esto, te
veré en el siguiente video.
38. Chasis del controlador de la empresa: Bien. Gracias, Gary. Al volver, es genial
tenerte aquí. Todo bien. Entonces podemos proceder a luego
crear lo que realmente nos
aventuramos antes de tener que digredir
un poco para explicar
todos Solo necesito hacer que
la conversación fluya para que podamos lograr esto de
verdad. Ahora, volviendo a un controlador de
empresa, lo que vamos a
hacer es muy sencillo, sigue con
lo mismo que hicimos aquí. Si vamos a sacar
esto a colación, léeme hace falta una lectura yo
probablemente solo ponlo a esto. Si realmente tienes un léeme, ¿cómo o a qué
se traduciría? Tú eliges uno, voy
a usar ambos aquí, comenta uno fuera, así que
utilizo un mapeo de esquemas. Para el mapeo de esquemas, entonces voy a elegir el
nombre del tipo y como ustedes saben, el nombre de tipo se
va a crear para este primero
que estás apuntando, el typename
va a ser crea el typename va a ser
mutación, necesito Va a ser
de tipo mutación. La mutación y el campo.
¿Cuál es el campo? Entonces el campo básicamente
tiene que corresponder. Ahora bien, debes mantener esto
en él tiene que corresponder exactamente
a esta misma
cosa que tienes aquí. Campo tiene que corresponder exactamente
a esta misma cosa porque esa es la manera de anotar. Entonces A esto ser ¿cuál es el
campo, y esto será qué? Crear empresa. Entonces
esto no se ha hecho. A mí me gusta espaciarlo
así con más claridad, cis hace que me parezca más
legible, ¿verdad? Entonces esta es la preferencia personal. Podrías mantenerlo
en una sola línea. Entonces tienes público. Público, entonces ¿cuál es la
respuesta a esperar? Estamos esperando una respuesta de
creación, una respuesta de creación o
una respuesta de creación. Entonces el nombre es crear empresa. Tienes que importarlo.
Recuerda, es de los tipos. Ya lo hicimos ya. Ahora bien, ¿cuál es el argumento
que esperan los insumos de la compañía? Ahora, alguien podría estar preguntando, ¿qué
vamos a usar exactamente? Tenemos cosas como
solicitar programas, o ¿tenemos cosas aquí? No, no lo hacemos, lo que nos
hace volver a leer mi
archivo para que podamos actualizar. Ahora bien, para cosas como a petición cuerpo solo
decimos anotación. Yo solo lo llamo comparación de
anotaciones, Comparación anotaciones. Entonces esto es lo que vamos a hacer. Ahora para cosas como
a petición cuerpo, yo busco cuerpo, que se
supone que es cuando
realmente estás creando o cuando
estás pasando un objeto. Para la gráfica Q, usamos en argumento. Usamos un argumento y todo lo
demás sigue adelante. Voy a seguir actualizando
esto para que
sigamos siguiéndolo. Todo bien. Voy a recoger esto, ven aquí. Tienes un argumento de at. Entonces, ya ves, viene
de la gráfica QL. Si compruebas esto sí, viene del método de
datos gráficos y la notación. Entonces el valor.
¿Cuál es el valor? El valor tiene que corresponder a cualquier variable
que estés usando aquí, ¿verdad? Porque necesito
repasar este video otra vez, chicos para poder
ver realmente cómo se mapea esto, ¿verdad? Entonces voy a añadir aquí. Fresco. Entonces, ¿cuál es el objeto? El objeto que realmente estás recibiendo es de tipo
empresa Impute Empresa Impute entonces
podría simplemente llamarlo imputar menos entrada esto desde
un código Dgs JD Todo Entonces tienes esto. Seguro que te has dado cuenta de que algo
único sucedió de inmediato. En el momento en que pudiste
igualar esta firma, automáticamente, Gavke
pudo decir, Oye, reconozco
estos mapas con esto ¿Puedes ver este
símbolo automáticamente? Entonces si lo hago, si hago clic en
esto, salta aquí. Si hago clic en esto, salta
en él salta a esta lista. Se puede ver. Podría
usar eso para verificar. Instalar el
plugin graph queer hace una cosa por ti. Te permite saber
si escribiste la
firma correctamente. Pero la firma
debe ser correcta antes de poder mapear. Entonces de esta parte, si hago
clic, entra aquí. Si lo coloco ahí si hago
clic en esto, viene aquí. Demuestra que, oye, estos
mapas en realidad corresponde. Y al mismo tiempo,
también, si haces clic en
esto, también navega a esta parte, que es lo mismo, ¿verdad Todo bien. Estoy seguro que esto
es muy claro, chicos. Entonces a partir de aquí, solo voy
a convertirme en un no por ahora. Voy a volver a esto.
Vamos a repasarlo rápidamente. Podría usar una asignación de esquema. O usar un mapa de mutaciones
debido a una mutación apretada. Entonces podrías usar cualquiera
de los dos, ¿verdad? Ahora, debes asegurarte de que tu
firma es correcta. Primero, el nombre, el
nombre crea empresa. Aunque puedes hacer de este
nombre otra cosa, ¿verdad? Hasta el momento, la otra
firma en realidad Tally. Pero te recomiendo solo mantener las cosas simples y hacer que
todo solo cuente. Entonces tus entradas, antes
demostré que
no usas en equest body, usas en argumento.
Se utiliza en la discusión. Puedes encontrar en el Wi me ya lo actualicé
en el Wd me, ¿verdad? Después se da
seguimiento con lo que es objeto
en los insumos de la empresa. Entonces puedes llamar a esto como
quieras. Ahora, podría decidir
decir, ¿sabes qué? No creo que no quiera
colocar nada aquí. No coloques nada aquí,
significa que tengo que
llamar obligatoriamente a esta empresa ¿Se puede ver también mapas? la misma manera tenemos cuerpo
atiqus que
colocas tienes cuerpo atQust Entonces dentro de esto pones
un valor para poder
igualar lo que lo estás
enviando del cartero o
del mundo exterior Aquí también
funciona lo mismo. Podrías usar con o
sin los argumentos. Pero si estás colocando esto aquí, si no estás poniendo
nada aquí, Spring seguirá adelante y
coincidirá con tu nombre de variable. Tu nombre de variable debe ser
correspondiente a lo que es este. Pero si
ya estás agregando esto en Freddie agregó esto
en, no necesitas esto Puedes usar el aporte de la compañía
o podrías decidir no hacerlo. Chicos, yo recomendaría que
realmente reproduciran este video para que realmente pudieran entender
lo que acabo de mencionar, finalmente, podría decir, ¿
Sabes qué? No
quiero usar esto. Podría comenzar
esto y usar un mapeado de mutaciones en el mapeo de
mutaciones Al parecer solo necesito
tener algo así como valor y el
valor será ¿qué? El valor se crea
empresa, ¿verdad? Ves que coincide
automáticamente. Coincidencia automática. Entonces usa tu preferencia,
¿verdad? Usa tu preferencia. A lo largo de este
curso, me voy a apegar a esto porque
por alguna razón, simplemente
me conecto a él, pero utilizo alguna de sus
preferencias, ¿verdad? Espero que esto quede claro, chicos. Cuando vuelva el siguiente video, voy a hacer una explicación más sobre esto porque realmente
quiero que se si, entonces podemos continuar
y hacer las cosas. Bien, entonces,
te veré en el siguiente video.
39. Chasis del controlador de departamento y constantes generadas: Oye, ahí.
Gracias por venir chicos. Es realmente genial
tenerte de vuelta. Todo bien. En el último video,
seguí adelante a decir, podría usar el mapeo de schemer
o el mapeo de mutaciones, que ya explicaste, firma tiene que ser la misma Si en realidad estás
usando la asignación de esquemas, tienes que colocar el nombre del
tipo que es mutación de
valor y un nombre de campo. Y si estás usando mapeo de
mutaciones, solo
tienes que
usar esto directamente, entonces tu firma tiene que
coincidir con lo que tienes aquí. Este nombre no
necesariamente tiene que ser el mismo, pero tus argumentos
deben coincidir. También mencioné que podrías
decidir omitir esto. Si omite esto, significa que
su nombre de variable tiene que
corresponder exactamente a esta
misma convención de nomenclatura. Mostrar esto en el último video, podría volver a
ver realmente cómo funciona. De hecho, hemos podido
hacer esto y esto funciona muy bien. Recuerda, no
usamos nuestro cuerpo de solicitud, lo usamos en argumento. La mejor sección
hablamos de encabezados, hablamos de encabezados
y cosas como solicitar Prim para ver cómo se
traduce aquí Desafortunadamente, te sorprenderá saber que también usamos argumento Creo que
simplemente hay cinco cosas, pero esto realmente funciona muy bien. Bien, con esto para,
sigamos adelante. No voy a implementar esto ahora. No voy
a implementar esto. Lo que voy a hacer es
seguir adelante rápidamente y crear una firma
para el departamento. Voy a crear controlador de
departamento,
nuestro controlador de departamento. Consigamos un controlador,
no una firma. Contralor de departamento. Yo sólo entraría y solo sellaría esto. Yo sólo entré y solo sellaré esto. Al parecer, al parecer,
cansarse de mecanografiar. Nosotros tenemos esto. Entonces vamos a hacer coincidir esta descripción.
Quiero separar las cosas. Coincidamos con esta descripción. Estoy seguro de que ustedes ya
tienen una mano de ello. Estoy usando el mapeo de esquemas. Entonces si usas mapeo de esquemas, al parecer ese es el nombre del
tipo y el nombre del tipo sea qué mutación, mutación. Entonces el siguiente es que tienes que colocar tu campo
y ¿cuál es el campo? Recuerda que el campo es
lo que crea departamento, crea departamento.
Entonces ves público. No es que escojas la respuesta, la respuesta, apres departamentos Entonces, a continuación, vamos a importar esto. Entonces recuerda en la discusión. El argumento es lo que usamos. Entonces ya que estás
usando argumento, ¿cuál es el argumento imput Recuerda que
te mencioné, en realidad tienes
que especificar esto. Si no estás usando esto,
entonces esto tiene que corresponder. Esto corresponde y en realidad
estamos consiguiendo esto imputes vamos a traerlo Este partido ya lo es.
Ya coincide ya. Entonces esta es una variación. También tienes la
otra variación. Sólo estoy especificando esto. Elige con cuál te sientes
más cómodo. Prefiero usar
colocando esto aquí. Colocar un valor aquí, luego colocar esta firma, por lo que en realidad
coincide con precisión. Yo hago esto. Simplemente simplifico esto tiene que ser
algo así como imputas. Entonces esto es
preferencia personal, ¿verdad? Esto es preferencia personal. Entonces sólo voy a
devolver nulo por ahora. Entonces tenemos esto
cubierto. Todo bien. Antes de continuar, estoy seguro de que ustedes
podrían estar preguntándose. ¿No hay alternativa
para simplemente escribir el nombre? Esto funciona. Podrías
dejar esto como está. Pero recuerda, no
tenemos que seguir haciendo esto. Podrías seguir adelante y usar
esta mutación mappi y todo. Pero si quieren atenerse
a esto, quiero
mostrarles algo más genial, algo más genial. Lo genial es que te
han dado lo que
generaste cuando
generaste este tipo, hay un conjunto de
constantes que te han sido proporcionadas por defecto No sé si te has
dado cuenta, vamos a comprobarlo. El
conjunto de constante. Mira esta constante,
muchos de ellos. Si verificas, ya hay un tipo de suscripción para
ti llamado suscripción. Podrías simplemente llamar a DGs tipo de suscripción
constante y obtienes suscripción Si además revisas correctamente, yo escribo esto,
busco mutación. Mutación. Mutación. Entonces este es el viejo que
creamos, ¿verdad? Este es el viejo que creamos. Te alegrará saber que
también hay una mutación creada para ti. No es sólo este tipo. Tienes esto creado para ti. Además, la razón por la que no
lo
estamos obteniendo ahora mismo es porque no
hemos construido. Creo que no lo hemos hecho pero
sigamos adelante y construimos. Entonces vamos a hacer compilamos. Y una compilación. Eso
nos da esos detalles extra. No necesariamente
tengo que hacer esto. Sólo me vendría bien lo que
ya pasó
dentro de mi constante. Exploremos esto de nuevo.
Exploremos esto. Si bajo, si voy abajo
y solo busco a este tipo. Entonces tenemos una suscripción. Esto lo he demostrado. ¿Por qué no
estoy recibiendo? Se supone que tengo una mutación. Se supone que tengo una mutación. Entonces DGS, vamos a hacer se supone que va a crear
una mutación, ¿verdad Una mutación, solo mutación
constante. Esto en realidad no está entrando. Bien, gracias chicos. Tuve que pasar rápidamente el video. Tuve que quitar
la carpeta de destino porque noté que el
plugin DG no era ping nada Tuve que eliminarlo
y hacemos una compilación. Tuve que hacer una compilación volví a hacer
esto y se adelantó. Esta una constante habría sido creada para ti y la mutación C. Otra cosa que podríamos
hacer, entonces podríamos decir en lugar de crear
esto directamente, entonces
podemos decir en departamento, se podría decir DG constante, luego obtenemos un tipo de mutación Un tipo de mutación pero si se comprueba el tipo de mutación, es mutación. El tipo de mutación es mutación, o simplemente se podría decir mutación. Dots escriba el nombre, el
que funcione para ti, ¿verdad? Se lo voy a mostrar otra vez.
Te vendría bien esto. Esto
se
traduciría automáticamente en mutación como puedes ver, o simplemente podrías
decir tipo de mutación. Cualquiera que funcione
para ustedes, chicos. Solo
les estoy mostrando chicos hay varias variantes que podrían usar. Me cegaría a usar mutación, luego puntos typename. Voy a
ceñirme a usar esto. Entonces para el departamento de dejar de fumar, lo
genial es que tenemos esto también. Ya que se trata de una mutación, nos sorprenderá saber bajo mutación, la tenemos también. Cuando hacemos esto, Dots, luego creamos departamento,
puedes ver crea departamento. Debido a que especificas los scripts, una vez que realmente construyas,
te los da. Te ayuda a crear Constance que en realidad coincido con
todas las firmas Como resultado, ya no tengo que codificar nada
duro. No tengo que
codificar nada. Estoy seguro de que esto es
genial chicos, y estoy seguro de que en realidad lo
encuentras muy interesante. Esto básicamente
funciona. De la misma manera, si voy a mi empresa, esta parte, en realidad podría
sacar esto y decir DGS Mutación constante de puntos. Podrías usar el
tipo de mutación directamente, pero yo uso mutación,
puntos. Nombre del tipo. Entonces lo mismo, yo
haría la mutación DGs,
mutación, luego crearía compañía.
Alguien se pregunta. ¿Qué pasa con esto? Muy sencillo. Todo lo que tienes que hacer
es sacar esto, solo traer esto, y
esto correspondería aquí. Esto es todo lo que solo
necesitas tener. Esto funciona. Bien chicos,
estoy seguro de que de
hecho he podido aclarar. Por favor, intenta no
saltarte ningún video. Es muy importante porque
podría estar cayendo en algún concepto clave ahí que podría ser muy,
muy útil para ti. Yo sólo voy a seguir adelante y
comentar esto y ahora el patrón creó una
empresa voy a tomar esto. Bien, podría
dejar esto. una empresa, usted
tiene un departamento. Entonces en el siguiente video,
en realidad creas las
otras mutaciones. Entonces en realidad podríamos proceder. Nos vemos de nuevo chicos siguiente video.
40. Chasis del controlador de empleados: Oigan, chicos, es bueno
tenerlos de vuelta. Esto se está interesando más. Lo hemos tomado desde la
perspectiva en la que podríamos usar Schemer para el mapeo de mutaciones o mutaciones directamente Antes teníamos codificación de los valores. Ahora en realidad
hemos hecho la transición a usar el nombre del tipo Pasamos a usar la constante de excavaciones
que me generaron Al principio, estaba teniendo problemas
que no iban a entrar. Si tienes S elimina tu carpeta de destino elimina tu carpeta Pero si
usas Gdo ¿verdad? Carpeta pequeña beaut, ¿
luego reconstruir? Simplemente haz MBN compilar
o hacer un Gudo. Si no es Gdo solo toma el equivalente el
equivalente y detalles Eso es Grado Pero
solo el Gou Pero, y en realidad podrás
conseguir que esto funcione de la manera que yo lo tengo. Entonces solo estoy definiendo las
firmas que coinciden. W muestra que esto es exacto. Entonces si estoy poniendo esto
en esto es muy exacto porque este símbolo me está
mostrando eso, Oye, esto mapea a esto, así que
solo podría hacer esto, como le he mostrado a Eller hacer esto, y ya ves que en
realidad está entrando aquí. Así que vamos a crear
este final chicos. Entonces voy a entrar y
llamarlo empleado Contralor. Contralor de empleados, ¿verdad? Bien, genial, genial, genial.
Entonces lo traeremos aquí. Entonces a la comparación
también, recuerden, chicos, estamos siguiendo estamos siguiendo esa parte donde nuestra firma
debe coincidir con lo que hay aquí. Entonces veamos cómo hacemos esto. Seguro que ustedes ya
tienen una buena idea. Entonces esto es el mapeo de esquemas, derecho, que
te muestro paradero, typename y nuestro nombre tipo
será Esto es mutación dice mutación. Recuerde que mencioné, use el tipo de
mutación o
simplemente use mutación, que es el nombre alternativo del tipo de
punto. Entonces el siguiente, el campo, y el campo deben coincidir con lo que
debe coincidir con esta firma. Pero una constante
ya está disponible para nosotros. Vamos a usar también nuestras constantes dgs
constantes mutación más bien
mutacionar Impresionante. Entonces hago un público. Cuál es el tipo de respuesta, si traigo esto en el uso la respuesta de creación
para todo. Respuesta de creación,
tenemos un empleado creador, entonces nuestra firma debe coincidir. Esto no es correcto. Recuerda,
en lugar de un cuerpo de solicitud, ¿
usar qué? A la discusión. Entonces en el argumento, entonces siempre
disfruto asegurarme de que
esto realmente coincida. Esta variable coincide con
lo que estoy pasando aquí. Es opcional, pero significa
que en realidad
significa que el nombre de la variable que está pasando en este
punto debe coincidir. Así que elige cuáles son
tus preferencias, sean cuales sean tus preferencias. Entonces esto sería de este tipo de este tipo
y yo lo llamo entrada. Ves que coincide
automáticamente. Vamos a cablear esto. Fresco.
Vamos a cablear esto. Fresco. Habiendo hecho esto, ves que esto coincide correctamente. Coincide correctamente.
Esto es opcional. Si no estás agregando esto
entonces significa que este nombre debe ser igual a DigiOple el
mismo nombre aquí Antes esto realmente coincidirá, lo
contrario, no lo encontrará. También lo he explicado en un
par de videos, pero no lo sabemos,
por ahora mismo, no se sabe. Pasemos al otro Ooh. Para el otro,
que está en esto, chicos, me estoy cansando de
Creta solo duplica Por favor, no hagas esto en casa. Está mal. En realidad se duplica. Auto duplicado. Como
Eso es bastante gracioso. Entonces coloqué esta firma y el nombre debe
coincidir. Coloco esto en. Esa es una parte. Ya ves, pesar de que no he
cambiado la cosa, te
dije que esto es opcional. Al cambiar esto,
todavía no cambia. Al parecer, todavía estoy
mapeando a esto. Hagamos esto co. Agreguemos esto en. Ahora
ya no es coincidente, entonces agrego en esto. Al parecer, esto es lo que necesito aquí, que son las imputas. Vamos a hacer ping a esto.
Vamos a hacer ping a esto. Fresco. Entonces finalmente,
el nombre es lo que actualiza o llama
actualizaciones actualiza la dirección existente del
empleado. Y ves que esto
coincide automáticamente. Impresionante. Esto
funciona. Y por último, vamos a traer a este último tipo, y tenemos las actualizaciones, actualicemos los detalles del empleado. Yo también una respuesta de creación. Esto se llamaría entonces
actualizar los detalles del empleado. No, no, no, esto actualiza los detalles
del empleado, ¿verdad? Fresco. Entonces la firma
necesita coincidir. Entonces coloco esto aquí. Yo elijo esta escoge esto
y agrego esto aquí. Vamos a meter esto bien y ya puedes ver estos
partidos. De hecho, hemos podido especificar toda la entrada por o toda la mutación que
hemos creado por ahora. Esto realmente, realmente funciona, chicos. Esto realmente,
realmente funciona, ¿verdad? Creo que con esto, ahora podemos seguir adelante e implementar
algunas modificaciones. Ahora tenemos todas nuestras
firmas listas. Así que ahora podríamos entrar y empezar a crear algunos
bits extra que necesitemos. Muy bien, chicos. Nos
vemos en el siguiente video.
41. MaperUtil, parte 1: Oigan, chicos, gracias por
volver conmigo, agradezco que
regresen. Todo bien. En este video, vamos a estar
viendo Sé que aún
tenemos que implementar todos los esqueletos que
se crearon, Pero necesitábamos algún conjunto
de algunas conversiones DTO. Centrémonos en crear. Prácticamente todas las conversiones DTO
que necesitamos en este video, crean un Mapper YouTube Lo que voy a hacer, en realidad
entraré y crearé un Mapper YouTube Un mapa YouTube. Voy a
llamar a esto YouTube. Y voy a crear un
mapert Maple T. Básicamente, todo esto sería mapa Imputen entidad para
imputar que solo tenemos
todos esos detalles Voy a convertirlo en un componente, ¿verdad? Voy a convertirlo en un componente. Bien, lo primero que quiero
cuidar de los islotes mapa. Vamos a mapear una compañía imputa entidad entidad llamando
mapa a la entidad de la compañía,
la entidad entidad de la compañía Esto toma una empresa final imputa y toma
una empresa imputa Si sólo le llamas a esto imputa
o simplemente campy impute. Llamemos a esto imputa.
Genial. Vamos a cablear esto. Vamos a crear una empresa. Vamos a crear
una empresa empresa no tenemos una empresa
que establezca obtener eh. Esto es genial. Después
el número RC. El número RC. ¿Verdad? Bien, genial. En realidad
vamos por la oficina central, la oficina central S. Bien, genial. Entonces en realidad vamos por
el país. Bien, genial. Entonces en realidad establecemos
el negocio, ¿verdad? Nosotros establecemos el negocio.
Bien, genial. Entonces solo devolvemos esto.
Así que devuélveme la compañía. Bien, entonces tenemos empresa
Mm Mis entidad de la empresa. Por lo que la entrada tiene un mapa a la entidad
de la empresa. Bien, genial. Entonces bien. Creo que tenemos que ir al revés también porque
en realidad podríamos estar necesitando detalles dónde tenemos que ir de empresa en compañía y
DTO, ¿verdad? Viniendo a la empresa DTO. Recuerda, entrada es lo
que realmente estás obteniendo aquí. Así que volvamos a
correr rápidamente, chicos para que no nos confundamos. Bien, entonces si estás en compañía Loar, entonces estos son los insumos,
y este es el DTO Esto es lo que en realidad estaría enviando a los usuarios
para que ellos realmente vean qué devolver realmente como Jason de la gráfica Que, derecho. Entonces esto es lo que
realmente obtenemos
de las entradas.
Esta es esta parte. Todo esto
entra en los datos, ¿verdad? Así que recuerda, entidad es lo que
realmente guarda la base de datos. Entonces está a la derecha. Tenemos
de la entrada a la empresa, nos guarda la base de datos, luego leeremos de la base de datos y la
enviaremos al usuario, así que sea empresa a empresa DTO Entonces eso es lo que
vamos a hacer ahora mismo. Entonces esta va
a ser empresa DTO. Sí, empresa DTO, así que
mapa a la empresa DTO. Llámalo mapa a la empresa DTO. Bien, esto es genial. Bien, así que
repasemos rápidamente los escalones. Aquí
va a pasar lo mismo de verdad. Entonces vamos a hacer una compañía que diga esta vez,
estamos seguros de que vamos
a tener un UUID, ¿verdad Asegúrate de que vamos
a tener un UUID. Entonces compañía de mapas,
obtendrán el UID. Bien, eso es genial. Eso es bueno, chicos. Después el siguiente. Creo que debería ser compañía para? Sí. Bien. Entonces esto
espera una cadena, esto viene UID, solo
di puntos UUID, Creo que esto es genial. Sí. la misma manera,
vamos a estar necesitando todos
estos otros detalles. Sólo voy a sellar
todos estos detalles. Selle todos estos detalles,
colóquelo aquí, cambie todo esto a
empresa a empresa
A, luego cambie todos los
insumos a empresa. Todo bien. Bien, genial. No devuelvas la empresa DTO. Entonces quieres su UID,
el nombre, el número RC, el país de la
oficina central
y el tipo de negocio Bien. Bien, así que esto es genial Ahora, hagamos lo mismo con los
departamentos, ¿verdad? Hagamos lo mismo con los
departamentos. ¿Bien? Entonces voy a entrar y sólo decir departamentos públicos públicos. Departamentos Departamentos. Sé que hay una pregunta
en la mente de alguien. ¿Por qué no estamos usando
una biblioteca para hacer esto, verdad? Sé que esa es
la pregunta. ¿Por qué no estamos usando
una biblioteca para hacer esto? Voy a responder esa
pregunta en 8 minutos. ¿Bien? Vamos a escribir esto
rápidamente. Yo sólo lo entiendo como un aumento. Bien. Entonces tenemos
departamentos departamentales, cool. Entonces Departamento establece nombre C Departamento
sí establece el número RC. Departamento Departamento
establece el número de departamento. Fresco. Bien, entonces iremos ahí. Nombre de la compañía del conjunto de departamentos. Establecer el nombre de la empresa. Bien, genial. Entonces hemos hecho el número RC. Después división, Departamento
de división de conjunto. Departamento sí establece división. Sin número de departamento,
hecho esta División. ¿Estamos agotados toda la entidad? Déjame confirmarlo.
Pongamos a los derechos. Entonces lo que el campo me refiero a decir. Si lo miras, nombra el número de
departamento, entonces solo puedo
arreglarlo correctamente. Nombre número de departamento,
nombre de la empresa, división de números RC. Genial, genial. Cuando
quiero establecer esto, sólo
regresamos departamento. Bien. El conjunto que queremos establecer de departamento
a departamento DTL Todo bien. Entonces lo mismo chicos que
nosotros hicimos para la compañía. Vamos a
repasar esto también. Sí, el socio DTL. Esta vez,
UID, eh, esto funciona. Ponemos el nombre, establecemos el número de departamento,
establecemos el nombre de la compañía, luego establecemos el número C, luego la división,
y eso funciona, y eso funciona, luego
giramos departamento. Entonces todo UID, nombre, uh, el número de socio, número
RC, número C. Nombre de la empresa. El número C
debe venir antes. Nombre de la empresa,
número C, división. Entonces hackeamos esto. Todo bien.
Entonces antes de que terminemos esto. La pregunta que creo que
alguien se está haciendo es, ¿por qué no estamos
usando la biblioteca? Sé que tenemos bibliotecas, ¿verdad? Sé que tenemos bibliotecas
como J Mapper. ¿Tienes bibliotecas
como J Mapper? Tenemos bibliotecas como
biblioteca como J Mapper, tenemos Model Mapper Tenemos modem Mapper,
tenemos planos de mapa, y todas estas son
grandes bibliotecas También tenemos creo que
hay uno que se llama Dozer. Creo que Dozer Mapper,
si no me equivoco. También tenemos creo que
desde la primavera
tenemos siendo Copy piensa
ser Copy UTs, si me equivoco, creo que siendo
copy Utils, pero no demasiado. Creo que está siendo Copy Utils. Yo uso a todos estos tipos, o uso la mayor parte. He usado Model Mapper,
he usado ser Copy UTS. También he usado
otros tipos, ¿verdad? Pero esto es lo que
quiero que ustedes sepan. Cada uno de todos estos chicos internamente
utilizará la reflexión para poder determinar
el nombre del campo, ¿verdad? En realidad es usar la
reflexión para determinar el nombre del campo para la
mayor parte, ¿verdad? O debería decir
la mayoría de estas bibliotecas, y hay un costo de
rendimiento para ello. Entonces deberías usar
biblioteca, ¿verdad? Esta es totalmente mi opinión. La programación es un
conjunto de compensación. Hay que determinar si
es lo que es esa actuación. Ahora bien, esto es lo que hago. Si tengo campos que
van más allá de diez, 15, eso va a ser muy
difícil de manejar. Entonces puedo confiar en una
de estas bibliotecas. ¿Por qué? Porque estoy dispuesto a soportar
realmente los costos de
rendimiento, o los pocos gastos generales que
realmente se suman a
la aplicación. Así que mantén esto como regla general. Si tiene muy pocos
datos o muy pocos campos, por favor no cargue la
aplicación mediante el uso de bibliotecas. No se pueden usar totalmente
las bibliotecas. Trabajan grados. Si ya tienes la
dependencia en y la usas digamos para uno de tu
clase o DTOs, puedes simplemente usarla sobre
rodar todo el sistema Tienes muy poco,
muy pocos campos, en
todo el sistema. No borden la
aplicación usando la biblioteca porque
vamos a usar una biblioteca, solo tenga en cuenta,
habrá un pequeño costo general Si puedes vivir con
eso, entonces eso funciona. Chicos, los veré
en el siguiente video.
42. MapperUtil, parte 2: Bien chicos,
gracias por volver. Es genial
tenerte de vuelta, ¿verdad? Entonces expliqué por qué en realidad
comenté esto por qué
deberías usar bibliotecas, por qué no deberías usar bibliotecas. Es totalmente obstinado. Bueno, tengo mi opinión. Quizá tengas tu opinión. Estas bibliotecas son muy buenas, han sido mejor probadas. Pero también recuerda, tiene un poco de sobrecarga.
Vamos a continuar. En este curso, no voy a usar ninguna de esta biblioteca porque los campos son
muy pequeños y de hecho
podemos manejar
las cosas por aquí. Adelante rápidamente y luego agreguemos algunas transformaciones DTO más Todo bien. Así que hemos podido
hacer departamentos de la compañía. Así que en esta ocasión,
pasemos a esta época, pasemos a abordar, ¿verdad? Creo que podemos hacer
dirección ahora mismo. ¿Bien? Entonces hay dos direcciones. Bien, entonces tenemos público
una dirección pública, dirección, luego mapa
a dirección entidad. Sí, así que toma esa entrada. Tomar dirección dirección, luego conjunto de
direcciones Ciudad que funciona, conjunto de
direcciones CLK,
conjuntos de direcciones ID de entidad, ID de entidad Bueno. ¿Quieres llevar
esto a la cima? Entonces dirección do set código
postal conjuntos
código postal, Imputs código postal Creo que me falta
algo. ¿Eso es todo? ¿NTT? Sólo vamos a confirmar. Traeré a este tipo
aquí. Vamos a revisar. Entonces tenemos ID de entidad, ciudad, calle, me
faltan las calles, ¿verdad? Entonces me falta la dirección de la
calle, las calles establecidas Calle. Entonces entidad ID, calles, ciudad estados
código postal. Estas palabras. De hecho, he podido completar esto, volvamos. Todo bien. Recuerden, chicos, si han
olvidado el ID de entidad, es decir para empleado, el ID del empleado
o el ID de origen o básicamente el
número de departamento porque todos
estos tipos toman
la dirección, ¿de acuerdo? Bien así que queremos
mapear el K. Gracias. Quiero mapa desde dirección
a DTL, dirección DT. Vamos a empezar con UUID. Creo que UID tendría más
sentido. Lo voy a poner aquí, dirección establecida UID, UID, no UD Simplemente tome esta dirección
que obtenga UID. Sitios está bien, dirección TO porque sabía que
necesitaba usarlo para encadenar. Después puntos a cadena. Al solo puedo copiar todo
esto porque al parecer, solo
voy a usar esta
dirección, dirección, dirección a ellos. A favor pero copiar llamados males de copiar y pegar podría
llevar a algunos errores graves Entonces sólo voy a devolver
mi dirección DTO. He podido
llenar esto. Genial. Vamos a citarte una vez más UID, HTID, las calles, la ciudad, el estado, el código postal Todo bien. Déjeme darme más
espacio. Muy bien, genial. Público, ahora pasemos a, hemos podido
mapear poder mapear las entradas de dirección de dirección
a la dirección la dirección. Entonces creo que entonces podemos
seguir adelante. Todo bien. Estoy pensando en ir a
necesitar dirección DTA para abordar, pero creo que podemos seguir
adelante si se vuelve
importante entrar Así que ahora vamos a movernos así que vamos a hacer es que realmente
vamos a conseguir que los empleados subcontraten
al empleado DTO, Déjame
dividirlo. que eso haría que
unos empleados DTO,
el Mapa dos, Empleado
Empleado DTL De veras no
quiero aburrirlos chicos. Seguro que esto es bastante
aburrido tener que hacer esto. Déjame pasar por tus
espacios, y volveré. Yo habría
hecho esto batalmente, ¿de acuerdo? Todo bien. Bien, chicos, en realidad
voy a
agregar esto. Entonces, si lo miras,
si revisas la entidad, esa es la entidad del empleado. Entonces tenemos el nombre,
fecha de nacimiento género. Así que solo colocas
todo esto adentro, ¿verdad? Entonces todo funciona en edad,
edad, nombre de la compañía telefónica, departamento de identificación de
empleado, número, correo electrónico y rollo. Entonces tenemos esto. Y también lo hice por el OutsourcTo e
hice lo mismo Así que
en realidad todo funciona muy bien. No obstante, hice
un simple cambio. Yo estaba usando aquí
tenemos ID de subcontratación. Contamos con ID de subcontratación. Sin embargo, estaba usando subcontratados como si hubiera
una D ahí Entonces simplemente cambiamos. Entonces,
si revisas esto, era una D la cual cambié. Después reduje el proyecto. Y luego construimos
el proyecto y eso fue eso muy vital. Pensé que debería mencionarlo en la
tele. Ahora, por favor, tenga en cuenta una cosa
que realmente podría encontrar. Vas a estar usando de la misma manera que en realidad hice esto. Si no quieres pasar
la cadena aquí, recuerda que
te mencioné que podrías usar string y simplemente pasar
una mutación aquí. Yo pasando el nombre
del campo que
expliqué en los videos anteriores realidad
estaban desarrollando esto. Si vas a estar
usando la constante DGs, cuando intentas
compilar, tienes errores Déjame mostrarte. ¿Verdad? Este es un error al que probablemente te enfrentas, diciéndote eso, oye, no
puedo encontrar esto. ¿Por qué? Si en realidad encuentras
este error, es muy sencillo. Todo lo que necesitas
hacer es comentarlo, eliminar la carpeta de destino. Después revisó. Entonces eso es básicamente
todo lo que necesitas hacer. Entonces, una vez que reconstruyas, eso realmente
se sincronizará. No sé si es
un bicho, no puedo decirlo, pero en realidad simplemente funciona. Una vez que lo hayas hecho, así que
todo acaba de regresar. Entonces, si vienes aquí
y solo traes esto abierto, ves que todo funciona
como deberías, ¿verdad? Entonces esa es una cosa común que
notarás, ¿verdad? Entonces es una elección.
Quieres realmente usar un patrón de fuerza o
quieres realmente d GS dolor constante, lo que realmente funcione, ¿verdad ¿Bien? Cualquiera que funcione Es solo que tu
elección. Todo bien. Así que en
realidad hemos podido traer a este tipo. Entonces creo que también necesitamos
todavía tenemos sobre creo que
cuatro detalles más por ir. Se supone que tenemos que mapear
empleado DeTo a empleado. Así que voy a
pausar rápidamente este video de nuevo. Entonces también voy a mapear
el empleado a detalle de empleado, y en realidad voy a
mapear el subsourcitu para subcontratar y mapearé el
subcontratar a nuestro Socito Entonces voy a hacer eso rápidamente en esto hagamos
una pausa rápida y volveré. Bien chicos, aquí lo tenemos. Tenemos el empleado
DTO a empleado. Yo sólo sigo esta misma
cosa, el mismo patrón. Tenemos el nombre,
la fecha de nacimiento, el género, el salario, la edad, el teléfono, el nombre de la
empresa, genial. Tenemos a los empleados. Tienes el número de departamento de
identificación del empleado, correo electrónico y rollo que
solo estoy comparando esto. Y lo mismo para el empleado
quejoso al área de
empleado pase UID y en realidad
tenemos esto, Y eso realmente funciona muy bien. Lo mismo para subcontratar para que puedas demostrar que
esto realmente funciona Ahora bien, lo que entonces puedes hacer
es que puedas empezar a factorizar? Porque al parecer hay
varias repeticiones, me perdí todas estas cosas Entonces cuando lo tienes, si has decidido no ir por la ruta de las bibliotecas, lo cual mencioné, si quieres seguir esto
mientras estás codificando, y asegúrate de factorizar esto
realmente,
puedes refactorizar esto porque
aquí hay varias similitudes, ¿verdad Con esto, entonces podemos
pasar al siguiente video.
43. Servicio para mutaciones, parte 1: Hola, chicos. Es genial
tenerte de vuelta. Todo bien. Entonces vamos a continuar desde este video para luego
implementar nuestros servicios. Como notas, solo tenemos los esqueletos para todos estos endpoints
o endpoints gráficos Esta vez, vamos a
crear estos servicios. Seguimos siguiendo el modelo, que separaba
las cosas en paquetes. Simplemente entramos y
creamos un servicio. Creamos servicio. Muy bien, genial.
Lo primero que vas a crear, vamos a crear los servidores de
nuestra empresa. Servicio de la empresa. Y una parte hacemos de
esto un servicio, y también traemos el constructor us
requerido para que no tengamos que
declinar explícitamente una inyección de constructor Entonces vamos a traer el repositorio
de la compañía, y eso realmente
nos ayudará a poder cablear las cosas. Bien. Bien. Entonces al mismo tiempo
también, como ustedes saben, en realidad
hicimos un
poco de trabajo en MPA Util Aquí es donde realmente va a entrar o será útil, ¿verdad? Mapeador Util. Mapa T. Muy bien, genial. Sólo vamos a
crear un público. Solo escojamos nuestra firma. Simplemente tenemos
todo justo aquí. Devolvemos una respuesta, tenemos una respuesta de creación pública,
respuesta de creación. El crear empresa, entonces recibimos una empresa imputes
recibir una empresa imputa empresa imputa imputa
, solo
puede llamar a los Imputes llamar a los
imputes Entonces lo siguiente que creamos entonces
entonces lo persistimos. Simplemente persistimos. Ahorro de la empresa. Después te traeremos el mapeador,
luego mapearemos a entidad de la empresa, pasamos en nuestras imputas, luego podremos recibir de
vuelta los detalles Ya ves cómo
colocamos a nuestros chicos, ¿verdad? Todo bien. Así que compañía. Bien, somos capaces de usarlo. Esto para convertir nuestra
empresa en empresa, la entidad de la empresa putter de
la empresa, entonces en realidad la
guardamos y la guardamos de nuevo Entonces podemos devolver nuestra respuesta. Podemos simplemente decir el
constructor de la creación, entonces tenemos esto. Recuerden, chicos, mencioné
antes que cada vez que realmente
generas
un tipo E, ¿verdad? Y estás usando Graph QLS, automáticamente
tienes
un constructor, ¿verdad Eso lo mencioné en uno
de los videos anteriores. Entonces, si solo pudieras entrar, eso debería estar en las
fuentes generadas que tenemos esto. Vamos a comprobar nuestra
creación, ¿verdad? Esta creación
principios, podemos ver va a
existir constructor un
constructor dentro de ella, ¿verdad? Comprobaremos departamento DTO. Si bajas, también existirá dentro él un constructor
Siempre hay un constructor para
cada uno de ellos. Lo cual es una gran adición
para el Cogen. Gracias, chicos. Gracias Cogen. Todo bien. Entonces
puedes entrar aquí. Recuerda devolver si
revisas su firma, firma es solo mensaje de
éxito y UID No queremos darte
demasiada información, así que solo tienes el UUID,
eso será seguro Creo que solo
lo llamamos Cty persistente. Persister Cty. Cotini sap company, luego TUID,
obtener UID, luego Bien, genial. Entonces
mensaje, después éxito. El éxito es cierto. Sé
que tienes éxito. Entonces tenemos una empresa, solo dale algunas cosas geniales. Empresa con nombre, ¿verdad? Uh, eh, creado con éxito. Todo bien. Esto es todo
lo que necesitamos hacer chicos. Entonces podemos escoger que hemos
podido hacer esto. Así que entremos rápidamente y
conectemos un servicio de
departamento, o vamos a crear el servicio
departamental. Ir en departamentos deben ser departamentos,
departamentos, ¿verdad? Servicio departamental, solo
vamos con el mismo flujo al
servicio al servicio, luego ata trimestres constructor. Después traemos el depósito privado del departamento
final. También necesitamos un Mapper YouTube,
Mapper YouTube, Paz Todo bien. Entonces pienso extra
especial para que no creamos. Entonces, ¿cómo creamos Muy simple. Solo tenemos la misma
metodología pública, luego creamos respuesta al paciente, respuesta al paciente mascotas departamentos con
Departamento imputa Departamento imputa,
entonces puedes llamar a estas imputas,
¿verdad? Bien, genial. Entonces entrando aquí, entrando aquí, entonces podemos tener. Entonces vas a tener guardado el trámite
departamental. Entonces tenemos el
mapeador que le dices, departamento a entidad pasando las entradas, luego lo
recibiremos Pero si te estás preguntando el
comando que uso para hacer esto, una vez que estás usando un Control sV, creo que debería ser un
comando Os B en la marca. Control OT V te dará
la variable directamente. Voy a llamar a este departamento
persistido. Tienes
profundidades procesadas, ¿verdad? Sí. Bien. Entonces, entonces tenemos esto. Recuerden, chicos, aquí
también hay algo único. Si nos fijamos en el
Departamento Impute, ¿verdad? Departamento impute también
toma dirección impute. Entonces, por favor, no se olvide de eso.
Se necesita dirección imputa. Entonces, ¿qué haces
cuando estamos mapeando? Recuerda, no mapeamos
nada llamado dirección, ¿verdad? No mapeamos nada
ni corres solo ignoramos porque el objetivo
era complicarlo aquí. Entonces puedes entrar
aquí y decir Mapper UT punto a la entidad de dirección Entidad de dirección,
van a pasar entrada que obtiene dirección, ¿verdad? Sí, esto nos da la entrada de dirección y
tenemos lo que necesitamos, y esto básicamente
crearía la dirección, usaría Gali crear la dirección Entonces podemos entrar aquí
para luego guardar la dirección. Sólo vamos a
saltarnos eso por ahora. Entonces antes de guardar, recuerda que necesitamos
crear el IDD Necesitamos realmente
guardar el ID de entidad. Recuerda dirección tiene
algo llamado ID de
entidad que
usamos para identificar si viste el departamento, el empleado o el asociado
voy a decir dirección. Entidad de Cert de puntos, ID de entidad y elijo el número morado del
departamento persistido Entonces voy a hacer
un servicio de dirección, que aún no tenemos. Address service dot save
pasándole la dirección, eso básicamente
creará una dirección. Simplemente puedes seguir adelante y luego devolver una respuesta de creación aquí. Entonces solo devolvemos el UUID. Entonces, sí, esto será pert Departamento
punto Obtiene UID, UID ¿Por qué el UUID automático apunta a la cadena? Entonces el
departamento de mensajes creó. Diré departamento
con nombre nombre, persistió luego
creado con éxito Entonces pasamos el éxito
punto éxito thensu ahora tenemos básicamente
lo que necesitamos Volvamos en el
siguiente video para continuar. Los veré chicos
en el siguiente video.
44. Servicio para mutaciones, parte 2: Bien, gracias por regresar, chicos. Es bueno
tenerte de vuelta. Sigamos desde
donde paramos. Hemos creado un servicio de empresa, y yo he creado un departamento. Ahora una cosa
departamento requiere dirección y no hemos
podido hacer esto. Vamos a entrar
y luego mapearlo. Ahora elegimos entradas para obtener la
dirección luego
la
mapeamos a la entidad de dirección que podemos hacer aquí y esto realmente resuelve estos detalles, lo cual
es bastante genial Ahora, como notarás
la entrada en este momento, si realmente estás
pasando la entrada, entrada básicamente entonces aquí, para la entrada
será nula, así que luego
podremos entrar y luego proceder. De hecho, podrías haber
hecho esto de dos maneras. De hecho, podríamos haber
establecido nuestra entrada solo para ingresar get address, establecer ID de entidad, luego establecer este firststival
luego antes de hacer esto de cualquier manera que funcione Podría haber sido
algo así, podría haber hecho
PID set entity ID. Establecemos ID de entidad, por lo que tenemos
el ID de entidad de antemano. ¿Correcto? Podemos simplemente elegir
esto y colocarlo aquí, luego antes de que realmente nos fijemos. Sea cual sea la forma
que funcione o simplemente entres y pongas. Pero de cualquier manera funciona, así que solo voy a
comentar esto. Yo solo real para
compartirles sobre que vamos a hacer esto. Lleguemos tarde y luego solo
proceda el empleado, ¿no? Entonces voy a llamar a esto. Porque vamos a estar haciendo todo lo relacionado con los empleados, lo
llamaré empleado Servicio de
Outsource Externalizar empleados.
Voy a abastecer el servicio. Fresco. Entonces lo tendré como servicio y requiero
X constructor. Entonces traemos un par
de cosas, un depósito privado, final empleado, uno privado,
el
depósito final de Asurce Entonces también necesitamos nuestro Mapper UT,
final, el Maper UT
Upper YouTube, Creo que eso es básicamente
lo que necesitamos por ahora. Todo bien. Vamos a entrar
y empezar las cosas. En primer lugar, vamos
a crear a nuestro empleado. Voy a convertirlo en un
privado, uno privado, verás la razón por la
que la respuesta de creación, luego crear crear empleado. Esto tomará en el
empleado voy a fuente Impute. Recuerde, empleado
subcontratar imputa imputa. Recuerda, si realmente
vamos a la firma, bien, simplemente salta aquí. Eso es lo que estamos esperando. Así que en realidad esperando
al empleado que los fuente les puse a
estos tipos recordar. Así que eso es con lo que realmente
vamos. Todo bien. Entonces, ¿cómo sería esto? Ahora, queremos cortar solo
al empleado solo. Esto es bastante
sencillo. Tenemos que hacer algunas comprobaciones para asegurarnos de
que las cosas están bien. Entonces decimos si F,
entonces las colas de cuerda. Corbatas de cuerda del marco de
resorte. También tienes uno
de Apache Apache común entonces nosotros hacemos el texto HAS. Un texto no imputa un
nombre. No necesito un nombre. Impute obtiene empleado de entidad
empleado Necesito ID de empleado. Necesitamos que esto esté
disponible y OCO Bien. Después cadena TSS. Ustedes exactamente lo que estoy tratando de lograr
en un minuto, chicos. Cadena TSS, luego texto de punto, texto H luego obtiene Departamento Tiene punto de texto Impute
obtiene el número de departamento. ¿Bien? Entonces tomemos una más o cadena que uses tiene texto. Entonces diga imputa que
recibe correo electrónico recibe correo electrónico, o Impute obtiene fila igual a Entonces lo que haremos
es que vas a mostrar una nueva
excepción de tiempo de ejecución. ¿Por qué es esto? Esa será la identificación del empleado. ID de empleado juntos. identificación de empleado, número de departamento requiere identificación de empleado, número de departamento, número de
pieza, correo electrónico. Estamos tratando de
crear el empleado. ¿Cuál es la distinción? Entonces si realmente revisas nuestra entidad y traes aquí
al empleado. Si miras al
empleado, al parecer, así es como distinguimos
entre empleado y el externalizado estos
detalles son los mismos Recuerden, teníamos un
concepto llamado
interfaz de persona en la gráfica Q, menor creó a la persona solo para refrescar
nuestra memoria, ¿verdad? Y tuvimos que el empleado
hereda esto, hereda a la persona,
y esto es lo que realmente distingue al
empleado del subcontratar Y si nos fijamos en externalizar
también lo mismo, ¿no? Son estos detalles a continuación los que realmente distingue lo
resentido por esto Entonces lo que estamos diciendo aquí es si estas cosas
no existen, si este patrón
no tengo texto, por
eso en realidad
se niega aquí Si esto no tiene texto, es por
eso que número de departamento. Y si el correo electrónico
no tiene pruebas, ¿verdad? El correo electrónico
no el correo electrónico no tiene derecho de texto,
y la entrada es no. Al parecer, si algo
de esto es cierto, al parecer están
diciendo que
se requieren estos detalles , así que
por favor proporcione eso. No obstante, si esto no es nulo y se proporcionan
estos datos, significa
que tenemos todo lo que
necesitamos para crear a nuestro empleado. Lo que vamos a hacer es
que en realidad es un cambio. De hecho vamos a
intercambiar nuestras imputas. Imputa. Podríamos hacer
nuestras inclinaciones Mapper, vamos a hacer a
empleado a empleado No tenemos imputas directas. No tenemos imputes directos, ¿qué podemos hacer? Bien. Entonces hicimos algo. De hecho, podríamos
usar la PC de los empleados. Tenemos el empleado
MPO que es este que se convierte en un
DTO luego podemos tomar del DTO y podemos mapear desde el DTO a la entidad
del Entonces ese sería el
gran yo, ¿verdad? Para que seamos capaces de
lograr realmente. Ahora la razón por la
que tenemos este problema es porque no es un problema
porque decidimos que en realidad
vamos a mapear
tanto al empleado también deberían venir
de un único punto final que encajando a
otro punto final. Entonces creo que eso está
claro, chicos, ¿verdad? Así que podrías simplemente
volver a lo que acabo decir para que en realidad tenga más
sentido Por lo que estamos pasando
al empleado y la externalización se le imponen
detalles dentro Entonces es por eso que los estoy
separando, creando un
detalle de empleado desde aquí, para que puedas tomar el
DTO empleado y trasladarlo a
la entidad de empleados Lo mismo que vas a
hacer por el subcontratar. Hagámoslo de inmediato. Entonces tienes el
Mapper T eso es mapa. Entonces empleado DTO, entonces
esto toma las imputs. Solo tomas entradas, ¿verdad? Solo toma entradas y en
realidad obtenemos el código DTO del
empleado Entonces desde el empleado
DT podemos entonces decir empleado posit Employee
posit puede luego guardar El autocompletar es en realidad
un desastre entonces podemos ahorrar. Bueno. Ahorro. Entonces toma el mapeador
te dos puntos, entonces ahora estamos convirtiendo
a entidad de empleado y pasando el empleado
DTU que funciona y
persistimos conseguir un empleado persistido,
empleado persistido Todo bien. Genial. Entonces
tenemos eso realmente salado. Bueno, déjame darme
un poco de espacio. Entonces eso en realidad salado. Entonces otra cosa. Recuerda, en este pa en particular, también
tomamos la
lista de direcciones porque podrías pasar una
lista de direcciones, ¿verdad? Podrías pasar una
lista de direcciones. Así que voy a entrar y
simplemente wutly cablear eso. Entonces vamos a
tener los insumos. No sé cómo los
imputes obtienen dirección. Si no obtienes
la dirección de la corriente de transmisión, entonces podemos mapearla, el
mapa, crear el mapa, luego elegir un mapa en YouTube, luego hacemos referencia al
mapa para ajustarlo a ti, genial, y hacer referencia al
mapa para ajustarlo a ti. Y después de hacer eso, ahí
podemos tener yo luego mapa otra vez, luego escojo el detalle
que luego estamos obteniendo detalle
ahora tenemos un detalle, entonces
podemos crear
algunos detalles podemos decir
el mapeador decir que
para mapear dirección entidad Tenemos el mapa en esta entidad, el obtener el detalle. Al parecer, entonces
en realidad tienes la dirección. Entonces desde la dirección, entonces
puedes decir, Oye, dirección, quiero que
pongas el ID de entidad. Establecer el NCI luego elegirá
el ID de empleado persistido. Eso realmente llenaría en detalle luego
devolverá la dirección. Después de devolver la dirección, entonces entonces podemos decir, Oye, quiero que esto se enumere a la lista. Al parecer, esto en realidad
no está claro. Aquí hay un error
que van a arreglar en el siguiente video
45. Servicio para mutaciones, parte 3: Oh, genial. Gracias
por regresar, chicos, y un placer tenerlos aquí. La razón por la
que tenemos este error es porque estamos especificando la
dirección B que esta Voy a necesitar inp podríamos simplemente mapear un aumento
directamente a una dirección. Creo que eso es lo
que necesitamos. Simplemente mapeamos P duramente a la dirección. Al parecer,
aún
no tenemos el UID porque
no se equipara, Entonces eso es exactamente lo que
vamos a hacer. Simplemente entramos
y lo hemos hecho. Vamos a hacer
en vez de mapear esto, ya no
necesitaría esto. Así que normalmente puedo
quitarme esto. Voy a quitar esto. Entonces
voy a decir esto para imputar ¿Debería ser imputes? Imputar o debo simplemente
llamarlo dirección imputes? Domicilio imputa. Entonces pasaré en
la dirección imputa. Ahora bien, esto no dará ningún error. Tengo que devolverle esto para que
podamos devolver una lista de direcciones para devolverlo Control sV o
Comando O V en su caso. Voy a tener lista de direcciones. Genial. Ahora tenemos esto. Entonces podemos seguir adelante para decir que queremos nuestro servicio de dirección, que aún no hemos creado. Entonces queremos salvar a todos. Al parecer se puede llevar todo pasando la lista de direcciones y
eso va a ser agradable. Entonces, al mismo tiempo,
puedes devolver nuestra creación con nuestro constructor de respuesta de
creación, luego esto, que sería esto. Al bajar, queremos el UUID, que realmente persistió, este sería UID, ese ID Queremos el UUID aquí. Obtiene UID autocompletado UID. Después puntos para encordar. Genial. Entonces ese es el mensaje, luego puntea el éxito,
lo cual es cierto. Entonces por aquí no teníamos los mismos formatos
que hemos estado usando. Empleado empleado con nombre. Con nombre, entonces tienes
esto creado con éxito. Todo bien. Esto es genial,
chicos. Esto es genial. Ahora hemos sido capaces de resolver esto
en realidad. Así que sigamos adelante y luego
creemos para subcontratar. Lo que hicimos lo pasé
rápidamente, lo que hicimos, estamos tratando de
verificar. Hicimos una comparación. Estos son los principales detalles que
necesitamos que distinguen al empleado del subcontratar
para dividir el subcontratar a la Si nos fijamos en esto,
eso es lo que
los distingue porque todos estos
detalles son iguales Entonces estamos comprobando si
esto no es nulo, esto no es nulo,
todo esto disponible. Entonces si alguno de ellos no
está disponible, al parecer, esa persona no
es un empleado. Por eso hacemos zoom aquí y
en realidad mostramos una excepción. No nos preocupamos por
la excepción. Vamos a manejar la
excepción en este curso, y en realidad tomamos
esa sección separada. Entonces la siguiente parada, luego
creamos la entidad o la entidad de empleados después de crearla y
¿cómo lo hicimos? Recuerde, esto en realidad está abarcando tanto
al empleado al insumo subcontratado ahora lo estamos separando pasándolo y obteniendo el DTO del empleado,
entonces el empleado DTU luego está obteniendo la entidad del empleado luego la guardando,
obteniendo la
entidad persistida No teníamos esto, y luego
montamos detalles.
Pero me perdí esto. Ahora que tenemos al empleado
persistido, no
necesitábamos esto para mapear
realmente a la dirección y la dirección
muy probablemente sea una lista Damos la oportunidad ver
realmente
más de una dirección. Así que estamos haciendo
es simplemente streaming
a través de streaming a través de
la dirección impute después de transmitir a través de
la dirección imputa, entonces estamos mapeando la dirección
impute a la entidad de dirección Entonces estamos configurando o más bien
actualizando el ID de entidad, para poder conectar a
este empleado a la dirección. Entonces estamos devolviendo la
dirección y obtenemos una lista completa. Entonces esto lo están guardando. Esto realmente va a
proporcionar implementación. Pero estoy seguro de que se trata de chicos
muy regulares. Después siguiente, vamos a
buscar otro método privado. Mencioné que esto es privado.
Esto también será privado, y os voy a mostrar chicos en un rato. Entonces esto también seguirá nuestra respuesta de creación
Formax. Por lo que el
sistema de respuesta de creación se creará externalizado para crear externalizado Crear externalizar y también
toma en las mismas imputas. Ahora, hacemos el mismo conjunto
de validación, ¿verdad? Aquí va a pasar el mismo conjunto de validación porque si lo
pensamos, no está disponible. Sólo estoy pensando en uno. Probablemente, básicamente podríamos
saltarnos esta validación. Si esto está disponible,
entonces es un empleado. Si no está disponible, podemos
asumir que es un subcontratar, aunque
en realidad podríamos hacer más validación, pero creo que podemos trabajar con esa
suposición por ahora Pero lo correcto
hubiera sido, entonces podemos comprobar si esto
también es un subcontratar No es un subcontratar, entonces también
podemos lanzar una excepción Significa que los detalles, no
se pasaron los detalles propios, o esto es pase
o esto se pasa. Vamos a seguir adelante y
simplemente configurarlo a justo si Si esto tiene imputs
pero en esta ocasión, vas a ver si
esto no tiene texto,
que sale tan ordenado, que sale tan ordenado, lado no tiene
texto o el deber es nulo,
o imput obtiene deber
es igual a Igual a nulo, ¿verdad? Entonces puedes mostrar
otra excepción. Sí, esto se requiere, ¿verdad? Se requiere de estos dos. Justo lo mismo que en realidad
hiciste aquí. Entonces si esto se requiere, entonces esto también se requiere, para el subcontratar,
entonces puedes
seguir adelante y luego
crear nuestros detalles Entonces seguimos adelante y
decimos, ¿es esto correcto? Impulso, entonces Oh,
genial, genial, genial. Esto es gracias a completar. Y teniendo esto en,
entonces puedes decir externalizar repositorio,
punto guardar, luego mapeamos
esto a la entidad, y esto realmente
crea para nosotros. Entonces podemos hacer código
esto persistió. Dejar tercerizar. Para que no se subcontraten. Esto es genial. Déjame cerrar
esta para darnos un imbécil Muy bien, tan genial. Entonces tenemos esto. Al mismo tiempo, así que
guardamos una lista, ¿no? Nosotros guardando una lista. Entonces solo va a ser
el mismo formato, ¿verdad? El mismo formato con el que realmente
trabajamos por aquí. Sólo voy a copiar todo esto, o simplemente plasmarlo aquí, ¿verdad? En esta ocasión, no
tenemos nada copia hermana, así que necesitamos los persistidos no subcontraten,
saquen el ID de origen Entonces eso es básicamente lo que
necesitamos aquí, ¿verdad? Básicamente solo necesitamos esto y hemos
podido lograrlo. Entonces al parecer estamos
ahí vamos a salvar. Vamos a guardar
toda esta lista de direcciones. Voy a salvar esto. Después el regreso nuestros datos. Esto también seguirá
el mismo formato. No hay cambios a
excepción de las redacciones. Luego traemos al subcontratar
persistido. Sí, esto funciona
en, esto entra, supone
que debe ser
subcontratado, subcontratado Obtuve con nombre,
creado con éxito. Creo que en realidad he
podido completar esto para el empleado. También tenemos algunos otros
detalles porque si
realmente recuerdas mira nuestra mutación, aún así lo hemos hecho,
fueron los empleados de crear. Necesitamos actualizar la dirección del empleado
existente y actualizar los detalles de los empleados. Dicho esto,
te veré en el siguiente video.
46. Servicio para mutaciones, parte 4: Oigan, chicos, genial
tenerlos de vuelta. Todo bien. Recuerda, creamos esto como un método privado y
este es un método privado. Ahora vamos a ver la
razón por la que hicimos
eso y es porque queremos que
todo tenga puntos de entrada. Entonces decimos respuesta de
creación pública y solo decimos crear empleado subcontratado Esto se encargará de ambos. Cuando entonces tengamos
esto externalizado, entonces estaremos tomando en el imput que es empleado
subcontratado Nosotros lo llamamos imputa. Ahora bien, como
distinguimos return
tenemos nuestra cadena
que pruebes tiene texto. Así que luego pasando imputes
punto obtener nuestra fuente TD. Entonces así es como
voy a distinguir. Entonces si esto no
tiene nuestra fuente TD, eh
eh e imputa que
obtener deber es igual a nulo Esto es nulo, entonces voy a volver crear empleado
para crear empleado. Si no, entonces
creamos externalizar. Se
puede crear externalización Todo bien. Así que recuerda, esta es la misma lógica
que hicimos aquí. Creo que entonces puedes seguir adelante
y quitar esto, ¿verdad? Así que podemos quitar esto
porque
nunca va a
venir no va a entrar aquí, ¿verdad? Si en realidad no lo tenemos. Entonces estás diciendo si esto está disponible, si
esto no está disponible, estamos asumiendo que queremos
crear el empleado, y si es empleado, esperamos estos detalles que proporcionamos de lo
contrario intentamos una excepción. Pero si no lo es, aprendiz
y subcontratar crearán, así que podremos lograrlo de
hecho
así que luego tenemos algunos dos detalles
adicionales necesitamos comparar, necesitamos crear realmente y revisemos rápidamente
esas firmas
y de
hecho procederemos con ¿Cuáles son las firmas?
Si verifica bajo la mutación, necesitamos
actualizar realmente la dirección existente, cuál actualizará una
dirección que ya está disponible y los
detalles de un empleado que
ya están disponibles. Bien, entremos y luego hagamos eso. En primer lugar, al parecer, Asus recorriendo la respuesta de la
ecuación. Respuesta de creación, yo diría actualizar actualiza la dirección del
empleado existente. Para que eso satisfaga eso y
vamos a estar recibiendo
las entradas de dirección. Así que recibiendo entradas de dirección y fresco Imput. Bien, eso funciona. Ahora bien, si queremos
hacer eso, recuerda, si quieres actualizar la dirección de
un empleado, significa
que el ajuste debe existir antes y ese ajuste debe haber sido mapeado
a la entidad. ¿A qué me refiero? Si
realmente compruebas la dirección, la dirección
ya está conectada. Conectamos la dirección a cada una de las entidades
utilizando este ID de entidad. Por lo que significa que el ID de entidad proporcionado debe ser el
mismo para ese empleado. Y si miras la dirección misma cola que estás
recibiendo aquí, tiene el ID de entidad del empleado. Entonces necesitamos estar
seguros de que este ID de entidad ya existe, y lo suficientemente bueno, si revisas el repositorio
para entidad de dirección, ya
hemos creado
una opción ahora para buscar por entidad, ID y UUID Entonces estos dos tienen que
ser los mismos porque este UID es como si estuvieras usando un derecho largo
que realmente existe Por lo que tenemos que asegurar que
tanto el ID
de entidad el valor largo estén existentes. Ahora bien, podría preguntarse, ¿por qué
estoy usando ID de entidad o ID? ¿Esto no sería suficiente? No, no debería ser suficiente. Y la razón es que
recuerden que estamos guardando una lista. Si verificamos nuestra implementación,
estamos guardando una lista. Entonces, si esta persona realmente
proporcionó dos direcciones, lo que significaría es que tenemos dos registros en la tabla de
direcciones, y tenemos dos registros
en la tabla de direcciones, estarán vinculados con
el mismo ID de entidad. Por lo que el
factor distintivo es el ID habitual. Demuestran que esta arcilla,
chicos, es la UID. Dicho esto,
entonces entremos e implementemos esto. Chicos, si no
lo entendieron, siempre pueden hacer una pausa rebobinado para escuchar
la declaración que acabo hacer para entender bastante el motivo en el que estoy
codificando de esta manera Ahora, estaremos
recibiendo un detalle, que es la
entidad de dirección, servicio de dirección. Aquí de nuevo, necesitamos el servicio de
dirección, ¿no? Y ciertamente está
incrementando algunas cosas. Estoy tratando de asegurar que esto es
lo último que creamos. Entonces necesitamos un servicio de dirección. Crearemos esto finalmente, y esto luego estaría exponiendo
la dirección por entidad, entidad e ID habitual. Esto estará exponiendo
que al parecer, entonces el servicio no
estaría interactuando con el Costitu El servicio debe ser con
lo que debe
interactuar en lugar de
hablar directamente con RPO situ Creo que
eso tiene tanto más sentido. Luego seleccionamos la
entrada que obtenemos ID de entidad, luego recibiremos
nuestro UUID de cadena Otro pasamos en la entrada
get UUID, que es una cadena. Eso básicamente nos
daría estamos esperando que
nos dé una opcional. Este
estilo particular de codificación chicos es lo mismo que haces cuando realmente
estás
creando la prueba. De hecho, creas
la prueba que falla, luego escribes un código contra esa
prueba en particular para asegurarte de que esto realmente funcione. Eso es
justo lo que estoy haciendo. Solo estoy creando algo
que debería fallar, entonces para cuando
estés implementando el servicio de direcciones,
todo simplemente coincidirá. Entonces esperamos que opcional porque puede existir
y puede no existir, puede existir o puede no existir
y esperamos una dirección DTU Yo no estaría esperando a
la entidad sino a la DTU. Después llamaré a esta
dirección opcional Dirección opcional DTO. Sí. Entonces quieres esto, que será el Java tu T. Bien. Entonces tenemos
esto, lo cual es genial. Ahora, siguiente parada.
Queremos comprobarlo. Si este tipo no existe, queremos realmente lanzar
una excepción no existe. Entonces, lo que podemos hacer o cómo podemos lograr eso
en realidad
es bastante sencillo. Entonces, si quieres hacer
eso, todo lo que tenemos que hacer es si muestras esa
excepción etnica, muestra esa opción étnica ahora Entonces lo genial es des que
podemos hacer esto directamente, o dejarme bajar esto. ¿Correcto? Bueno, déjame
dividirlo de aquí. Bien, entonces creo que esto es mejor. En realidad podrías hacer esto o si quieres abordar los
detalles directamente, podrías simplemente decir punto solo
podemos decir o de lo contrario, puntos o bien elegir o
cierto, en realidad elegir. Entonces en realidad mostramos
el pase en este tipo, la clase anónima,
que debería ser pase en realidad mostrar una excepción no
encontrada por ahora solo hacemos una excepción en tiempo de
ejecución. Yo diría dirección
dirección para empleado. Empleado con identificación, no encontrado. Es identificación, no encontrada. Entonces con ID,
concatenemos esto. Say imputes obtiene
ID de entidad, luego no se encuentra. No se encontró. Sólo cita esto. Todo lo que acabamos de
reservar como debiera. Este video
ya se está haciendo muy largo porque tenemos
que explicar en detalle. Entonces vamos a volver en el siguiente video para luego proceder
de donde paramos. Bien, chicos, los
veré en el siguiente video
47. Servicio para mutaciones, parte 5: Muy bien, genial.
Gracias por venir chicos. Me ha encantado tenerte de
vuelta. Todo bien. Hemos podido ver
si la dirección realmente contiene la dirección
no existe, entonces yo diría que
no existe, ¿verdad? Diciendo si estás
intentando buscar por el TID y UID y te explico
el último video
por el cual un NTT ID y UID vamos a implementar todo tiene pedir que ver con Quiere hacerse, antes
que nada con el empleado. Recuerdo también que también
tenemos este camino que debemos
implementar para que la dirección
realmente se haga pronto. Bien, así que lógicamente, ¿cómo crees que vamos a proceder? Y así
es como pienso. Si estás tratando de comparar
realmente, recuerda, quieres actualizar
una dirección existente que ya está en
la base de datos, ¿verdad? Si el usuario o quien
realmente viene desde
el front-end es en el front-end es realidad los datos que se
pasan directamente desde la API. Está dando exactamente los mismos detalles que tenemos en la base de datos de direcciones. Al parecer, deberíamos
intentar una excepción. Entonces significa que necesitamos igualar
realmente cada uno de los campos para estar seguros de que
son, no son lo mismo. Si son iguales,
queremos lanzar una excepción. Entonces eso podría ser un poco largo, así que por eso simplemente
ya lo implementé. Yo solo lo copiaré
y solo
les mostraré chicos y solo lo tiraré.
Entonces esto es lo que tenemos. Bien. Bien, entonces ahora mismo, recuerda que hemos podido
usar Ostro esta opción Ya no vamos a necesitar
este opcional. Simplemente puede llamar a esta
dirección encontrada, se encuentra la dirección. Bien. Entonces, ¿cómo lo hacemos? Si lo piensas, así que
hagamos la comparación. Vamos a estar seguros de
que el ID de entidad si el ID de entidad es igual
al ID de entidad, y el UUID también es el
mismo que UID y las calles, ciudad, estado y código postal son los mismos. Creo que
esto es un int? Sí, esto es un int. Un int es igual a,
creo que esto funciona. Los lugares deberían usar Esto funciona
porque integer es un int, pero un entero porque
en realidad es recomendable que
uses equals porque en realidad
estás
usando el wrapper en lugar de lo permisivo,
pero esto también funciona Si vas
a estar haciendo esto, vamos a demostrar
que si todo este partido, entonces realmente queremos
lanzar una excepción. Esta vez intentamos
otra excepción de tiempo de ejecución. Lanzo excepción de tiempo de ejecución, muestra que ya existe
realmente. Entonces si no tenemos esto, entonces procedemos a
crear lo que realmente necesitamos. Tenemos el mapador til, después para mapear mapa a abordar. Mapas dirección DTO, ajustar CTO,
que toma en una entrada Creo que evité
crear esto, pero eventualmente creo que
necesitamos crearlo. Eso tomaría en una
entrada convertir una entrada. Entonces una dirección, una entrada, convertimos en dirección o
más bien que hacer esto, por qué no solo
conviertes el Impus Porque no creo que
básicamente necesitemos una
imput en direccionarlo Entonces podemos hacerlo. Voy a hacer un mapa MPT para dirigirme a entidad Entonces voy a tomar en las entradas. Esto acepta una
imputa. Es bueno. Entonces en realidad
recibimos la dirección. Entonces eso realmente funciona para nosotros. Esta vez, entonces
necesitamos actualizar realmente otro detalle porque no actualizas. Porque no actualizo, tenemos que hacer,
llamemos a esta nueva dirección. Digamos nueva
dirección. Nueva dirección. Entonces tenemos que hacer
la nueva dirección. Dot set no,
no estoy configurando esto. Quiero establecer las
actualizaciones de conjuntos de tiempo , actualizadas.
¿Qué son las actualizaciones? ¿Por qué me estás haciendo esto
? Una vez que hagas esto, entonces di nueva marca de tiempo,
los molinos actuales del sistema Quería algo de habilidad Java, ¿verdad? Deberíamos en realidad de esto. Si miras esto, recuerda, tenemos este concepto
de fechas auto creadas. Será esta última
modificación de fechas, ¿verdad? Esta última modificación
ocurriría en las actualizaciones, y eso es lo que
realmente logramos aquí. Con esto hecho,
entonces podremos ahorrar. Tenemos el servicio de dirección, que aún no tenemos. Estoy seguro espero que ustedes no
sean nosotros ya
como lo consiguieron. No estamos implementando
el servicio de dirección. Set se unirá entonces
guardamos luego guardamos
la nueva dirección. Y cuando hagamos eso,
vamos a estar teniendo un persistido junto con tener
una dirección persistida. Creo que si creo
que eso funcionaría. Tendrán una dirección
persistida. Entonces dirección universitaria
este código que
hemos persistido
dirección, persistió, a. dirección
tan persistida. tan persistida Y entonces podemos devolverle esto. Podemos devolver nuestra respuesta de
piación. Devolver esto, ¿verdad? Todo bien. Entonces decimos pasar el UUID.
Aquí podemos devolver esto. Después pasando el mensaje, digamos dirección del empleado
actualizado con éxito. Creo que acabo de decir
dirección de empleado actualizada con éxito. Gracias son para completar pero ya no
necesito este. Dirección actualizada con éxito. En realidad usarán puntos, entonces el éxito será cierto. Esto se ha actualizado
con éxito. Es así como
vamos a estar actualizando la dirección existente. Pasemos rápidamente
por ustedes chicos para que podamos
saber lo que hicimos. Lo que hicimos es en
el servicio de direcciones, vas a
exponer el método con el que vas
a estar hablando la postura, vas a
estar encontrando por el ID de entidad de
dirección y UUID Esto no existe,
dirías que deberías regresar
no encontrado, ¿verdad? Estoy usando los conceptos
porque en realidad estoy usando este concepto porque una vez
que realmente mapeas, también
podrías usar
los tros OL, ¿verdad? Entonces por eso no
necesitamos devolver el
opcional porque
el opcional
nos da ese detalle. Entonces, si realmente
miras opcional, mira opcional en Java para. Mira lo opcional
en Java t, ¿verdad? Esto en realidad contiene
bastante método. Entonces buscamos el
str o bien espectáculos. Entonces tu stro, así que
si lo miras, tu stro, es decir
si un valor está presente, si tuvieras que obtener
un valor, de lo contrario, realmente muestra
en la excepción que no existe tal elemento. Entonces eso es exactamente lo que
estamos tratando de aprovechar aquí lo que vas a crear en el servicio de direcciones. Entonces la pregunta entonces la pregunta entonces
plantea la pregunta Cómo sabemos que los
datos que se pasan para la nueva dirección no son los mismos que tenemos en la base de datos. Muy sencillo. Tenemos que
comparar cada uno de los campos. Si alguno de ellos no
tiene ninguna discrepancia, significa que solo están pasando los mismos datos para que podamos
regresar a ellos. Oye, no estás
actualizando nada, solo
estás devolviendo exactamente
la misma dirección que ya está en la
base de datos. Eso funciona. No obstante, si no es así
pueden seguir adelante para actualizar, entonces actualizamos la
marca de tiempo, entonces esto funciona Después actualizamos
lo actualizamos después de actualizar la
marca de tiempo luego la guardamos Eso es lo mismo básicamente
actualizamos cuando devolvemos esto. Eso es básicamente genial. A continuación, en el siguiente
video se estará haciendo la actualización de los detalles del empleado,
actualiza los detalles del empleado. Esta es la parte vigorosa, chicos. Una vez que hayas terminado con esta
parte, las cosas comienzan a aliviarse porque en realidad
estos son los detalles centrales que
usamos en
la administración o el servicio usando administrar todo
el gráfico cura chicos, solo aguanta ahí
y todo junta en un poco. Te veré en el siguiente video.
48. Servicio para mutaciones, parte 6: Oigan, chicos, gracias
por volver. Todo bien. Nosotros hemos
hecho el empleado. Hemos hecho la actualización de la dirección de
empleado existente que tienes. El último aquí para la
mutación que vamos a hacer es actualizar los detalles de los
empleados,
actualizar los detalles de los empleados, y esto es relativamente simple. Básicamente, volvemos en
la respuesta de creación como el mismo modelo que seguimos. No hagas actualizaciones de los
detalles del empleado, detalles del empleado. Después tomaremos en los datos de los
empleados insumos. Al parecer, eso es lo que estamos usando las actualizaciones de los empleados
imputa, ¿verdad la misma manera que estamos usando la
dirección PS aquí como recordamos, dirección NP usando entradas de actualizaciones de
empleados. Entonces esto hecho,
entonces podemos seguir adelante para continuar con la
implementación, ¿verdad? Bien. Entonces, al parecer, si quieres
actualizar los datos del empleado, necesitamos estar seguros de que el
empleado realmente existe. Si el empleado no existe,
entonces, ¿cuál es la
necesidad de actualizar? Entonces vamos a hacer los puntos del repositorio de
empleados definidos por empleado, encontrar pero en este método antes. Autocompletar,
en realidad me estás
metiendo ahora mismo. ¿Bien? Entonces si lo miras, ya lo hemos hecho
ya, solo vamos a proceder porque ya
creamos la firma. Vamos a decir, encuentra esto
no pases en las entradas. Obtienes identificación de empleado. Ahora bien, si resulta opcional,
si no existe,
este mismo concepto de
razón o de lo contrario no arroje
una excepción de tiempo diciendo ID de
empleado con impute get ID, no encontrado, gracias
, autocompletar Esto básicamente
entonces sería capaz de
darnos luego consigue el empleado. Voy a llamar a ESO, sí, así que podemos
llamarlo empleado, ¿verdad? Entonces conseguimos al empleado. Déjame crear alguna habitación para que
podamos ver todo, ¿verdad? Todo en su conjunto. Ahora, después de tener eso, ¿cuáles son los detalles
que estás pasando? Si lo miras críticamente,
estás pasando el nombre, estás pasando las
fechas de nacimiento, el género, el salario, ¿verdad? Lo siento, creo que estoy
comprobando lo incorrecto. Me imagino. Estaba buscando las
actualizaciones del empleado empleado imputa. Entonces eso. Por lo que las actualizaciones de los empleados
imputan. Bien, vamos. Necesitamos la identificación del empleado. Sueldo, edad o fila. Esto se usa para ir a
buscar al empleado. Encontré entonces actualizamos el sueldo, la edad, y el rol. O digamos que la
persona es promovida, la persona es ascendida
de pasante a GMD A pesar de que eso es perfecto. Si eso se hace, entonces este es en realidad un método
perfecto para usar. la misma manera, solo tienes que seguir adelante
y luego actualizar empleado, luego hacemos un salario establecido. Establecer salario luego empleado. Entonces fijamos la edad.
Edad establecida por el empleado. Digamos que hubo
un problema con la edad. Entonces empleado el rol establecido y tenemos el imputador
get roll. Esto está resuelto. Después actualizamos las fechas, actualizaciones que establecen actualizado
que en realidad establecemos esto, luego recibimos el realmente lo
guardamos. Deposito de empleado que
ahorran y lo volvemos atrás, lo
llamamos empleado actualizado. Recuerden, chicos, usando JPA, porque yo usando JPA, esto es opcional porque
cuando haces una actualización, ya
agregaste
notación aquí, dices que la modificó por
última vez la misma manera esta se
crea para darnos Lo creamos, se
supone que esto realmente va a
entrar en acción sin embargo solo lo estoy
dejando como está, en realidad
me arreglo con eso. Derecha. Entonces creo que
también hay algo llamado sello de tiempo
de creación, marca de tiempo de
creación Esta ecuación, sello de tiempo. Básicamente funcionan igual. Básicamente funcionan
igual. Todo bien. Pensé que debería mencionar esto para aquellos que
realmente están interesados. Para la ecuación,
no necesito agregar esto se supone que debe
crear automáticamente, y se supone que debe
obtener esta actualización cuando estás haciendo una
actualización automáticamente. Pero en realidad solo estoy usando el método
manu para actualizar aquí Pensé que debería
mencionarlo porque alguien pudo haber visto eso, ¿verdad? Bien. Así que hicimos en realidad esto tenemos que
hacer luego solo regresar,
Solo devolvemos nuestro
constructor como de costumbre. Después RetornUID VOD sale,
el actualizado, luego
giramos un mensaje , empleado actualizado.
Esto es genial. Entonces el éxito es
exitoso, cierto. Entonces en realidad lo terminamos. Esto es básicamente, chicos, es básicamente. De hecho, hemos podido implementar todo esto y
que realmente necesitamos. Y esto es bastante genial. Esto es genial, chicos. Lo que vamos a estar
haciendo en el siguiente video, vamos a estar cableando esto en los
controladores apropiados, vamos a estar arreglando
este servicio de direcciones. Los veré
en el siguiente video
49. Servicio para mutaciones, parte 7: Oigan, chicos. Tengo que
tenerte de vuelta. Todo bien. Entonces como mencionamos, comencemos a cablear
las cosas, ¿verdad? De hecho vamos a
llenar los controladores, luego nos dirigiremos a implementar el servicio de direcciones. Entonces para la empresa. Vamos a traer nuestro servicio de
empresa, ¿verdad? Servicio de la empresa, entonces
estaremos usando el adquirido
como constructor. No tengo que
declarar explícitamente nuestro constructor. Entonces en realidad colocamos
esto entonces decimos que este puntos crea compañía
y tenemos la entrada. Esto funciona automáticamente. Entonces lo mismo así tenemos el At adquirido como
constructor aquí, luego traemos en
servicio departamental, privado, final no depositario, servicio departamental
final Departamento de servicio auto completa
departamento servicio departamental. Entonces entra aquí y trae
el servicio departamental,
luego crea departamento. Entonces por aquí, lo mismo, así que vamos a estar cableando el servicio externalizado del empleado Seré
empleado final privado externalizar servicio. Entonces solo llama a este servicio por la longevidad del nombre. Entonces solo tenemos
el servicio apri para estar en el x Controller En el quire controlador Ax. El traer el servicio, luego crear el empleado
externalizar el paso de los Iqutes Genial. Entonces por aquí, vamos a estar
usando el servicio, luego actualizando la dirección
existente, genial. Después el servicio actualiza los detalles de los
empleados. Bien, así que hemos sido
capaces de cablear esto. Entonces eso es básicamente
todo lo que tenemos que hacer. Ahora lo dejamos en
el esqueleto antes, pero ahora hemos podido
realmente llenar todo. El siguiente rompecabezas que
tenemos que resolver es crear
nuestro servicio de direcciones. Tenemos esta falta,
que es la salvada. Tenemos el guardar todo lo que
falta y también
tenemos tenemos la dirección servir la dirección fina
por entidad o UID Eso es lo que tenemos que
implementar ahora mismo. Simplemente entraremos y crearemos
nuestro servicio de dirección. Crear servicio de dirección. Servicio de dirección. Servicio de dirección. Tiene
que haber un servicio a tomar requerido como constructor para que podamos
traer en nuestra postulación. Sí. Entonces también
necesitamos una T privada, final MPa UT, map UT. Tu Mapa T. Si olvidaste lo Maput así fue como
hicimos todas las conversiones Así que recuerda, así es como
hicimos todas las conversiones. Genial. Map YouTuf off, vamos a implementar esta
guía que falta,
que es la
dirección de búsqueda por entidad Yo sólo voy a copiar esto
que va a necesitar. Va a ser público. Al parecer una lista porque
aparente si existe, se supone que nos da una lista. Después dirigirse a DTL. Aparente devolvería directamente a
la entidad. Entonces exponemos esto. ¿Esto es lo que pretendo hacer? Lo siento, esto debería ser devolver el opcional, se supone
que es un opcional. Recuerde, utilizamos el Olstro
ser opcional, dirección DTL. Genial. Tienes la cuerda. Tenemos esto, luego regresamos. Cuando regresemos, usted se
dirige a aposti. Eso se define esto. Recuerda, ya implementamos esto para mí
solicitando el aposte,
luego pasando el ID de entidad, pasando el UID, pasando el UID,
pasando el Esto se supone que es UUID UD. UID, entonces queremos mapearlo. Mapéelo a un pretorneado
el opcional, luego el mapeador til, luego giramos el mapa para direccionar
DTO y eso es Recuerda cuál es la
dirección que toma la ITu. Toma la dirección de la base
de datos
y la mapea a la dirección DTU y todo
realmente funciona muy bien Eso es todo lo que
realmente tenemos aquí. Esto funciona. Entonces siguiente paso,
implementemos también nuestro save all. Hacer un vacío público público, anular no va a
ser devolver ninguna respuesta. Ahorra y esto no hace
nada único, en realidad. Entonces esto lleva una lista
de direcciones, ¿verdad? Entonces decir direcciones direcciones,
luego cosas quejándose. Entonces vamos a darle las
entradas Todo bien. Genial. Por lo que hacemos dirección posit guardar
todo esto funciona directamente. Por último, entonces tenemos una dirección pública o
el save the save. Después toma una dirección
también y lleva wepstisaf. Ahora vamos a revisar
todos nuestros métodos. Aquí necesitamos
cablear como de costumbre, necesitamos cablear en el servicio de dirección
servicio de dirección. Llámalo servicio de dirección.
Esto va a estar bien ahora. Ya puedes ver, ahora todo
está sonriendo. Esto es genial, y esto es genial, ahora
todo está sonriendo. Para los departamentos, departamento
también necesitaría esto, y esto ahora está asentado. Tenemos esto ordenado,
tenemos este ordenado. Creo que básicamente
tenemos todo lo que necesitamos. Tenemos todo lo que necesitamos, ¿verdad? Nos falta algo,
solo
mirándolo solo para estar seguros de que
no nos perdimos nada. Todo bien. Vamos a necesitar
un detalle más, ¿verdad? Necesitamos un
detalle más porque si realmente
estás revisando
el repositorio, realidad
estamos exponiendo
el marco por ID de entidad. Creo que
sería genial simplemente hacer eso ahora mismo para hacer eso ahora mismo que cuando luego
implementemos algunos otros detalles, no
tengamos que volver
para empezar a agregarlo. Vamos a hacer buscados
por entidad para retornar sobre las direcciones que en realidad son
pertenecientes a esta entidad Simplemente entraré en el servicio de
direcciones e
implementaré
rápidamente eso vamos a implementarlo rápidamente, entonces podemos concluir rápidamente este video. Vamos a
mostrar esto aquí. Entonces la lista pública de direccionado, esto sería lo que
vamos a llamar a esta dirección de hallazgo por ID de
entidad. Se ID. Esto será tomar
una cadena tt ID, que luego estaría
regresando y direccionaría a psi t luego bien
por ntTiD que ya
está disponible
para nosotros o pasando
el entitID luego stream a través de stream
through,
ellos lo mapearán al DTO ellos lo mapearán El mapa el mapeador
til referencia, luego mapa para ajustar
DTO, luego a la Bien, entonces esto
realmente lo establece. Ahora mismo, no
tenemos nada rompiendo. Yo sólo voy a seguir adelante
rápidamente voy a hacer módulo Bud. Eso solo debería mostrarnos si
hay algo rompiendo. Se puede ver esto en realidad
apostar el fondo. Cualquier cosa se está rompiendo,
llegamos a ver podemos ver esta computadora
con éxito. Eso lo leí,
te veré en el siguiente video.
50. Prepararse para las pruebas: Oigan, chicos, genial
tenerlos de vuelta. Sé que todos hemos
estado esperando esta sección donde realmente vamos a probar esto, y eso es lo que vamos a estar haciendo en esta sección, ¿verdad? Y en
realidad vamos a tener las cosas hechas. Bien, entonces para comenzar esto, podría decir que he
hecho algunos cambios en nuestro Yamo compuesto Si realmente no sabes
lo que hace Yamo compuesto, esto básicamente te ayuda a
configurar tus propiedades o se conecta con la base de datos sin tener que especificar en tu
aplicación o Yamo Esto compone automáticamente
solo cosas bootrap. Yo para traer un
contenedor para ti. En realidad es poner en marcha un contenedor
Docker para
ti automáticamente, y vas a
ver eso, ¿verdad Uh si, y así es
básicamente como funciona. Lo que hice es que acabo de
cambiar el nombre de DB. Esto básicamente lo que
viene con él. Sólo tienes cosas
llamadas mi base de datos. Creo que estoy bien con una
contraseña con el usuario. Entonces hay que
exponer las macetas. Esto solo demuestra que esto es
lo que realmente viene con él, pero al colocarlo de
esta manera lo expones, entonces estoy persistiendo
el volumen para que
todo lo que desarrollemos en este curso en
realidad no desaparezca. Entonces una vez que iniciamos un servidor
tantas veces como sea posible, en realidad lo tienes ahí y tienes
que colocar
esto para decir, Oye, estoy persistiendo este volumen y este volumen es para este servicio Este volumen que en realidad estoy persistiendo aquí es
para este servicio, así es como
realmente trabajamos. Bien. Entonces ahora que esto se ha hecho, acabo de poner en marcha la aplicación. Señala, en realidad estamos
usando esto como auto, esperamos que se
creen todas nuestras entidades ya que estamos usando JPA, y estamos mostrando SQL en caso de que
encontremos algún tipo de error
para que podamos depurar fácilmente Todo bien. Con esa construcción hecha ya ya construimos ya hicimos la brújula
móvil, así que todo está disponible. Cuando quiero decir, todo
está disponible, eso es todo nuestro graph ques medida que
convertimos en objetos Java, y eso ya está
insertado en el proyecto,
y es por eso que usamos. Con esto en su lugar, sigamos adelante y ejecutemos esto
y veamos cómo se desarrolla. Bien, entonces esto se acerca. Voy a traer
voy a sacar esto a
colación para que podamos ver, bien, cómo funciona realmente. Así se puede ver que esto en realidad
está tirando del contenedor y en el
contenedor ya está creado, porque lo he tirado, demuestra que
en realidad todo está jugando muy bien, ¿verdad? Porque lo saqué,
todo es per amablemente. Ahora bien, ¿cuál es el
error que estamos recibiendo? Entonces vamos a confirmar. Bien. Entonces dice que el costo de Graph
Queer no existe. Esto no existe,
lo cual está bien porque en realidad estoy
usando el mismo esquema. Si estoy usando el mismo esquema, es esperar que estoy usando mismo esquema el mismo esquema
para muchos proyectos. Estoy esperando que esto
se haga realmente. Lo que voy a hacer es,
solo voy a crear rápidamente el esquema, voy a
crear un esquema. Entonces el curso demo no estoy
preparando este elenco, tengo esto que es el demo de
GraphQL, Así que probablemente pueda hacer
eso en mi otra pantalla para crear rápidamente el esquema. Simplemente entraré y crearé
rápidamente el esquema. Así que drena enseguida,
creando la base de datos. Entonces estoy cortando base de datos
en inters a schemer. Estoy creando base de datos, y esa será
la tabla QL gráfica Todo bien. Yo estoy haciendo eso. Derecha. Volveré. Todo bien. Yo solo rápidamente possi
video y lo arreglo. Yo creé la base de datos y se
puede ver que esto ya se
ha puesto en
marcha y vemos todas nuestras tablas están siendo creadas y todo
está entrando. Solo vamos a traer estoy
usando Intelligent Ultimate, así puedo desde los mismos proyectos, simplemente traer
rápidamente la base para que veas exactamente que
esto realmente está funcionando. Ver que se
ha sumado todo. Entonces estamos trayendo
psques esas misiones, sí. Así que solo moteamos todos los
detalles que estamos usando. Entonces esto es grafico QL grafico QL Cos yo solo
lo llamaré Gráfica Q Cs Bien. Entonces mi nombre de usuario
está en mi usuario, y mi contraseña
es secreta, ¿verdad? Así que vamos a probar esto. Bien, entonces mira esto tuvo éxito. Entonces voy a persistir,
pero voy a decir, Bien. Entonces eso en realidad
traería esto a colación. Así que entremos y exploremos
lo que tenemos aquí. Entonces podemos ver que
tenemos las mesas, tenemos la dirección, tenemos la empresa, departamento, empleador ahora fuente,
lo cual es realmente genial. Si lo miras,
eso es básicamente lo que realmente creamos aquí. En realidad me corresponde a esto. Se trata de chicos muy buenos. Ahora lo que vamos a
hacer es entonces entrar y luego comenzar a usar nuestros puntos finales
para que las cosas comiencen Todo bien. Dicho esto, te
veré en el siguiente video.
51. Prueba de mutación: Oigan, chicos, genial tenerlos de
vuelta. De hecho lo he arreglado. De hecho he
creado una base de datos, y esto ya está disponible, y de hecho he
ejecutado el comando y puedes ver todas las
tablas que he creado, con todos los índices
que realmente plex ahí y
todo está bien ahora. Todo bien. Entonces, estando hecho esto, creo que ahora podemos proceder
a probar las cosas. Ahora aquí es donde vemos
la belleza de GraphQL. Spring up cartero.
Recuerda que la aplicación ya comenzó, así que ya está arriba. Quiero mostrarles
algo muy peculiar. Una vez que hayas creado o
diseñado la gráfica QL, podrías simplemente entrar
y crear una gráfica QL Ahora, por favor, observen
esto cuidadosamente, chicos. el momento en que empiezo a
escribir la URL, es para comenzar una introspección, para poder leer toda la gráfica Qs que tenemos
en nuestra aplicación, y eso es bastante impresionante Pero para la consulta y mutación, vemos todo cargado
aquí. Probemos eso. HTTP, Host local. Anfitrión local de LeTP. Bien, esta es la URL. Alguien podría preguntarme,
¿de dónde viene este QR GAF? Ese es el valor por defecto.
Ese es el valor por defecto. Si vas a la
aplicación, el Yarmo y buscas GA QO,
spring graph QL path, spring graph QL path El camino es slash GAFQO aquí. Slash GAFQL, ¿verdad? Entonces podrías cambiarlo para personalizarlo a
lo que quieras. Ves que dice Pat al para exponer GAP QL solicita puntos
HTPN, Entonces podrías elegir
ser otra cosa, pero lo voy a dejar
en el default porque me encanta usar la culpa para
varias cosas, ¿verdad Así que solo podrías decidir cambiarlo y
nada se rompería. Muy bien, así que apéguela a
default, así que procedamos aquí. Anfitrión local, ya lo tengo. Entonces una vez que haga clic en esto,
solo mire esta sección, chicos, verán que sucede una
introspección, Entonces, una vez que haces
esto, puedes ver, automáticamente obtiene
todo lo que hemos creado hasta ahora Esto es increíble, chicos.
Esto es bastante genial. Entonces ahora queremos
crear en el orden de
crear una empresa, empleado de
departamento, podría simplemente enfocarnos en la
que buscamos particularmente. Quiero crear una empresa. Verás, automáticamente
nos da todo lo que necesitamos, cómo se supone que debe quedar. Entonces, si estás confundido sobre cómo
va a quedar la estructura. Creo que este método
realmente
te ayudará a igualar rápidamente
las cosas, ¿verdad? Voy a proporcionar el esquema y mostrarte cómo funciona, bien, luego seguir adelante. Ahora bien, considera que el ingreso de
la empresa es exactamente lo que se
nos espera Y si nos fijamos en nuestra empresa
imputa por aquí, ¿no? Una empresa inputa escupió el nombre, número
RC, jefe de su
país tipo de negocio. Eso es exactamente lo que
se espera que pase. Pero si ves esto,
esto espera probablemente un formato Jason y empezar a pasar todos esos detalles
uno tras otro. Esto se verá bonito, chicos. Esto no se verá
bonito en absoluto. Entonces, ¿hay otra opción? Ah, sí, la hay, y la
opción simplemente te requiere, podríamos pasar en una variable desde la parte superior y pasar
la variable hacia abajo. Permítanme
mostrarles a lo que me refiero, y esto realmente
fluiría mejor. Bien, así que procedamos. De hecho, podría
crear una variable aquí llamada No Company. Imprimí una nueva compañía. Entonces en la nueva compañía,
me pasa el nombre, recuerda que necesitábamos un nombre, que llamaré compañía Z. Z, luego pasaré en número RC, que también forma parte
de las entradas, y solo diré
RC uno, dos, tres, cuatro, luego pasaré
en la oficina central, que se toman como una cadena. La oficina central, que
va a ser solo decir 119. Hay un lugar en las
ligas que se llama sacar. Creo que sacaba solo
déjalo como Sacar justo en el 19, vamos, esta entonces Isla
Victoria Gas Isla Victoria. Isla Victoria, gas, luego el país
País Nigeria. Entonces finalmente, tenemos
el tipo de negocio. No estoy
inventando a estos tipos, no lo estoy inventando. Es exactamente lo que tenemos aquí. Si lo miras, el nombre, número de
vivienda, país de la oficina central son tipo de negocio. Voy a vender
este tipo de negocio, qué tipo de negocio estamos
viendo, que son las telecomunicaciones Esto entra aquí. Con esto hecho, entonces podrías
pasar la variable aquí. Sólo tienes que seguir este paso.
Al principio se vuelve confuso, pero en el momento en que
miras cred company, cred department, entonces
empieza a Haces esto y una vez que lo
hayas hecho, entonces
podemos pasar
la variable con esto, el signo de dólar. Pasando variable el
conjunto de dólares o cuál es el nombre de una empresa Vaiablenw Nueva empresa. Y una vez que pases esto
, lo cual es genial, recuerda lo que estamos
esperando lo que es Impute, esto ha sido
autodtected Entonces cogeremos esto y lo
pasaremos por aquí. ¿Lo voy a pasar aquí en
vez del nulo? No sacar eso.
Esto se ha ido. Bien. Bien. Así que tomen
esto y solo digan esto nuevo ven N. Ahora bien, esto
se ve muy limpio, chicos. Este aspecto muy limpio.
Miembro alguien ya
ha comenzado.
Sólo vamos a darle. Vamos a darle un golpe y a
ver si esto funciona, ¿no? Y vamos a darle. Fresco. Como puede ver, empresa Z. empresa con nombre Z empresa
con nombre Z empresa, crear aparato exitoso
llamado empresa Z, ¿verdad Crear con éxito,
obtuvimos el UUID para la creación. Comprobemos la
base de datos. ¿Fue así? Consulta. Fresco. Como puedes ver esto se ha creado
con éxito, ¿verdad? Bien. Así que seguir adelante. ¿Podemos entonces ver una de
las bellezas de la gráfica QL? Una de las bellezas
de graph QL es que podríamos decidir la respuesta que
queremos recibir Con esta t, voy
a decir Z compañía dos. Vamos a darle
algo diferente. Voy a dm este uno,
dos, tres, cuatro, cinco, 121, dos, cinco, 123, cinco. Entonces voy a dejar la dirección
solo dejo la dirección como 118, luego Nigeria telecoms De la misma manera, entonces voy a
quitar este mensaje. Por favor, mira chicos, mira este
patrón realmente lo golpeó. Cuando quite esto, o pueda comentarlo. Ya lo he comentado. Verás la respuesta que recibamos, así que vamos a consultar esto
o vamos a darle. ¿Pueden ver, chicos?
Nos da solo lo que necesitamos, y significa que no tienes que
cargar tu sistema, tener que procesar los atributos que no necesitas y este
es el poder de GraphQL, podrías elegir
prácticamente lo que necesites en tu respuesta Imagina que tienes una respuesta
anidada. Podrías simplemente decidir los siente que son
importantes para ti, y eso es con lo que trabajas. Y esto es bastante
impresionante, chicos. Esto en realidad
sale de la caja con gráfica QL. Impresionante, chicos. Impresionante. Ahora hemos podido ver
cómo dejar de compañía. Vamos a entrar y luego
crear departamento y crear el empleado,
y empiezas a ver cómo
las cosas empiezan a perfilarse. Los veré chicos
en el siguiente video.
52. Prueba de mutación 2: Oigan, chicos, así que ahora
tenemos esto hecho, y esto ya está
creado para nosotros. Hemos podido ver
cómo acreditar a la compañía. Bien, entonces déjame
seguir adelante y guardar esto. Sí. Voy a guardarlo voy a
llamarlo GraphQL curs GraphQL curs Yo solo guarda esto.
Impresionante. Impresionante. Entonces tenemos este GraphQL Entonces lo genial ahora
es que luego podemos
entrar y luego agregar
algo más. Ahora que ya hemos hecho
la compañía de creds, ¿podemos entonces proceder
a luego pasar a creación del
departamento? Todo bien. Antes de eso,
quiero actualizar esto solo cambio para crear algo porque voy a compartir esto. Voy a compartir diferentes
dos formas diferentes graficar en macetas QL y probar Hay una herramienta llamada Alta que también te da la misma
sensación que cartero Si te sientes cómodo
con ese genial si estás cómodo cartero genial lo que te sientas
cómodo. Ya ves como todo
está bien aquí. Para Cartero, para una, en realidad
es que hace las cosas un
poco más definitivas, en realidad
podrías saber
exactamente cómo colocar esto Aquí estás consiguiendo de todo. Juntos por un, en
realidad sección desde entonces
y te voy a mostrar Bien. Entonces verás algo
parecido a esto, ¿verdad? Entonces esto es algo similar que ves una vez que lo importes en, te
mostraré chicos cómo se
ve. Todo bien. Entonces así es
como nos vemos, pero me voy a
apegar a Postman
por ahora porque nos
da exactamente la misma
salida. Todo bien. Fresco. Entonces con esto hecho, creo que podemos pasar
al siguiente,
que es la creación
del departamento. Bien, chicos, pasemos a
la creación del departamento. Todo bien. Entonces ahora estamos
a punto de crear los departamentos. Fresco. Entonces, lo que vamos a hacer, vamos a entrar de nuevo. Voy a seleccionar voy a seleccionar esto después de seleccionarlo. Yo lo seleccioné, luego vamos a
crear departamentos. Creación de departamentos.
De la misma manera, chicos, la misma manera que
manejamos el primero, ustedes van a manejar
el segundo, ¿verdad? Entonces lo que vamos a hacer, simplemente procedemos con
el mismo método que usamos y pasamos en una variable y la variable será
diferente esta vez alrededor. Estoy seguro de que la variable
será diferente esta vez así que en realidad podrías
tener esta sección fuera. Ahora bien. Ahora, cuando abrimos esto, cuando haces clic en Departamento, ves lo que pasa,
se suma a ello. Una vez que entras y haces clic en Crear empleado,
se agrega a ello, y esto se vuelve un
poco confuso, se vuelve un poco confuso, por
lo que quiero
mostrarte cómo usar. No te voy a mostrar cómo usar OT podría decir que quieres
separarlo, pero
juntar todo es
murmurar y sabiendo el hecho de que solo
estás recogiendo esto, necesitas
saber cómo separar las cosas Si eres un profesional en esto, realidad
podrías
armar todo y todo
va a ver funcionar, yo elijo la sección
que quieras. Entonces lo que voy a hacer,
voy a cambiar a alterar. Quería mostrarles
cómo funciona en Postman, y voy a
cambiar para alterar y ver cómo hemos
separado las cosas limpiamente. Bien, chicos,
cambiemos a Altar. Entonces entraré y
traeré ta algunos ta. Ahora bien, si miran
esto críticamente, si miran esto críticamente, notarán algo, chicos. Ya he entrado y creo todos los detalles que
necesitamos almacén preparar causa para
que solo podamos ir paso
a paso para ver cómo funciona. Si vuelves a
Empresa, puedes ver Empresa tiene su sección on, Departamento tiene su
sección, ¿verdad? Empleado tiene su propia sección. Pueden ver que segmenté esto, y esto se ve hermoso, chicos. Esto se ve hermoso. Entonces creo que vamos a estar
usando esto en el futuro, así podríamos ver cómo se desarrolla
realmente. Pero solo quería mostrarte que también podrías
probar esto con cartero y
todo funciona igual Solo elige el cliente con el que
te sientes cómodo, ¿ok? Y entonces podrías seguir adelante
y hacer las cosas. Ahora que realmente hemos
podido entrar aquí, así que ya hemos creado
algo antes, ahora hemos probado esa parte para
ver si funciona y lo hizo. Entonces voy a seguir ya
que ya tienes algunos de estos platillos
poblados porque
tenemos los detalles de la compañía
y esto realmente corresponde a los insumos de la
compañía. Yo sólo voy a seguir adelante
y volver a crearlo. Si toca esto, voy a seguir adelante y crearlo de nuevo, ya
veo. Eso es genial. Hay un error. Veré
cuál es el error. Todo bien. Volviendo a la
aplicación, puedes ver que el número LC
no puede ser el mismo, el número RC
no puede ser el mismo. Y eso es porque creé el primero usando post uno. Lo que voy a hacer
en modo desarrollo, así que vamos a crear
cosas para que podamos hacer
que las cosas funcionen
como esperábamos. Ahora que esto está hecho, entonces
crearé la recreación, esto realmente traerá de nuevo la base de datos y solo podemos comenzar a disparar a todos los
seres de solicitudes para que entren sin problemas. Entonces puedo enfocarme en explicar cómo
se supone que debe ser la estructura. Cuando refresquemos esto,
las cosas vuelven, ¿verdad? Para que veas que la
compañía está vacía. Así que vamos a traer de vuelta el alquitrán. Entonces ahora, mirando a Altar, el mismo principio
seguimos una vez que realmente añades esto luego
trayendo los insumos de la compañía. Así es como se supone que realmente se ve
el
imput , ¿verdad Recuerda que es un nombre Como número, jefe de
negocio de su país va a pasar esto como probablemente un par de veces para que
pudieran pegarse. Ahora, sigamos adelante y creemos
esto o enviemos una solicitud. Impresionante. Por lo que esto ha sido
creado con éxito. Y mencioné que si
realmente quieres hacerlo diferente, todo lo que necesitas hacer para no
hacer algo diferente. Todo lo que necesitas hacer,
probablemente podrías encomiar esto, encomiar esta parte y solo darte
lo que necesitas Voy a
probar esto con departamento. Ahora que hemos creado esto,
esto correspondería porque el departamento ya
tiene los conjuntos de variables, el departamento tiene que corresponder
con el nombre de la empresa. Recuerda, está amarrada. Básicamente están atados entre sí. El nombre de la empresa tiene que estar atado y si miras a
la empresa esto
ya se proporciona, departamento
ya proporcionado. De hecho, revisemos
nuestro departamento para ver cómo se ve el
insumo. Como puedes ver, te
traeré no ta. Voy a tratar de minimizar esto. ¿Bien? Puede que esto no sea tan fácil, pero les voy a mostrar chicos. Bien, entonces voy a minimizar
esto, luego traerlo a colación. Todo bien. Entonces, vamos
a bajar esto. Bien, entonces chicos, mírenlo. Entonces se puede ver el nombre, ya se proporciona
el nombre, los números de departamento proporcionados, el nombre de la empresa proporcionado, el número RC, la
división, ¿verdad? Todo lo provisto,
requiere de las entradas de dirección. Esta es la parte que
es muy crítica. Requiere las entradas de dirección. Y si saben cómo se ven
las entradas de dirección, chicos, si van a direcciones,
¿cómo se ¿Qué espera
el ID de entidad? El ID de entidad aquí, recuerda para departamento es el número de
departamento. Le expliqué que mientras en realidad
miramos los videos anteriores que el número de departamento es el ID de
entidad en la dirección, el ID de empleado para
empleado es el ID de entidad
y el ID de subcontratar
es para el subcontratar Lo mismo que
tenemos aquí. Ahora que hemos podido verificar esto,
vamos a entrar y darle,
porque hemos
podido realmente lanzar cosas juntas que siempre que el ID de entidad de dirección esté vinculado a este número de
departamento, y veamos si se
desarrolla porque mostraremos que el
número es correcto, el nombre de
la compañía
es correcto porque en realidad
están
vinculados a la empresa. Entonces una vez que golpea esto o algunos, puedes ver que esto se crea
con éxito, ¿verdad? Con esto
los veo chicos en el siguiente video, mientras miramos nuestra
creación de empleado. Nos vemos en el siguiente video.
53. Prueba de mutación 3: Oigan, chicos, genial
tenerlos de vuelta. Creamos la empresa, nosotros
creamos el departamento, ya es hora de que
crees al empleado. Entonces el empleado necesita
pertenecer al departamento. Recuerda, tenemos este
departamento realmente creado. Tenemos esto para recursos humanos, y la división es RRHH, y en realidad tenemos vamos a
crear un empleado, ¿verdad? Entonces creación de empleado,
traigo esto. Ahora, por favor quiero que
sepan que esto es muy,
muy crítico, ¿verdad? Lo genial de las entradas que
usamos a para que
no te confundas. Lo bueno de
usar variables de entrada al usar Alter
es que ya ves, anidé varias cosas aquí para todos los
puntos finales que quiero golpear Cada uno de ellos tenía sus variables
específicas. De hecho podrías definir
todo juntos, y eso es lo que estoy haciendo aquí. Este nuevo empleado,
puedes ver que coincide con esta variable,
actualizar dirección, es coincidente
actualizar dirección y actualizar empleado es
emparejar actualización empleado. Una vez que lo
golpees, buscará la variable y se perderá esta
y escogerá solo lo que necesita. Esta es una muy buena manera de unir las cosas. Básicamente no tienes que
seccionar las cosas hasta el final creándolas en diferentes archivos para poder
tener esto hecho realmente. Ya lo he
explicado. Estos son los detalles para el empleado. Recuerda si recuerdas por el número de departamento del empleador, porque en realidad encaja en el departamento que
realmente estaban esperando. Para esto, voy a
crear a estos chicos Pasante. Al parecer, puedes ser un GMD. Voy a crear como
Intel y usar mi nombre, digo gfque.com y estos
son los datos de pegar Este dato en realidad corresponde con lo que ya tenemos ahí. Nombre, sueldo de databgjinus, número de departamento de identificación de
empleado, solo
cruzan cheque Entonces, cuando entramos en el controlador del
empleado, una vez que llegue a esto, se puede ver esto realmente corresponde
nombre fecha un poco. Entonces tenemos la dirección,
que es una lista. Tenga en cuenta a este tipo. Esta es una lista lista de entradas de direcciones. Por lo que espera la entrada de la dirección. Recuerda cuando estamos
creando este servicio, estamos esperando porque en realidad
juntamos
todo. Si lo miras, las entradas donde entra la
entrada,
entra aquí, entonces realmente
buscamos la dirección que viene y
transmitimos a través de ella y
pudimos guardarla Pensé que debería
mostrárselos, así que vamos a entrar aquí
y darle, ¿verdad? Entonces como pueden ver, estoy
pasando en la dirección. Sólo estoy pasando
una sola dirección. Básicamente podrías pasar en
una lista y esto funcionaría. Podrías pasar en una lista
y esto funcionaría. Con esto hecho, vamos crear esto porque
esta sección está fuera, vamos a crear el empleado. Voy a aclarar esto para
que no
parezca que es lo mismo.
Vamos a crear esto. Muy bien, empleado, bla, bla, con ICL Nombre 22 creado porque
ese es el nombre que
por favor Eskel diga Esto realmente se creó
con éxito, y esto es chicos bastante increíbles. Esto es bastante impresionante.
Hemos podido crear vamos
a poder crear la empresa, el departamento, el empleado. Procedamos y
actualicemos a este empleado. Para esta dirección de empleado, puedes ver tu dirección
que colocamos ahí. La dirección es
ésta. Tenemos esto. Coloco esta dirección para que solo
pudiéramos validar Ahora, como validando
ahora mismo porque
no hemos implementado nuestra sección de
consultas, ¿verdad? no hemos implementado nuestra sección de
consultas, ¿verdad Entonces puedo ver que hemos creado esto y si
revisas nuestra dirección, la dirección en realidad marca para
el empleado empleado 4567, ya está creado en, y esto es bastante genial chicos Si realmente comparamos,
entonces esto es lo que tenemos. Actualicemos esta dirección de
empleado. En primer lugar, antes de
que podamos continuar, la dirección del empleado, esta
identificación debe ser la misma. El UID, recuerda que este es
el UID del empleado. Voy a escoger
al empleado UID. ¿Verdad? Empleado requiere ID de entidad de
empleado, así que tienes que entrar para ver cuál
es el ID de empleado y recogerlo. Entremos a la base de datos y veamos la identificación que
se persistió aquí El empleado I
ID de entidad es ENP 4567, y eso es exactamente
lo que vamos a tener aquí, la ENP Ese es el ID de entidad
que se agregó aquí. Bien. Impresionante. Puedes
ver la dirección que tenemos antes y la voy a cambiar
a todas estas enseguida. Esta U ID. ¿Es para
el es para la identificación? ¿Es para la dirección o
ahí para el empleado? Es para la dirección. No es para el empleado. ¿Cómo lo sé? Recuerda que es una lista que en
realidad estamos pasando. Significa que tenemos un
único ID de entidad mapearlo a dos diferentes dos direcciones
diferentes. Es decir, si hay más de
uno o si hay tres, la misma ID de entidad
en realidad se mapearon a ella. Necesitamos definir qué UID, qué dirección queremos actualizar
realmente Lo que voy a hacer, voy a entrar
aquí por el empleado. Y voy a elegir el UID para el empleado y de hecho
coloco esto aquí Ahora ya he
actualizado estos detalles, solo
vamos a golpearlo en C,
actualicemos al empleado. Bien, dirección del empleado
actualizada con éxito. Antes de ahora, la dirección del
empleado era este piso derecho cuatro AB Street, y ahora se ha
actualizado vamos a comprobarlo. Entonces, si voy a refrescar
esto, muéstralo de cerca. Observe esto de cerca. Si
voy a refrescar esto. Ya ves, esto
se ha actualizado, ¿verdad? Esto ha sido actualizado. Oh, no. Puedes ver aquí
hay un bicho.
Hay un error en el código. Y el error se supone que
haga una actualización, hice un guardado. Bien, así que vamos a
averiguar nuestro bicho. Bien, entonces saltamos
aquí. ¿Dónde está el dólar? Aquí es donde estamos actualizando
la dirección del empleado. Aquí encontramos la
dirección del empleado y
se supone que debemos hacer esta
validación? Verificamos. Entonces vino aquí.
¿Qué hiciste? Estamos mapeando estas entradas
que vinieron de las partes, estamos mapeando una nueva dirección que se supone que debemos actualizar. Entonces veamos,
¿actualizamos UID? Oh, no, no actualizamos UID, porque no
actualizamos el UID, esto falla Entonces vamos a hacer,
vamos a hacer eso,
vamos a hacer la dirección, luego conjuntos de puntos, DU ID. Trayendo las entradas, punto obtiene UID entonces básicamente va a
actualizar esta cadena decir UID UUID de cadena,
así que coloco esto en.T básicamente funcionaría Creo que esto
realmente debería resolver el problema. Ahora, hay algo más, recuerden que solo estamos pasando
estas entradas directamente. No estamos actualizando el UID, y esta es la guía
que contiene UID, vamos a elegir esta
interfaz de usuario y actualizarla aquí Entonces vamos a hacer yo
voy a escoger las inclusiones, voy a hacer ese set. Es un método de código,
esto debería funcionar. No escojas la dirección encontrada. Entonces consigue el UID, ¿verdad? Entonces coloca esto en, y
esto básicamente lo hará. Entonces ves que esto está
esperando una cadena, esto esperaba un UID y en
realidad está obteniendo un UUID Entonces veamos la
dirección aquí, ¿verdad? Entonces encuentras sets en absoluto. Entonces vamos a
hacer, voy a confirmar que esto
realmente funciona como debería colocando un punto de interrupción
aquí y ver qué pasa
aquí y ver que el UID se actualiza antes de que
realmente lo pasemos Bien, entonces, chicos,
vamos a probarlo. Entonces voy a reiniciar esto
voy a reiniciar esto. Recuerda la meta. El objetivo es ver esta dirección. Este particular cambio de dirección. Este cambio en particular, quiere ver el cambio,
quiere ver el cambio. ¿Por qué mantenemos esta misma identificación? Tenemos que mantener
el mismo. De hecho podríamos quitar esto
ahora mismo, quitarnos esto. Tomando esto, necesitamos
ver este cambio. Me voy. En realidad empezamos
esto. Empecé, una vez empezamos en el modo pantano Quiero comenzar
en modo depuración y mientras se acerca esto,
vamos a preparar las cosas. Vamos a empujar
en los mismos caminos. Pero esta vez, este
UID sigue siendo el mismo, recuerden, porque es
el mismo en el que
realmente nos estamos enfocando. Bien. Dicho eso y
esto ya está arriba. Entremos y
presentemos la solicitud. Voy a seguir adelante y hacer
actualizaciones dirección del empleado. Ahora, solo para
demostrárselos ,
también pueden quitarle esto. Recuerda, realmente
no lo necesitamos. Así que en realidad podríamos elegir
sólo los dos que necesitamos. Hagamos esto. Vamos a darle a esto. Bien, ahora golpeamos puntos de interrupción y veamos
qué pasa aquí dentro Quiero estar seguro de que esta
imput contiene la escritura. La entrada contiene la derecha, contiene la derecha,
y ahora ésta ha cambiado del piso A B cuatro a la calle
número cinco CD. Dicho esto,
vamos a liberarlo. Después
lo hemos lanzado, vamos a ver la dirección
del empleado de GraphQL orbitada Sacamos el éxito y ahí es donde no
podemos encontrar el éxito. Vamos a confirmar nuestra base de datos si todo funciona correctamente. Comprobemos la dirección. Y, eso es trabajar correctamente. Podremos arreglar el brote. Los veré chicos
en el siguiente video.
54. Prueba de mutación 4: Oigan, chicos, genial
tenerlos de vuelta. De hecho, he podido
actualizar esto con éxito en la aplicación de Australia,
seguro que funciona. Tenemos una
mutación más que probar, chicos, y luego
pasaremos a lo siguiente. Bien, entonces entraré aquí. El siguiente paso es que quiero
actualizar los datos del empleado. Actualizando los detalles del empleado, recuerden, en realidad traje todo aquí,
todas las variables. Ahora voy a ir por
la última variable, que es este tipo, y necesitamos
la identificación del empleado para hacerlo. Voy a entrar a la mesa
y obtener la identificación del empleado, voy a obtener la identificación del empleado. La identificación del empleado es ENP 4567. Voy a conseguir la
identificación del empleado, que es ésta. Entonces vamos a cambiar. Recuerda que el empleado
es pasante. El empleado es pasante, digamos que la cantidad
es 250002500054 Entonces voy a cambiarlo
realmente a 300054 y la edad es de 36
años. ¿Cuál es la edad aquí? Confirmemos la edad. El H es ¿qué es el H H H H? Bien, la edad es de 34 años, voy a cambiarla a 36. Dicho esto, vamos a darle esta pieza binw y
veamos qué pasa Ahora he estado
cambiando las cosas. Esta vez, tomemos creo que nos quitamos el éxito, vamos a llevarnos UID Pero se necesita el UID. Entonces voy a hacer es
quitarme estos dos bits, sólo para enfatizar de
qué se
trata la atención GAF a menos que la actualización Se puede ver el éxito y
el mensaje no ocurrió. A menos que confirmes
que ahora es manager, una vez que saltas,
refresco esto, puedes ver que el borde
ha cambiado a 36, cual es el rol ahora tu
rol es ahora manager. Ahora esto es genial chicos. Ahora siendo capaz de estudiar realmente músicos para ver cómo funciona. ¿Así es como
vas a proceder? No, no vas
a proceder de esta manera. Ahora, solo quería
mostrarles en un nivel bajo que podríamos crear las cosas paso a paso y funciona muy bien. ¿Cómo se supone que
vamos a proceder a partir de aquí? Muy bien. En la siguiente sección,
vamos a tomarnos un tiempo voy a
boostrap todas las propiedades Bostrap en el sentido de que
vamos a crear dinámicamente tres
empresas diferentes y luego crear muchos departamentos y luego
crear muchos empleados Lo vamos a hacer a través una biblioteca especial llamada difamación
tartamudeante llamada Es una biblioteca falsificadora.
Eso es un farsante. Entonces vas a usar
la biblioteca falsificadora para
poder fingir totalmente
y obtener todo esto Esta es una manera de
mostrarte cómo usar una biblioteca falsa para generar datos que realmente
no existen, ¿verdad? Podría
coincidir con alguien, ¿ verdad? Pero esa
no es toda la idea. Solo quiero
mostrarles que
hay herramientas separadas por ahí que pueden usar
para simplificar su proceso. Entonces vamos a estar haciendo
eso en el siguiente video.
55. Prueba de mutación con Postman: Oigan, chicos, prometo que voy a estar compartiendo
la colección de carteros Voy a estar compartiendo
la colección Postman, pero sin embargo, necesito
explicar algunos detalles aquí No quiero que nadie
se confunda en
cuanto a en caso de que quiera hacerse la prueba. En el momento en que
inicias tu servidor, esto automáticamente
introspectaría que obtienes ya está
resuelto para ti, para crear empresa, también lo
obtienes también resuelto Los separé para que en realidad
pudieras usar ya sea Ota o usar al cartero Voy a proporcionar ambos enlaces. Entonces para crear empresa,
se podía ver solo una. Entonces es bastante sencillo. Las variables son simplemente directas. Para departamentos es lo
mismo, ¿verdad? Mi enfoque ahora es el empleado. Quiero mostrarte una manera que realmente
podrías tener para
que puedas ver, hice para la creación para la actualización y para la
actualización detalles del empleado. La dirección de actualización, esa es la dirección del empleado y
actualizar los detalles del empleado. Mientras que las variables
también están todas seccionadas. Ahora bien, la pregunta que te
harías es ¿cómo sabrás
cuál enviar si estás aquí? La parte genial es que, si
eres muy observador, verás que en el
momento en que hagas clic en uno, el otro se vuelve grado Míralo. Hombre hago clic en esto a continuación este
orden para llegar a ser mayor. Si hago clic en este set, así sabe cuál estás tratando de enviar en base
al que resaltaste. ¿Bien? Entonces pensé que ese recuento mencionó
esto porque es muy, muy importante. Todo bien. Entonces, incluso para los otros videos, puede
que no vuelva a mostrar a
Postman, ¿verdad? O aún podría
mostrarlo más adelante
en el video para
mostrarte cómo pero voy a estar actualizando y enviando todo tanto para que
puedas elegir te sientas cómodo
en caso de que no
quieras descargar Alter y en realidad
tengas a Postman Pero tienes a Cartero,
si tienes a Alter, solo
tienes que seguir adelante y
siéntete libre de usarlo Y lo mismo que
seguí aquí, coloqué los nombres de las variables para que puedan ver los segmenté Un segmento que
en realidad podrías colapsar si lo
deseas, para que
te enfoques. Si realmente estás en las partes, en
realidad en esta parte, también
podrías
colapsar estas partes, es muy útil de usar. Podrías colapsar. Oye, solo me estoy concentrando en esto de aquí, así que solo te enfocarás en esto y eso
funcionaría como debería Yo solo para que deba
mostrar esto para ver cómo funciona
Postman GAF
Quel usando Voy a publicar este video también para que
tengamos una buena idea. Entonces te veré
en el siguiente video.
56. Entidades en Bootstrap parte 1: Oigan, chicos, genial
tenerlos de vuelta. De hecho, hemos pasado por esta sección de nuestras
pruebas de la mutación. Ahora, podemos ir por ahí creando
todos los datos que necesitamos. Básicamente, no vamos a terminar esto seguro
si lo intentas. Vamos a hacer,
voy a importar la biblioteca de la biblioteca, vamos a poder
crear un dato de
prueba, probar en datos reales. Ahora la biblioteca que la utiliza
se llama biblioteca Faker. Se llama la biblioteca Face, y eso es lo que
vamos a traer es bastante fácil para ti. Se llama DataFaker
data faker. Lo que voy a hacer, sólo
voy a bajar aquí y sólo voy a presentarlo. Entonces dependencia, y me
interesa el farsante de datos. Se llama Data Faker. Así que solo crea algunos datos
falsos, ¿verdad? Creo que usemos los
últimos 22, los dos. Así que solo
lo traigo, y ese es el primer paso que
tenemos que hacer, ¿verdad? Así que ahora habiendo hecho
eso, como ya saben, esto básicamente debería
tener un punto de entrada, entonces necesitamos entonces
comenzar a usarlo. Entonces, solo es ideal conectarlo como una viga porque
en
realidad estás usando botas de resorte, ¿verdad? Por lo que tenemos que delegar
todo al concurso del COI. De esta manera, todo es
gestionado por el concurso del COI. Voy a seguir adelante y
crear solo creo una clase llamada
Project Config. Project Config, increíble. Simplemente voy a delegar esto
como una configuración. Entonces solo traeré la falsificación de
datos que
va a ser una viga, y es muy fácil de usar, chicos. Muy fácil de usar. Si decides no usar público, yo solo diré Faker de cara, farsante, farsante, entonces nos volvemos nuevos
farsantes, eso es todo lo que tenemos que hacer por aquí,
¿verdad? Eso es todo lo que tenemos que hacer. Básicamente lo hemos inyectado. No lo necesitamos público
porque al parecer, no
estamos llamando directamente a
esta clase. Por lo que esto será gestionado por IOC
y se creará una instancia singleton o una sola instancia para
que la
usemos en toda la
aplicación. Todo bien. Entonces, a medida que ahora avanzamos creación, avancemos
a crear los datos. Lo usaremos para este proyecto. Va a ser una codificación un
poco guapa. Descargo de responsabilidad, chicos,
vamos a estar escribiendo mucho código en esta sección
para traer esto. Al parecer, esa es
la manera de aprender. Escribimos mucho
código y lo hacemos en un contexto específico para saber
exactamente lo que estamos haciendo. Voy a seguir adelante y luego crear Voy a llamar a un paquete
llamado poblar. Yo lo llamaré vamos a llamar a
esta configuración Fest de todos. Llamemos a la configuración. Entonces llamaremos a esta tabla de Poblar.
Llámalo como quieras. Poblar tabla. No usarían este escenario
en producción, chicos. Es solo para pruebas. No quiero crear todos
los datos que necesito. Bueno, alguien podría
haber dicho, ¿por qué no
creas todo dentro de pub un guión? Entonces, ¿por qué todo? Eso está bien. Eso
va a funcionar con precisión. Realmente no tiene nada de
malo. Solo
les estoy mostrando una
alternativa diferente en lugar de usar schema el schema
y y estoy colocando el esquema SQL y
data dot SQL aquí, y luego
lo llenamos con datos Sólo quiero mostrarte
un enfoque diferente. Si tienes una base de datos de prueba, solo
quieres ser popular
con tantos datos y parece que no
puedes empezar a
pensar de dónde obtener los datos. Hay varios sitios por
ahí que podrías obtener pero esta es otra forma en que realmente
podrías lograrlo. Ese es el único propósito de realmente
pasar por estas rutas. Porque Suena bien tenemos diferentes medios de
hacer realmente lo mismo, que veamos cuál es realmente mejor para cada escenario. Primera parada, voy a hacer de
esto un componente. Al parecer, necesito un
SLL para J porque
hacemos algún login.
Bien, eso es genial. Entonces al parecer voy a
estar usando mi popular requerido Como constructor
de Lumbarg Hemos estado haciendo
mucho cableado, así que voy a necesitar el repositorio de la
compañía. Hagámoslo definitivo, al parecer. Final. Repositorio de la empresa. También necesitaré repositorio de
departamento, repositorio Scots Department Repositorio departamental. También voy a necesitar el repositorio de
empleados. Poposición patronal. Si te estás preguntando cómo llegué si realmente
hago clic en esto, cómo lo traigo es automáticamente, puedes duplicar presionando
contro D en la Ventana Creo que es el Comando
D en el MAC, así que solo se duplica, así que solo puedes verificar directamente ¿Bien? Ahora he estado
necesitando subcontratar el repost subcontratado Entonces también voy a ser un repositorio finalmente abordado
dirección post ajustar posit Estoy seguro como
ustedes ya saben, ya hemos inyectado
sobre bibliotecas FICA. Es justo
traerlo, ¿de acuerdo? FACA. Así que trae a un
falso farsante, ¿verdad? Entonces, si solo haces clic en
esto, si no es definitivo o si solo
compruebas dónde
conectaste, revisas, y
verías que va directamente
a esta parte. Bien, donde solo lo agregamos. Así que demuéstralo está en el COI. Bien, genial. Así que hemos
podido hacer esto. Ahora, lo siguiente que
nos preguntamos es, ¿queremos que esto funcione
cada vez? Al parecer no. Una vez que lo hayas cargado una vez que
hayamos cargado los
datos en la base de datos, no
queremos
que se ejecute cada vez. Entonces solo queremos
ejecutarlo cuando lo necesitemos. Entonces como resultado, voy a
agregar otra propiedad, ¿verdad? Voy a agregar
otra propiedad. Hagamos esto aquí, ¿
verdad? Sólo lo tenemos. Llamémoslo placas pop. Placa P. Vamos a llamarlo mesa polit. poplit.
Hagámoslo habilitar Habilitar. Activar mesa pop. Hagámoslo falso así que ahora. Cuando estés listo,
conéctalo, lo haré realidad. Hagámoslo falso por ahora. Todo bien. Esto está hecho. Ahora bien, ¿cómo se asegura que una viga se cargue
realmente en contexto
basado en una propiedad? La pregunta otra vez,
voy a repasarla otra vez, ¿cómo se asegura de que
un bin se cargue en el contexto basado en
una propiedad en particular? Que es lo que ahora vamos
a inyectar aquí. Cuando tienes cualquier ben
cualquiera de los componentes, servicio, repositure lo que
sea que realmente tenga debajo de él, los Tomemos por ejemplo,
auto entrando aquí. Eso tiene en componentes, al parecer para ser visto como una viga. Incluso si revisas nuestro servicio, verifiquemos nuestra capa de servicio. Nosotros comprobamos esto,
se puede ver en los componentes. Entonces es por eso que se llama al escaneo de
componentes, ¿verdad? En el escaneo de componentes porque
lo mira para ver si tiene un
componente dentro de él. Bien, entonces, ¿cómo asegura? ¿Cómo nos aseguramos de que esta
viga muy por debajo de ese contexto, usamos una
notación springer llamada condición en condicional
en propiedad en condicional Condicional a la propiedad. Hay un condicional al ser. No estamos viendo
eso ahora mismo, pero es una propiedad condicional. Lo que dice es si esta
propiedad es verdadera o si esta propiedad realmente favorece a un particular o es igual
a algo, entonces cargue. Si no lo iguala, no cargan. Y si definimos lo definimos como poblar, tabla, habilitar Ir aquí y solo decir,
tráelo en el nombre. El nombre que queremos
traer es poblar. Habilitar mesa. Ahora bien, ¿cuál queremos que sea
el valor? Ya ves que
también hay otro pedacito. Yo digo tener valor. Se podría determinar qué
valor queremos que sea. Una cosa es tener la
propiedad en tu aplicación, tus propiedades o Yarmo También es otra cosa
para ti tener un valor. Se podría decir, si lo
deja de esta manera, digamos, si esta propiedad existe, úsela. Si no existe, no
pierdas lo grande. Ese es un caso,
pero
lo voy a hacer más fácil diciendo si existe y también tiene este valor y
tiene un valor de verdad. Espero que sea claro chicos. También una cosa para mencionar,
mira a, en realidad es una matriz, lo que significa que podrías tener
múltiples propiedades. Todas las propiedades deben estar
existentes para que funcione. Pero si quieres que sea
un músculo dos o más claro, podrías usar uno y
darle un valor específico. Dicho esto, te
veré en el siguiente video.
57. Entidades en Bootstrap parte 2: Oigan, chicos, es bueno
tenerlos de vuelta. Bien. Así que
miramos en el último video, realidad
creamos esta tabla de
poblar, ¿verdad? Y usamos esto
fue donde terminamos, donde agregamos esta
propiedad que decide si se carga
una viga o no, ¿verdad? Y eso es lo que
realmente utilizamos. Y le expliqué que se
trata de una matriz. Podrías simplemente hacer un
clic de Control o un clic de Comando, y verías
que es una matriz, así podrías tener
varias partes, o simplemente podrías
darle una específica y darle un valor particular. Para que puedas jugar con él, pero así es como
voy a tenerlo así. Entonces vamos a verificarlo. Así que voy a implementar
realmente corredor de línea de
comandos
porque quiero que se ejecute al inicio
de la aplicación. Si estoy implementando Command
line runner, al parecer, necesito proporcionar el método
y el método es este. Lo que voy a hacer,
voy a simplemente pasar
una info aquí, registrar la información, y solo diré que
solo hazlo muy raro para que podamos
rastrear fácilmente en nuestros pulmones. Voy a poblar la tabla que
se está activando, ¿verdad? Entonces solo ten esto. Entonces nos dice si realmente
causa o golpea Bien, el siguiente paso es
que tenemos que definir realmente lo que queremos hacer porque hay una serie de
cosas que queremos hacer aquí. Entonces, escribamos un pseudo código para favorecer realmente
lo que queremos hacer Entonces voy a decir número
uno, vamos a crear tres compañía ficticia El
ficticio. Eso es correcto. Ficticio. Voy a arreglar ida. El ficticio viene con
tres tipo de negocio. Con tres tipo de negocio. Todo bien. Entonces ese es
uno de los criterios para nosotros. Una empresa ficticia con
tres tipos de negocio. Recuerda, tenemos un um
llamado tipo de negocio, ¿verdad? Entonces eso es
lo primero que queremos hacer. Entonces lo siguiente en lo que
queremos enfocarnos es luego continuar diciendo, crear el antebrazo,
el brazo anterior del
departamento vinculado a los
días de empresa y división Sólo digo que deberíamos
tener varios departamentos. Ahora también tenemos otro um y el num realmente
toma división, que es para departamentos, ¿verdad? Sólo estás diciendo que queremos
que tenga una división de cuatro. Si revisas nuestra división num, si pudieras seguir entrando
ahí, ¿cuántas tenemos? Comprobamos nuestros tipos, vamos a revisar nuestra división. Verás tenemos cuatro divisiones,
creamos cuatro divisiones. No vamos a salir de alcance. Comprobamos nuestro tipo de negocio, nuestro tipo de negocio también es tres, así que no vamos a salir de alcance. H ahora tenemos esto, entonces podemos crear un
dato masivo para los empleados. Crear 200 empleados. Esto es asp tus necesidades. Yo solo quiero tener muchos datos porque
hacemos varios pedacitos de consulta algunos nuevos empleados
con las cuatro filas Con cuatro reglas, derecha, con las cuatro filas que están disponibles cuatro filas
están disponibles. Un amigo, tenemos cuatro filas. Tenemos un Num, derecho
revisas el ums bajo empleado, y ves que tenemos una
fila um y eso son cuatro unidades. Entonces obtenemos 40 subcontratados. 40 subcontratados. Al parecer, tiene tres deberes también, ¿no? Si confunden, chicos,
podemos mirarlo. Nosotros tenemos el papel. Si nos fijamos
en el papel, quiero decir. Bueno, tenemos cuatro papeles. Si nos fijamos en el deber,
tenemos tres deberes. Solo estoy usando exactamente lo
mismo que tenemos. Creo que ya está. Luego, por último, vincula cada uno de los empleados slash subcontratados a
diferentes direcciones Tenemos que
vincularlos. Necesitan tener domicilio, tan diferente. Direcciones. Bien. Creo que hemos podido
cubrir lo básico. Sí. Bien, así que
volvamos aquí Creo que debería ser una T, ¿verdad? Oh, genial. Ficticio Bien. Entonces esbirro
no es real, ¿verdad? Porque no
genero datos forca vas a ver
como funciona, ¿de acuerdo? Así que hemos podido
crear realmente los detalles básicos que necesitamos. Así que creo que podemos saltar de inmediato, ¿
verdad? Vamos a saltar a la derecha. Entonces antes que nada, vamos a crear
el empleado ficticio,
perdón, empresas con
los tres tipos de negocio Y al parecer solo lo
hacemos privado, privado, lo privado, luego lista de compañía ser una lista. Esta empresa derecha,
Listado de empresas. Entonces lo llamaré genera. Empresas. Generar empresas. Bien. ¿Esto es qué? Fresco. Entonces, Bien. Podríamos hacer esto usando
podríamos en realidad una transmisión, pero trato de hacerlo
más abierto porque me he dado cuenta de que
algunas personas
no se sienten realmente cómodas
con el stream. Entonces voy a usar un bucle de cuatro para que podamos
ver cómo funciona. Pero podría hacer un desajuste. De hecho hago un mix match en el medio para que
podamos tener una variedad de uno de los dos. Bien. Entonces voy a hacer cuatro. Recuerda, estamos
apuntando a tres, ¿verdad? Tres. Entonces apuntando a
tres, no a diez. Gracias auto complete aunque. Entonces tienes tres, entonces tenemos una empresa.
Creamos un compy. Entonces establecemos el nombre. Uh, eh. Se puede ver que esta FACA se generó
automáticamente de mí. Por lo que FACA ya tiene un
concepto de empresa con mit. Entonces podrías hacer puntos FACA. Ves todo lo disponible,
hay número de compañía, dirección, fecha, espacio,
un montón de cosas. Sí, un montón de cosas que podrías
conseguir, ¿verdad? Un montón de cosas.
Entonces es por eso que uso la biblioteca FACA porque es
simplemente simplemente increíble. Bien. Bien. Entonces, uh entonces
queremos establecer el número RC, acompañando que
establece el número RC. Soy particular en hacer que
nuestro número RC comience con RC. Entonces, ¿queremos un número aleatorio? Sí. Vamos a usar un
número aleatorio, pero esta vez, queremos especificar queremos
que sea específico para solo cuatro. No quiero sacarlo de cuatro, limitémoslo a cuatro. Si haces un control P un
comando P dentro de este, verás que
toma un número de dígitos y queremos
que sea estricto. Estricto significa
que quieres que sea menor? ¿Quieres que algunos sean menores? Tal vez sea
uno, dos o tres, o quieres que
sean exactamente cuatro. Al parecer,
quiero ser exactamente cuatro. Diré, sí, quiero ser cuatro y quiero ser muy estricto. Deberían ser exactamente cuatro.
Con eso concluye ese pedacito. Entonces queremos establecer
nuestra oficina central ¿verdad? Empresa Empresa que establece
la oficina central, oficina central. Ahora, recuerden, miren la FACA. FACA también tiene un concepto
de domicilio, ¿no? Entonces pasando dirección, dirección
completa, dirección dirección completa porque no
hicimos esto. No hicimos la
empresa no
vinculamos la empresa a
la entidad de dirección. Solo quería pasar una sola capa de cadena,
y esto funciona. Entonces el siguiente paso, Empresa
punto conjunto país, no esto. Empresa sí establece país. Al parecer, la FECA también tiene
un concepto de país. Yo solo usaría
cualquier nombre de país. Entonces finalmente, nuestra empresa tipo de negocio
sí establece el tipo de negocio. Al parecer vamos a
hacer tipo de negocio. Ahora, porque sabemos
que serán tres, así que vamos a
elegirlo uno tras otro usando el índice. Tipo de negocio los valores que vamos a
hacer tipo de negocio, los valores, deberías obtener
todo el negocio disponible. Ya que nos da una matriz, esto nos da una
matriz
si la miras . Nos da una matriz. Entonces quieres pasar en I. Así que esto básicamente funciona. Entonces lo que estamos diciendo es
escoger todo el tipo de negocio. Entonces, cuando esto sea cero, escoja cero. Uno es uno, elegimos uno, cuando esto es dos, elegimos dos. Al parecer,
ya que es menos de tres, así que tenemos cero, uno, dos índices, y voy a elegir los que
correspondan. Creo que en realidad hemos sido
capaces de lograr esto. Entonces entonces podemos decir, dentro de
esto después de que hayas hecho esto, justo después de que hayas hecho esto, haz una empresa que se agregue. Entonces una vez que hayas hecho
eso, entonces podrás regresar. Se puede regresar. Empresas
Empresa Repositorio punto save. Repositorio de la empresa punto SavO. Existe un concepto de Save
way save all your entities, y ahora hemos
podido hacer esto. Chicos. Te veré
el siguiente video
58. Entidades en Bootstrap, parte 3: Oigan, chicos, es bueno
tenerlos de vuelta. Todo bien. En el último video, realmente
somos capaces de crear todo el código que necesitamos
para generar realmente las entidades y
cargarlo en nuestra tabla, llegar
a ver ese trabajo. Todo bien. Básicamente quiero pasar por todo para
asegurarme de que todo esté bien
antes de que luego procedamos. Asegurémonos de que capturamos
todos los detalles de la compañía. Voy a traer esto en
partirlo a la derecha,
y vamos a confirmar. Tenemos el nombre, número
RC aquí. Tenemos la oficina central,
tenemos el país, tenemos el tipo de negocio
y eso físicamente funciona. Impresionante, increíble. Recuerda que el UID se
generará automáticamente. Sí, para ser auto generado. Bien, así que esto hecho, pasemos al siguiente bit. Ahora, vamos a crear vamos a
generar nuestro departamento. Va a seguir el
mismo concepto y ser cualquier cosa diferente. Así corta departamento,
gracias, auto completo. Entonces tenemos la lista de departamentos
departamentales o algunos. Entonces recuerda, ¿a cuántos me
refiero, departamento tenemos? Tenemos cuatro, que es cuatro. Hagámoslo un número. Cuatro M departamento porque
hay cuatro divisiones. Entonces lo que vamos
a hacer cada empresa, cada empresa tendría cuatro departamentos tendría el departamento que aquí
señalamos, va a tener cuatro departamentos
diferentes, los cuales tenemos aquí
miramos estos bits. Mira estos pedacitos. Así que en realidad podrías
seguir adelante. Así que cada uno de la empresa HRC tech servicio al cliente,
cada uno de ellos. Entonces eso es lo que
vamos a lograr aquí dentro. Así que sólo estamos siguiendo
el código sudo, en realidad me
colocaste, ¿de acuerdo? Vamos a proceder. Entonces
vamos a tener Sí Ya que estás enlazando
con las empresas, sí, en realidad
deberíamos tener una lista debería tomar en una
lista de empresas, ¿verdad? Entonces llámalo
empresas guardadas. Todo bien. Guardar empresas. Recuerda
que como mencioné, voy a estar usando
four loop y stream, así que vamos a usar ambos juntos. Entonces para aquellos que no entiendo, podrías empezar a aprender de este aspecto en particular, ¿de acuerdo? Bien, así que procedamos. A continuación, vas a decir, vamos a decir
todos los departamentos. Tenemos una lista de estos. ¿Bien? Tenemos una lista
de departamentos aquí. Entonces, comencemos de esto. Déjame quedarme con este tipo. Déjame retener a este tipo, y veremos cómo
va a funcionar en un rato. Vamos a decir
empresas guardadas, punto stream. Al parecer, tenemos
cuatro. Entonces tenemos tres. Tres empresas, luego punto MAP
Vamos al Mapa Mapa cada una de ellas. El mapeo es un lugar
donde quieres hacer alguna transformación o
tal vez quieras hacer algún trabajo. También podrías tomar un Lander. Pero básicamente, es una función. Podrías escribir cualquier cosa que una
función deba dentro de un mapa. Con base en la lista por la que
realmente estás transmitiendo, tendrías cada
compañía por cada compañía. Así que tenlo en mente, cada
compañía, ¿verdad? Todo bien. Para ello, entonces van
a tener para cada uno de ellos, vas a tener una
lista de departamentos, lista de Recordar, cada
empresa cuatro departamentos, cada empresa cuatro departamentos. Vamos a tener el
concepto de para cada uno, vamos a tener
estos departamentos
vamos a decir cuatro departamentos
al final del día. Esta parte aquí
tenemos ahora cuatro diferentes. Esto va a ser cuatro, ¿verdad? Ahora podemos volver a crear
nuestros departamentos. Ahora vamos a traer todos nuestros
departamentos. Tenemos un nombre. Tienes nombre, ¿verdad?
Pero esta vez, no
podemos usar compañía
porque empresa no tiene el
concepto de departamento. Si lo miras, no
tiene el concepto de departamento. No obstante, ¿cuál
sería el nombre? El nombre de los departamentos. Recuerda, la división es
diferente al nombre. Queremos hacer departamento,
el departamento tenga un nombre, pero la división sería
entonces ventas de fiesta,
recursos humanos, y las otras cosas que en realidad
proporcionamos. En FECA, tenemos lo que
llamamos comercio. Departamento de puntos de comercio
impresionante, impresionante. Eso lo tenemos.
Entonces puedes tener departamentos. En cambio número de departamento, vamos
a generar esto, esto va a ser
una cadena, ¿verdad? Déjame obtener un valor.
Vamos a ponerle una cuerda a esto. Lo vamos a hacer es que
vamos a decir una cadena, el valor de, no, no
quiero esto. Quiero que sea de cuatro dígitos. Diré Faker ese número
aleatorio. Hagámoslo seis.
Hagamos este seis. Vas a tener
seis. Cada departamento representó el número
presentado por seis dígitos. Eso funciona. Al siguiente, entonces
voy a establecer el nombre de la compañía. Departamento Departamento
que establece el nombre de la empresa. Recuerda, es solo la compañía la que recibe nombre porque
en realidad estás transmitiendo
a través de la compañía. Esta empresa es la
que estamos trayendo. A continuación, voy
a estudiar el número RC. Número RC, que establece el número RC. Va a ser compañía
que fijó el número RC. Espero que lo sigas ya que puedes ver cómo estamos vinculando
todo. Entonces finalmente, establecer departamento
que establece división. Los mismos conceptos
que en realidad
implementamos esta misma
cosa, luego establecemos división. División, los valores, entonces es una matriz en solo
pasar el I, ¿verdad? Entonces esto solo mira
a través
porque son cuatro y
tenemos nuestros datos. Entonces pueden decir departamentos. Entonces tenemos estos departamentos, lo
estás agregando. Entonces para cada uno de ellos,
nos cargaremos en este tipo, este departamento, luego podríamos
regresar porque dentro del mapa debes regresar
directamente. Entonces regresas. Entonces ahora hemos transformado la empresa en
departamento, ¿no? Transformamos empresa
en departamento. Entonces esta vez departamento de agonía, por lo que esta empresa ahora se
cambia a departamento Así que tengámoslo
en mente, chicos, ya que en realidad procedemos, ¿verdad? Entonces, estando hecho
eso, vamos a tener un jefe
de departamentos, ¿verdad? Ahora bien, si lo
miraras críticamente, lo que básicamente creamos
sería un departamento, un departamento de departamentos.
Al parecer, es una lista. Cada tonificación, afinando
una lista de departamento. Y como
todos son departamentos, queremos poner a
la misma mesa. Significa que una sola entrada, así podríamos usar un
concepto de mapa plano, mapa
plano, luego
enumeramos este stream, luego solo pasarlo a creo que
solo lo necesitamos como lista. Sólo tómalo como una
lista. Lista de TLIST. Entonces déjame explicarte
esto otra vez, ¿verdad? Bien, así que
llamémoslo a todos departamentos. Bien, vamos a preguntarle
qué hice aquí. Estoy seguro de que esto está claro, chicos. Solo estoy haciendo ping
transcenando departamentos, luego estoy cargando todo
en estos Ahora bien, lo que pasaría es que ahora
tenemos una lista
de departamento. Tienes cuatro departamentos
diferentes. Recuerden, ahora tenemos un departamento de
hombres. Ya que tenemos tres empresas, cuatro departamentos, al final
del día,
el departamento que
regresamos en total es de 12 porque cuatro por cada empresa. Eso es lo que vamos a tener. No obstante, recuerden que estamos
guardando todo base de datos y todos ellos
siguen
el mismo concepto, los mismos arreglos, el mismo campo, hay
algo diferente. Ahora, estoy haciendo un piso Sp. I FlatMap está diciendo en lugar de tener realmente
una lista de lista, dame una sola lista Una sola lista es solo un departamento y eso es
lo que hemos hecho aquí. Departamento, este
departamento en vez de tener lista de listas, estás trayendo todo
a una sola lista. Si nos fijamos en la implementación
de FlatMap, verá, devuelve un flujo que
consiste en reemplazar un
elemento del flujo Y si lo miras
críticamente, dice, aplica la función
veamos si trae ejemplo, tu operación de mapa plano
tiene el efecto de aplicar una a muchas
transformaciones. Estás trayendo muchos departamentos de departamento en un
solo departamento. Ahora tenemos una sola
lista de departamentos. Ahora hemos podido
lograr esto, entonces ¿cómo procedemos? Vamos a proceder.
59. Entidades en Bootstrap, parte 4: Oigan, chicos, genial
tenerlos de vuelta. Lo que hicimos en el último video, lo intentamos en la medida de lo posible. Ahora podemos obtener
todo nuestro departamento y necesitamos guardarlo
en una base de datos. Eso es lo que estamos a
punto de hacer ahora. Queremos guardarlo en base de datos. No obstante, podríamos
tener un problema, ¿verdad? Recuerde, estamos
usando una biblioteca faker para generar números aleatorios Esta es la parte que podríamos
tener problemas, ¿verdad? Porque en realidad estás
generando un número aleatorio. Es posible. Podría generarse el mismo
número. Necesito que se genere el mismo
número, ¿qué pasaría?
¿Si podemos adivinarlo? En realidad tenemos un error,
guárdalo en la base de datos. Es justo, ¿por qué no es
esta biblioteca de farsante? En realidad colocas
dentro de un tricad En caso de
que ocurra un error, no impide que nuestros carteles
llenen la tabla Si tenemos al menos
tres mesas por compañía, tres departamentos por
compañía, sigue estando bien. Así que danos
los datos suficientes que necesitamos. Sólo digo que no
debemos experimentar un escenario de fracaso. ¿Qué vamos
a hacer en este caso? Déjame poner aquí una nota. Yo solo diré guardar uno
por uno para atrapar errores. Recuerda que esto es ficticio. Se trata de datos ficticios, así que no lo haces
en producción, pero puedes hacerlo en tu entorno de desarrollo de
UNTL para crear Esto se puede hacer. Entonces sigamos
adelante, hagamos una vuelta. Voy a usar un stream otra vez, todos los departamentos dot stream. Después mapa de puntos. Recuerda, quiero hacer
otra transformación. Recuerda, ya que estoy
usando todo el departamento, lo has adivinado.
¿Qué habrá aquí? Departamentos, estás
escogiendo cada departamento. ¿Bien? Para cada departamento, entonces hagamos un TryCatch Intentas atrapar. Bien,
vamos a llegar a la excepción genérica. Todo bien. Entonces para cada uno, vamos a decir regreso. Nos volvemos guardar. ¿Por qué no quieres que uses
siete flush? A ver. La entidad de siete ras guarda ent y descarga los
cambios inmediatamente Hasta que salvaremos no debe ser no. Gira a la entidad. Esto funciona. Esto funciona. Esto funciona. Esto es JPA Bueno, me vendría bien Save. Eso es interesante. Eso es
interesante. Todo bien. Con esto aquí, solo podemos
hacer un registro que sea info y decir, Departamento si falla,
departamentos departamento campo. Guardar campo, ¿verdad? Diré que solo imprima
el nombre que se. Ya que no estás
haciendo otra cosa, ellos solo regresan no
aquí más no regresan no. Ella nos da datos, no
sabes. Ahora bien, porque si devuelve null,
¿estamos haciendo otra cosa? No estamos usando este concepto E en las últimas versiones de Java, si lo estás usando, podrías
simplemente pasar ignorado. Usa Ignorar si no lo estás
usando o simplemente estás pasando la partitura
y eso funciona. Recuerden, nos dirigimos
hacia este el filtro. Asegurémonos de que no se reciba ningún objeto
nulo. Objetos, no nulos. Al parecer, no
queremos ser nulos. Entonces porque una vez que guarda,
devuélvanos los datos, pero cada uno de los datos
que
revisamos, guardamos,
recuperamos datos, guardamos, recuperamos datos. Queremos estar seguros de
que no es un objeto
nulo en caso de error. Entonces si ese es el caso,
no volvemos a la lista, y eso realmente funciona. ¿Bien? Seguro que eso es claro chicos, espero que volvamos a escribir. Entonces tenemos los otros
departamentos aquí. Pasamos por cada uno
de ellos uno por uno, enviándonos
pasando por tu bucle de cuatro. Entonces dentro del
mapa, solo guardamos. Vamos
a quedarnos a ahorrar por ahora. Pegarse para ahorrar. No es
trabajo al ras. Digamos la caja fuerte. Ponemos esto en y
una vez que realmente
podamos recuperar los datos, solo vemos, ¿verdad? Si ocurre un error,
realmente capturamos la excepción
y simplemente devolvemos null. Después mostramos entonces que para
cada uno de los datos del filtro, no
hay ningún objeto nulo
que haya regresado y que luego
nos devolvería nuestra lista. Pudido
implementar realmente departamento. Tan impresionante. Bien.
Tenemos algunos copili para ir. Todavía nos quedan unas tres o
cuatro implementaciones por recorrer. Bien, solo
tómalo paso a paso. En este video,
intentemos ver si
podemos terminar de implementar
empleados. Vamos por el mismo camino.
Empleado de lista privada. Interesante. Pero en
esta ocasión, vas a estar consiguiendo departamentos. Departamento es todo lo
que necesitamos departamentos, lo
llamaré departamentos guardados. Entonces los departamentos, de la misma manera, tío, no hacen
nada diferente. Nosotros solo vendemos departamento que acaba de transmitir a través,
no hacer stream. Para cada arroyo. Después el mapa. Mapa, recuerden, supongo
lo que tenemos aquí, vamos a tener departamentos, llamarlo profundidades para
cada departamento. Entonces para cada departamento, entonces no conseguimos esto todavía, tenemos una lista de empleados que
van a poner las cosas en. Lista de empleados
lista de empleados, llámalo empleados, relisol Ahora, ¿vas a recordar
qué dijiste aquí? Queremos 200 empleados. Aquí vamos a colocar 200. Vamos a tener 200. Bien. Entonces para los 200 empleados. Todo bien. Vamos a conseguir
a cada empleado. Vamos a crear
datos para cada empleado. Esto podría ser bastante gravoso. Voy a hacer una pausa en
este video y volveré corriendo. Voy a hacer todo esto
rápidamente. Todo bien. He entrado y en realidad
he podido hacer esto. Rápidamente marqué vamos a recorrer
rápidamente lo que hice para que en realidad no
dediquemos tiempo codificándolo, pero puedes codificarlo a lo largo, Podrías simplemente
pausar el video y simplemente codificar rápidamente
lo que tengo aquí. Déjame explicarte rápidamente
lo que hice aquí. En primer lugar, el nombre, poniendo en el nombre farsante
concepto de nombre completo, genial. Fechas de nacimiento. Recuerda, estamos tomando una
fecha de nacimiento como fechas. Estoy diciendo que miren las fechas entonces. Sí, y estoy diciendo
22 más cualquier cantidad dentro de uno a 2022
más cualquier cantidad, así que podríamos tener
diferentes rangos como 32, 36, 22, en ese
sentido, ¿verdad? ¿Bien? Fresco. Entonces podríamos
tener varios rangos. Entonces el género, al parecer,
tenemos que valorar para el género. Recuerden, tenemos un género, este varón, hembra, ¿verdad? Entonces podría ser
masculino o femenino, ¿verdad? Nosotros no discriminamos. Bien. Entonces por aquí, entonces
al mismo tiempo
tenemos sueldo así sueldo,
se quiere asegurar
que el salario esté
dentro de los 30,100 mil, 100 mil, 100 mil Eso es básicamente lo que estamos
haciendo ahí. Estamos diciendo que queremos darle decimal, podría ser de 30 mil.54 99 mil.68. Eso es básicamente
lo que está haciendo esto. Entonces H, al parecer, la fecha de nacimiento
se corresponderá con H. Ahí es donde estoy
recogiendo la tasa de bits y estoy mirándolo. Estoy consiguiendo la fecha de
bith y la estoy restando del año en curso y
eso nos dará la Sólo estoy escogiendo
lo que tenemos aquí, así que debería corresponder.
El número de teléfono. Tenemos un concepto de
número de teléfono y el nombre de la empresa, al parecer, el
departamento ya contiene nombres de empresas, estoy
consiguiendo el nombre de la compañía. Sí, quiero que esté activo. Sí, quiero que esté activo. Entonces el ID de empleado,
solo uso una identificación de farsante. Hay este número de identificación válido que te dará
un número de cadena. El número de socio
lo recogerá del departamento. Entonces el correo electrónico así
es como obtienes correo electrónico, Faca Internet y correo electrónico, luego el papel Impresionante El rol tiene tres valores, solo pasa por y solo
elige cualquier número 0-3 Recuerda, no puedo usar
esto porque esto tiene 200 valores, así que no
puedo hacer esto. Eso es que estoy escogiendo cualquier
número 0-3 para que sea cero, uno y dos. En realidad tienen eso. Si lo miras,
recuerda que tenemos tres. Creo que tenemos cuatro,
está bien. Eso está bien. Ahora bien, si miras esto, estoy viendo, es posible pasemos por todo
esto y no tengamos un GND Por eso hice empleado de configuración, o simplemente debería
llamarlo configuración GND Vamos a llamarlo configuración GND. Configurar GND. Simplemente destaquen. Lo que estoy haciendo es en caso de que no tengamos un GMV, vamos a darle un solo GMB Al parecer
debería haber un GMV, creo que el concepto es
claro, agregamos el empleado Ahora que hemos podido lograr
realmente eso es genial. Volvamos
en el siguiente video para terminar esto de verdad. Nos vemos en el siguiente video.
60. Entidades en Bootstrap, parte 5: Oigan, chicos, genial
tenerlos de vuelta. Bien, así que vamos a proceder a terminar de implementar
al empleado. Debería haber
terminado en el último video, pero siento que se estaba
haciendo demasiado largo. Así que en realidad
podríamos hacer esto, ¿verdad? Entonces, chicos, por favor tengan en cuenta que no necesariamente
tienen que hacer esto. Podrías simplemente copiar todo
este dis del repo y simplemente usarlo. Sólo debes entender
lo que está haciendo. Esa es toda la idea.
Entiende lo que es. Entonces me estoy tomando mi
tiempo para explicar. Entonces solo puedes entender
lo que está haciendo esto. Lo que está haciendo
básicamente es solo querer iniciar nuestros datos
en la tabla. Bien, así que esto estando hecho, el mismo concepto
va a ser FlatMap, para llevar todo
a partes individuales, entonces esta es la lista.
Impresionante. Entonces esto funciona. Sí, voy a llamarlo
todo empleados. Todos los empleados. Recuerda de la misma manera, también
podríamos tener errores. Porque podríamos tener
errores, para entonces voy a hacer lo mismo
a todos los empleados. El arroyo, recuerden que no harán esto en
producción, chicos. No vas a hacer
esto en producción. Proceda todo el empleo para cada
empleado, vamos a hacer Til catch. Prueba Atrapa a la persona excepción, luego solo emplea seguro. ¿Bien? Es obras. Esto funciona. Entonces de la misma manera también, estamos
seguros de que no obtenemos el futuro, y estamos seguros de que
no obtenemos el nulo, luego recurrimos a listas. Bien. Creo que me
falta algo. Esto es quejarse por aquí. Veamos cuál es el error. Diciendo un filtro, objeto,
no, no, tenemos los conceptos. Bien. Todo bien. Déjame
terminar esto rápidamente. Queremos agregar algo
aquí, queremos hacer una devolución. Sí, creo que somos nosotros
sobre el regreso. Después guardar empleado. Tenemos empleado Positii
salvando al empleado, consiguiendo si hay un
error, déjeme verificar ¿Cuál es el problema aquí?
Necesita una declaración de devolución. ¿Bien? Tenemos que agregar
retorno, no. Eso funciona. Muy bien, siendo
capaces de implementar esto ahora tenemos un generar
empleados. ¿Bien? Así que recuerda el
concepto que hiciste aquí. Este concepto, no se olviden de los chicos. Avanza. Sigamos adelante
e implementemos la externalización Implementemos la
externalización. De la misma manera, voy a
publicar rápidamente este video, implementar
rápidamente
todo lo que
tiene que ver con la externalización Volveré en
este video, entonces
podríamos proceder chicos, ¿verdad? Bien, chicos,
en realidad voy a seguir adelante
en realidad hacer esto. Entonces, por favor, creo que agregaron los
comentarios aquí. Bien. Sí, hagamos esto. Quiero agregar un comentario en caso de que te olvides de por qué
estamos haciendo esto, recuerda recuerda que
en realidad podría generar error. Al menos queremos que
la mayoría ahorre, a pesar de que algunos realmente generan errores basados en
el hecho de que estamos teniendo en realidad algunos detalles que realmente corresponden
con Remember no es falso. Entonces, la mayoría de ellos
son valores aleatorios que en realidad podrían tirar adentro, y esto podría
significar que si verifica, tenemos algún índice aquí
que no debería
coincidir realmente cuál podría, y
esa es la razón por la cual. Como por ejemplo, el ID podría generar ID que es
el mismo, ¿verdad? Y eso realmente caería.
Entonces serían cortes aquí. Derecha. Lo mismo, vamos a comprobar esto a través de. Les mostraré que dividieron esto a la derecha,
solo validen rápidamente. Tienes el nombre,
fecha de nacimiento, tienes el género,
salario, edad, nombre de compañía
aficionado, activo, sociedad y deber, ¿de acuerdo? Impresionante. Impresionante.
Entonces esto está hecho. Bien, voy a ser para implementar eso
en realidad. Creo que lo último que necesitamos
implementar es la dirección. Creo que quiero
tomarme mi tiempo para implementar
realmente esto. Así que adelante y di privado voidatedsGenerar Entonces vamos a pasar en
una lista de departamentos y ves razón por la que en los
bits guardar departamentos aquí. Entonces también queremos pasar en una lista sugerida de empleado. Entonces salvar a los empleados.
Después, por último, una lista de subcontratados Después guarda Asut. ¿Bien? Así que solo trae
esto aquí abajo. S, Guardar subcontratados. Bien, ¿verdad? Porque cada uno de ellos
contiene direcciones. Así que tenga lista lista de direcciones, luego todas las direcciones y
luego una para completar. Ahora, esto es lo que quiero.
Así que lista de domicilio. Se. Si dirección,
tienen todas las direcciones, la nueva availist. Todo bien. Bien, así que esto hecho, luego revisamos
cada uno de ellos, luego hacemos el trabajo, ¿verdad? Entonces hay algunos
detalles comunes vamos a ser ahorros pensamos en
algunos detalles comunes. Y si miramos la dirección,
todo esto será común. Cada uno de ellos tenemos todos
estos detalles ID de entidad, calle, ciudad, estado
código postal. Tenemos todos estos. Solo vamos a pasar y luego vamos a conseguir un objeto común
para esto, un objeto común. Voy a entrar aquí y
voy a decir privado, un vacío privado, luego detalles de dirección
comunes. Otras personas listas de
domicilio, todas las direcciones. Todas las direcciones, luego dirección. Quizás te estés preguntando.
¿Por qué estoy haciendo esto? ¿Por qué tenemos todas las direcciones? Porque por cada dirección
estarás guardando en dirección. Entonces cada una de las direcciones
o de paso, me puse a guardar
en la dirección. Entonces esa es la
razón por la que. Y vas a ver como
paga tal vez. Así que elige la dirección de
las calles establecidas, las calles establecidas. Entonces las calles, esa será
la dirección completa del farsante. Creo que quiero hacer calles. Quiero hacer dirección que calles debería ser
dirección de calle Esto funciona. Después ciudad, dirección para
establecer Ciudad, luego estados. Esto funciona. Después código postal, dirección que establece código postal. El código postal es un int,
piensa en ello, vamos a crear código postal. Ahora, el código postal sería potencialmente vamos a revisar nuestra FICA Veamos
qué nos da la FICA. FICA, FICA dirección punto código postal. Como puedes ver, esto es una
cadena. Esto es una cadena. Vamos a hacer,
vamos a asegurarnos de que sean dígitos. Vamos a asegurar
sus dígitos físicamente. Simplemente podemos implementar rápidamente. No quiero implementar
demasiadas bibliotecas porque sé que biblioteca
común en realidad
tiene sus dígitos, verificar si una cadena
es en realidad dígitos. Voy a
hacer eso rápidamente por aquí. Voy a hacer un bullion privado
Bollan dígitos, sólo
voy a pasar en
un valor de cadena Valor de cadena, y solo diga
pruebe la excepción catch, luego simplemente devuelva false. Por aquí,
solo diré entero, la cadena de pase de paso. Si pasó con éxito, al parecer es una cadena. Entonces
eso es básicamente lo que voy a hacer. Por aquí, solo
diré estos dígitos, luego le pasaré en esto
al auto falso un código postal. Si esto es cierto, entonces puedo entonces hacer el
entero para pasar extremos. Pase de punto entero. Pero si no es cierto,
si no es cierto, vamos a generar entero
Ron es número RO. J faca número de punto, al parecer, queremos
tener un valor ahí El número entre diez para que sea seis valor
w. hagamos 100,000. Sí. Tenemos 500,000. Creo que esto funciona, funciona. Digamos número 100000-500 mil porque va a
ser seis valores uno,
dos, tres, cuatro, cinco, Cualquier número entre
esto, esto funciona. Un número entre esto
y seguro que funciona. Creo que esto podría
ser un error aquí. Creo que debería ser esto genera cuatro valores
genera seis? Un número entre
estos seis valores, entonces sí, creo que
esto funciona. Todo bien. Todo bien. Tenemos
este calibre que necesitamos, y luego podemos proceder. Bien. W esto hecho, entonces puedes decir todas las direcciones que dirijan. Se puede decir, bien,
así que volvamos y dejemos el video y
terminemos con esto. Todo bien para ti
en el siguiente video
61. Entidades en Bootstrap, parte 6: Bien, sé que ustedes están
eking de la misma manera que yo, vamos rápidamente
adelante y terminemos
esto. ¿Qué
vamos a hacer? Vamos a decir
para cada departamento va a hacer un
realzado para la mirada. Los departamentos departamentales,
guardar departamentos, quiero decir direccionar
cada dirección, solo decir dirección,
el ID de entidad establecido. Esta será la
diferencia. Por eso no lo agregué aquí. Eso es básicamente por
lo que no me metí aquí. Es solo decir dirección,
el ID de entidad establecido. Este será el departamento que
obtenga el número de departamento. Recuerda que el
número de departamento será el NCID que acaban de
cablear en este tipo Cable en este tipo.
Simplemente voy a pasar todas las direcciones y esta dirección específica que se
agregará a la lista. Ese es uno que estamos tomando
en estos dos pedacitos. Después cuatro, vamos a
hacer cuatro empleado. Entonces lo mismo, lo mismo. Impresionante. Entonces increíble. Me encantan los automplates.
Bien. Esto funciona. Y por último, voy a
fuente lo mismo. Entonces me vestiré bien. Sí. Sí. Esto lo tenemos hecho. Todo esto en realidad está ambientado. Si ves este es
el detalle común habría repetido muchas veces, pero solo lo abstrajo así que en realidad
podría hacer
esto y esto funciona Esto haciéndose, recuerden,
también podría ocurrir un error porque también
podría ocurrir un error, también
vamos a manejarlo uno por uno. Por los detalles
que
en realidad estableces aquí porque por qué
no es fac responsable No espero que lo
haga, o podría ser. Sólo tienes todas las direcciones. No, no voy a agregar todo todas las direcciones, punto cuatro cada una. Pero para cada uno, al parecer justo cuando necesitamos y
solo vamos en TryCatch, TryCatch, no dirección C. Entonces hay un error. Atrapa eso solo registra”. s
log dot info en la dirección C. Guardar campo. Entonces simplemente
sacan un ID de entidad, puntos de
dirección obtienen ID de
entidad, ¿verdad? Entonces creo que esto concluye todo lo
que tenemos que hacer, ¿verdad? Esto concluye todo lo que
tenemos que hacer, chicos. Así que adelante para implementar
realmente, así que luego vamos a conectarlo. Vamos a cablear todo
, así que tenemos que primero nada implementar luego
conectémoslo . Entonces, ¿cómo lo cableas? Primero de listado de empresa Listado
de empresas guardadas por la empresa. No esta S empresas sí genera empresas.
Esto es correcto. Entonces tenemos esta la
lista de departamentos, departamentos, guardar
departamentos, departamentos. Entonces generamos departamentos que toma en lista de empresas, ¿verdad, que lleva en empresas
guardadas, verdad? Eso es correcto. Entonces
tenemos lista de empleados. Impresionante. Esto
se ha hecho por nosotros. Bien, gracias por completar
la lista de subcontratados. Subcontratados, ahorrados subcontratados. Ahorro de fuentes.
Creo que esto funciona. Digamos que genera yo solo paso recuerda que estamos
pasando departamento también chicos, es departamento estás
pasando en departamentos guardados. Eso funciona. Por último,
genera dirección, genera dirección que
guarda departamentos toma en los empleados,
ellos salvaron a los empleados. Y tomar en lo
mismo que fuentes. Esto
generaría automáticamente todo lo que necesitamos. Sigamos adelante e
iniciemos la aplicación. primer lugar, en lugar de
comenzar automáticamente, rápidamente
quiero
iniciar la base de datos. A ver spect lo que
tenemos precio cuatro. Puedo ejecutar mi
archivo de compost directamente, o simplemente podrías hacer
Docker Compose up, cualquiera que sea la opción ya que
tengo esta integración,
poniéndome las cosas fáciles Déjame comprobar si empecé
y puede tomar conexiones. Esto puede aceptar conexiones ahora. Iré a mi
base de datos y solo
revisaré mi departamento. Entonces estos son los datos iniciales que agregamos, todos
los datos iniciales. Recuerda que solo tenemos
un detalle, ¿verdad? Impresionante. Lo que voy a hacer, voy a poner en marcha tu
aplicación ahora mismo y recordar nuestra propiedad
que hemos agregado aquí, esta propiedad,
dijimos que
queremos que relaje tabla enable true Estamos viniendo aquí,
poblar tabla, habilitar. Creo que debería
estar habilitado para DPable. Creo que eso suena mejor.
Mesa popular habilitada. Entonces solo agrega una D aquí. Bien. Entonces veamos esto en acción. Voy a seguir adelante y inicio
de esta aplicación. Bien, así que
lo inicié y veamos. Monitoreemos los registros y
veamos que no hay errores. Se acerca. Yo en
las clases, edificio. Bien, veamos.
Empiezo automáticamente, simplemente saltamos aquí para ver a este corredor de línea de comandos
realmente pateado. Cuidado con estos tipos. Cuidado con estas grasas
puedes ver estos registros, lo que
significa que
pasaron con éxito. Vamos a verificar eso una vez que realmente haya surgido. Bien. Entonces estás
verificando. Todo bien. Entonces, ¿podemos ver
algo como grasas? A ver. ¿Estamos
iniciando sesión en algo? Oh, yo no puedo ver nada, así que vamos a revisar la mesa. Aún no se ha registrado nada. Aún no se ha registrado nada. Bien, verifiquemos.
Esto empezó. Entonces esto no
trajo en nuestros datos. Yo no lo inicié,
vamos a depurarlo, ver por qué no lo trajo. Voy a cerrar todo. Volvamos a
poblar mesa, bajemos. Entonces estoy diciendo poblar tabla
habilitada.Esto es correcto. Vamos a confirmar. Veamos qué perfil
trajeron. Veamos qué perfil. ¿Qué
perfil trajeron? Sin conjuntos de perfiles. Esa es la
razón por la que ahora se establece el perfil. Recuerda, tenemos el
concepto de local. Podrías seguir adelante
y establecer el perfil, seguir adelante y establecer el perfil. Lo que voy a
hacer para facilitarnos las cosas para facilitarnos
las cosas. Voy a entrar
dentro de estas partes. Bueno pongámoslo a continuación. Creo que es
mejor en la parte superior. Perfiles de resorte activos. Entonces lo voy a simplemente en
primavera subrayado perfil. Entonces hay un concepto
en Intellij. Si quieres ejecutar un
particular cuando manejas un particular una
propiedad en particular, ¿verdad? Digamos para los lugareños por ejemplo aquí, podrías
simplemente entrar aquí. Paremos este festival. Podrías simplemente entrar
aquí, ir al medio ambiente. Vamos a Editar configuración,
voy a repasarlo de nuevo. Edita la configuración, entonces puedes configurar tu perfil activo
aquí, ¿verdad? Perfil activo. Ahora, yo si estableces perfil
activo aquí, es para recogerlo y
también escoger lo que sea que dije un resorte en el Sofle Entonces voy a hacer,
voy a establecer una variable de
entorno. Podría establecer una
variable de entorno directamente. Dentro de tus ventanas en un MAC o en un Linux
sí podrías exportar, porque tienes un kernel Linux, solo para exportar spring
en el perfil de Sco. En esta parte, lo
que voy a hacer
es que hay una parte en la que
podrías traer más opciones. De hecho, podrías
seguir esta manera las variables de entorno. Verás, yo lo he habilitado y
esto ya apareció. Entonces hago perfil de resorte
igual a local. Lo que pasa
es que cada vez que ejecuto esto, ya no
necesito tener
cuidado, solo
va a escoger
el perfil de primavera, automáticamente, que es
local y esto funciona. la misma manera, esto
tiene prioridad sobre lo que establezca dentro de
su aplicación Lo establece dentro de IntelliJ, tiene prioridad sobre la configuración de
su Haz lo que funcione para ti. Voy a repasarlo otra
vez. Si realmente estás en Mac o Windows Mac o Linux,
harás un perfil de subrayado de
primavera de exportación Perfil, luego loco. Esto es lo que vas a hacer esto
funcionará automáticamente. Tú eliges esto. Te sugiero que coloques dentro de tu bast RC Coloca dentro de tu punto B
RC, luego haces una fuente. Eso básicamente va a
funcionar. Estoy seguro los usuarios de
Linux y Linux y Mac están muy familiarizados. Para que
una configuración sea permanente, colocas dentro de tu BS
RC y haces restos. Yo solo voy a seguir adelante
y solo traerme a colación
tengo una instancia de Ubuntu Ubuntu, que es mi WSL, solo te
muestro como se ve Pero encajar esto.
Podrías hacer un VI luego slash Bash BashC Bien. Creo que salgo
atortamente. Así bash, C. ' s lo corta, corta. Después bash Bash. ¿Estoy deletreando esto mal? Déjame ver gatos pero
verás poco bonito. Creo que estoy deletreando esto mal. Déjame comprobarlo otra vez. Bien. Creo que me equivoqué. Sí, en
realidad he podido averiguarlo. Entonces se supone que son puntos. En realidad estaba usando un punto
slash, se suponía que era un punto. Entonces si lo haces gatos, y, entonces es este comando, ¿verdad? Por lo que siempre es recomendable
que coloques ins. Entonces ya ves cuando
exportinas se vuelve permanente. Entonces no quieres exportaciones, perfil
SpingErnasco, en
algún lugar lo agregó dentro de
este perfil de palmadas Nasco algún lugar lo agregó dentro ,
luego loco, Entonces esto es básicamente
lo que vas a hacer. Así que por favor tenlo en cuenta
para Windows y Linux. Perdón por los usuarios de Linux y Mac, pensé que debería mencionarlo. Con esto,
te veré en el siguiente video.
62. Entidades en Bootstrap, parte 7: Oigan, chicos, genial
tenerlos de vuelta. Muy bien, así que
vamos a seguir adelante
para agregar esta variable de
entorno. Mostré cómo los usuarios de Linux y Mac también
podrían agregar esto dentro
del perfil, ¿verdad? Una cosa que no
mencioné es esto, una vez que lo haces empezamos
en IntelliJ porque
IntelliJ en startup carga
todas estas cosas en Entonces intactually
iniciamos Intellij. O, simplemente vamos dentro Intellig y simplemente establecemos esta variable de
entorno Si no estás seguro de
cómo se produce, solo
llegas a
esta opción de modificación. Simplemente viendo solo habilitar la variable de entorno
y colocarla y esto
anulará o esto
tendrá prioridad más allá de lo que
tiene en su sistema Usuarios de Windows, también podrías hacer lo mismo
o simplemente ir a tu ENV Podrías hacer tu variable de sistema de
edición Podrías hacer esto
entonces
variable de entorno y agregar tus datos aquí, solo agrega tus datos
aquí y las cosas realmente
funcionarán correctamente. Yo solo quiero mostrar solo agrégalo aquí y reinicias
tu Intelligen Con esto haciéndose
a f el perfil, iniciemos de nuevo la
aplicación. Bien. Empezándolo. Bien, para que veas
que ha escogido perfil. El perfil ahora es local, ¿verdad? Un perfil ahora es local. A ver, ¿
escoge nuestros datos? ¿Escoge los datos que hemos establecido? Vamos a estar seguros. Lo
recoge o no lo hace. Bien, así que creo que nos
puede faltar algo. Creo que me puede estar
perdiendo algo aquí. Primavera en el expediente Sco. Le mostraremos carga en el
local. Comprobemos el local. Localmente así que en realidad
lo agregamos poblar tabla habilitada, poblar tabla habilitada, que
es la propiedad que agregamos, y tenemos habilitada la tabla de
poblar Demuestro que es oh,
miren el tema, chicos. No me he cambiado esto a verdad,
pero esto tiene que ser cierto. Entonces sigamos adelante
y volvamos a hacer esto. Estoy seguro que probablemente
deberíamos avanzar ahora. ¿Bien? Así que elige Tas locales inicializado. ¿Bien? Impresionante. Como pueden ver, chicos, estamos cargando esto en. Entonces esto es una cosa de una sola vez. Sé que va a llevar
tiempo. Es una cosa de una sola vez. Solo quería
mostrarte cómo
funcionarán las cosas y cómo podrías
cargarlas manualmente, ¿verdad? Se podría hacer esto
manualmente. Ahora, tal vez se esté preguntando
¿por qué estoy diciendo esto? La razón por la que estoy
diciendo esto es porque establecí esta propiedad. ¿Recuerdas esta propiedad? Mostrar SQL verdadero, y
eso es lo que estoy haciendo. Ya ves, esta es toda la
dirección y se ha podido cargar todo se
ha cargado en. Ahora que tenemos la seguridad de que
todo está cargado, antes que nada verifiquemos. Veamos nuestra empresa
Una compañía de muchos. Recuerda, antes creamos una compañía
ficticia, que es Nigeria la
agregada en Nigeria entonces Como pueden ver, estos son
los tres que se agregaron, Malawi Togo y éste, y nos dio direcciones. Se puede ver. Impresionante.
Impresionante. Con una biblioteca falsa, podemos hacer que
las cosas realmente funcionen. Esto es
genial, chicos. Esto es bastante genial. Vamos a
revisar tu departamento. ¿Correcto? Entonces espero que tengas 12 departamentos y
lo compruebes, ¿cuántos tenemos? Entonces si revisas, recuerda que podrías contar
aquí, podrías contar. Tienes 12
menos el que escribimos al principio, que es el predeterminado, 12. No hubo error,
increíble. Vamos a revisar. O empleado. Entonces para empleado, cuaresma
cuadrada,
sólo voy a correr a través. Y ¿cuántos
tenemos en total? Tenemos 500. Entonces, si haces las cuentas, ¿es eso
bastante exacto? Bien, fijamos 200
empleados, ¿verdad? 200 empleados para cuatro. Así se podía ver que
en realidad ocurrieron errores, ¿verdad? Queremos 200 empleados
por cada departamento. Entonces significa que se supone
que hemos posado alrededor de 800, así que tenemos 300 de campo. Eso es lo que significa.
Pero ya que en realidad, así que 500 es un buen número para que
podamos realmente probar el ajuste. Impresionante, y vamos a
ver nuestro subcontratado. Impresionante. ¿Cuántos
sets tenemos? Recuerden, dijimos 40, 40
veces así que deberían ser 160, ¿
verdad? Vamos a estar seguros. ¿Cuántos tenemos? 40 sets o no estoy
haciendo bien mis matemáticas. Vamos a confirmar por aquí. ¿W es la mesa de álamo? Entonces nos fijamos para tres deberes, 40 para tres deberes. Entonces, si revisas esto
por subcontratados, dijiste 40, ¿verdad Para tres deberes. Entonces
eso debería estar bien, MT elem aquí, ¿verdad Entonces tenemos 40 empleados por cada 40 empleados para
cuatro departamentos, ¿verdad? O cuatro departamentos,
eso debería ser 160 luego multiplicado por
tres empresas, ¿verdad? Eso es 160 y eso
será 160 veces 160 veces, eso es una vez
tres que es 480. Recuerden, chicos, tenemos tres
empresas, tres empresas. Cada uno cuenta con cuatro departamentos,
cuatro departamentos. Así que eso hace que sea 12, ¿verdad? Después multiplicar cada
cuatro departamentos, luego multiplicar por
40, 40 externalizar Si haces los cálculos, serán 480, lo que significa que no se produjo ningún error mientras en realidad
estás
trayendo subcontratar Esto realmente verifica
todo lo que tenemos que hacer, ¿verdad? Hemos sido capaces de
BoosterPar propiedades. Por favor chicos, recuerden
regresar así que regresen aquí
y pongan esto a caídas. Si no configuras esto en caídas, seguirás teniendo
múltiples datos que simplemente sigue cargando una y
otra vez a través del paso de la aplicación. Entonces con esto
hecho, solo lo pararé
y lo volvemos a ejecutar y ya ves que esto
ya no va a correr, ¿verdad? Bien, arranque local. Sí, ya ves que esto empezó. Por lo que nuestra propiedad está
funcionando con precisión, y esto ya se ha persistido. No va a cambiar.
Siempre lo encuentras ahí, ¿
verdad? ¿Y por qué es esto? Recuerden, chicos, les
mostré mientras en realidad estaba haciendo esto mientras estábamos
montando la composta. Nosotros componemos el Yarmo. Realmente necesitas mapear el volumen a una ruta
en tu sistema local. De esta manera se guardó
en su sistema local. Tu sistema local está
actuando como un directorio, como el servidor donde se almacenan
los datos, por lo que no tienes ningún problema. Hemos podido
arrancar nuestros datos, y ahora podemos pasar
a cosas como consultar Hemos podido hacer
mutación con poblados. Ahora que tenemos muchos
datos, podemos consultar, ¿no? Creo que ya es
hora de que sigamos adelante para implementar nuestras consultas. Los veré chicos
en el siguiente video.
63. Servicio para consultas, parte 1: Oigan, todos. Genial
tenerte de vuelta. Todo bien. Ahora que hemos
podido
implementar realmente la parte de mutación, hemos podido arrancar
nuestros datos en la base de datos, y luego hemos
podido ver realmente cómo funcionan
las cosas
desde el último video. Creo que ya es
hora de que luego sigamos
adelante para implementar
nuestras consultas básicas. Todo bien. Entonces vamos
a implementar las consultas. Entonces, para entrar directamente en ella, si
nos fijamos en esta parte,
que es la consulta, recuerden, en realidad la escribimos
hace algún tiempo para poder realmente,
uh, enumerar buscar
toda la compañía buscar todos los departamentos por nombre de
compañía Bien, ¿por qué no sigues
adelante e implementas? En este video, nos
concentraremos en crear el esqueleto para estas consultas Entonces los videos posteriores
implementarían todo. Todo bien. ¿Podemos
simplemente sumergirnos en él? Lo primero que
voy a estar tocando es implementar el fetch all
company fetch all company, yendo al controlador de la compañía Bien, así que
solo lo emparejamos. Y como siempre, chicos, me encanta el mapeo de esquemas. Bueno, en este punto, recuerda que solo podrías usar el mapeo de
consultas, pero prefiero el mapeo de esquemas, así que simplemente me apegaré a él. Tienes el typename que
va a ir DGs constante. En esta ocasión, estás escogiendo consulta el tipo de consulta,
para darme consulta. Entonces voy a ir
con el campo. El campo, voy
con dgs constante, luego buena consulta de punto Consulta, luego busca toda la compañía. Recuerdas el momento en
que haces esto, vas a tener acceso
a esta empresa de búsqueda Estamos tratando de no
cortar las cosas y simplemente meternos en la constante que nos
han proporcionado. Bien, eso es genial. Dame un poco de espacio para trabajar.
Vamos a seguir adelante. Con esto para luego hacerlo público, recuerda que devuelve toda
respuesta, toda respuesta de la empresa. Una respuesta de la empresa.
Entonces lo tenemos y es solo busca tu
compañía, esto es bueno Puedo ver que realmente está
entrando, busca a nuestra compañía. Genial. Entonces
vamos a arreglarlo. Al parecer, no estamos
tomando ningún parámetro, no
estamos esperando
ningún parámetro. Dicho esto, entonces simplemente
devolvemos el
servicio de la empresa de servicios de la empresa, entonces se debería
buscar toda la compañía, al parecer no
implementarlo solo hacen de esto un Todo bien. Como puede
ver esto ya coincidió si hago un clic de Control o
clic de comando. Navega, ves que
en realidad coincide con esto. Esto es bueno, chicos.
Pasemos a los departamentos. Vamos a
crear un esqueleto Hemos creado el esqueleto
para esto, vamos a conseguir el esqueleto para
departamentos, ¿verdad? Entonces estamos implementando buscar todos los departamentos por nombre de compañía Entonces, sigamos adelante
e implementemos eso. De la misma manera, recuerda que
prefiero usar el mapeo de esquemas. Esta vez,
probablemente deberías concentrarte en
usar el mapeo de consultas si eso es lo que quieres usar, lo
cual también es bastante genial Voy a hacer mapeo de esquemas, mapeo esquemas, entonces
en realidad tengo el nombre del tipo. Luego use la constante DGS
constante DGS,
luego tipo de consulta de puntos El tipo de consulta, que es
esencialmente solo consulta, luego traigo la f t y escojo
en la constante DGS, luego la consulta, luego elijo buscar todo el
socio por nombre de empresa,
impresionante luego traigo
la f t y escojo
en la constante DGS,
luego la consulta,
luego elijo buscar todo el
socio por nombre de empresa,
impresionante. Impresionante.
Esto es increíble. Entonces tengo al público.
En esta ocasión, necesito el nombre exacto, y eso es lo que
voy a usar. Si voy a entrar aquí, compañía, y necesito el nombre de la compañía. Gracias. Auto completo.
Que me consigas
esto. Esto se completa. Ahora sólo voy a regresar. Apenas como un repaso para
aquellos que quieren un repaso, es
lo mismo que
decir, encomiar Es lo mismo que
decir mapeo de consultas, mapeo consultas, mapeo de consultas. Podría tener
lo mismo en el mapeo de consultas. En query Mapping, entonces
solo colocas el nombre ahí y ese es el nombre que
buscarás. Ese es DGS este
paquete de aquí, ¿verdad? Así que en realidad puedes
usar nombre o valor, cualquiera que realmente
prefieras nombre o valor Para que puedas ver
esto también coincide, el que prefieras Sólo voy a
dejar esto aquí de nuevo como referencia
porque siempre es bueno tocar en
realidad
las otras opciones tienes para que
básicamente puedas ver cómo está funcionando. Entonces voy a dejar
esto aquí una completa esta opción o depción. Esto funciona. Todo bien. Entonces pasemos a la sección de empleados, que es la búsqueda de empleados en la búsqueda empleados por ID
SIF. Todo bien. Así que vamos ahí.
Bien, así que solo baja. A continuación, entonces tenga
estos detalles. Hacer búsqueda de empleado en
empleado por ID de personal. Comencemos con la búsqueda de
empleados. Voy a tener un esquema
Mappin que es mi favorito, un esquema Mappin luego tipo name,
luego tengo la consulta DGS tipo
query type tengo el fit y
tengo
la Entonces tengo los puntos, búsqueda de
empleados,
búsqueda de empleados, o ponerlo genial. Entonces público, recuerda
esto en realidad devuelve una lista de personas. Tengan eso en mente, chicos, una lista de personas, ¿verdad?
Una lista de personas. Confirmemos rápidamente, ¿verdad? Esto devuelve una lista. Recuerda esta lista. Una vez que tengas estos
cubos cuadrados, significa una lista. Entonces una lista de personas. Entonces tienes lista de plats
y déjame importar esto de Java
YoutPlus. Todo bien. Bien, eso va. Lista de persona, luego solo tiene
la palabra búsqueda de empleado. Búsqueda de empleados. Fresco. Todo bien. Y ¿cuál es
el parámetro que tomamos? Recuerda, en realidad tomamos si la persona es
subcontratada o no, solo tomamos argumentos, ¿verdad? Argumentos y argumentos,
hemos subcontratado, coincide, luego cadena Cadena
subcontratada lo siento, lingotes Se supone que es un bullianether subcontratado o no
Bullion Subcontratados. ¿Bien? Se puede ver que coincide inmediatamente
por este símbolo, ¿verdad? Fresco. Entonces tenemos Witton nulo ¿Bien? Entonces si revisas, Genial. Entonces, por último, vamos a
implementar el último. Para el tipo de consulta para empleado, entonces tenemos
lo mismo, mapeo de esquemas. Yo sólo voy a
robar a estos tipos. Solo voy a robar
esto, solo me voy a ajustar, vamos a hacer búsqueda de
empleados por identificación de personal. Tenemos esto en. ¿Qué estás regresando ahora
estás regresando persona, no una lista, solo persona. Vas a tener esto. Yo sólo voy a seguir adelante
y quitar esto. Solo baja, dame un
poco de espacio para trabajar. Voy a quitar la lista. Correcto, empleado por identificación de
personal, ¿verdad? Después paso en la identificación del personal.
Oh, muchas gracias. Y esto vino bastante bien. Gracias, autocompletar. Entonces tengo la identificación. Todo bien. Entonces vuelvo, no. Entonces, si tuvieras
que navegar ves que esto fue traído
apropiadamente. Bien, hemos sido
capaces de hacer esto, y estos son chicos bastante geniales. En el siguiente video, sigamos
adelante y comencemos a
implementarlos uno por uno. Los veo chicos en el siguiente video.
64. Servicio para consultas, parte 2: Oye, genial tenerte de vuelta. Simplemente podemos seguir adelante
y poner en práctica esto. Solo podemos implementar
los esqueletos que hemos creado justo
en el último video Entonces, vamos a sumergirnos en ello. Todo lo que vamos a hacer es solo, uh solo hacer este
servicio de la empresa punto buscar toda la compañía Una empresa. Todo bien.
Esto es todo lo que tenemos que hacer. mí me gusta codificar de esta manera
porque estás
partiendo de lo desconocido o de lo
conocido a lo desconocido, ¿verdad? Con esto, probablemente
podrías hacer clic en esta
bombilla antes de usar Intelligent o cualquier
IB para implementar realmente Entonces crearé esto en
el método de servicio de la compañía. Yo solo hago esto bien y se puede ver que
entra enseguida. Todo bien.
De hecho, hemos podido tener esta redacción. Vamos a la derecha en Implementar. Entonces esto es bastante sencillo. Entonces todo lo que tenemos que hacer es guardar repositorio de la
compañía,
el final, ¿verdad? Comity la final, luego transmitimos a través de la cadena de
flujo a través, luego el mapa del mapa Recuerda, básicamente vamos
a devolver el detalle de la empresa. ¿Cómo lo sé? ¿Recuerdas
si revisas la empresa? Todos ustedes empresa
devuelve una lista de DTO, una lista de DTO, entonces
tenemos el éxito, tenemos el mensaje Eso es exactamente lo que estoy
tratando de implementar. Entonces mapeamos, después
cómo mapeamos mapeamos
mapeando la empresa
a la empresa DTO Recordamos que tenemos
un mapeador Util. Vamos adelante para hacer esto en videos
anteriores para hacer
las cosas más fáciles. Entonces podemos entonces
mapear Empresa DTL. Eso lo hace sencillo para nosotros. Después, hazlo una
lista. Consíguenos una lista. Entonces si estás usando un Windows, puedes hacer un Control
OTs V o un comando TV, eso lograría esto
para mí enseguida. Comando V, C, y lo
pillo de inmediato. Entonces yo solo lo llamo DTOs de la compañía. Así empresa DTOs. Entonces ahora que tengo esto
disponible, solo vuelvo, ¿no? Devolución o
respuesta de la empresa, recuerde. Cuando realmente usamos el DGS, eso es un cogent, nos
da el constructor. Cada una de la entidad o cada una de las clases crea
realmente o el tipo, nos da un constructor. Así que solo podrías
aprovechar eso, y eso es exactamente lo que
estoy haciendo. Todo bien. Así que en realidad tienen un mensaje. Solo diré que todas las
empresas recuperadas,
recuperan con éxito y
éxito. El éxito es cierto. Básicamente, esto en realidad
se hace, luego regresamos a nuestras empresas,
las empresas, que
serían las DTOs de la compañía Esto se ha implementado
con éxito Adelante,
al departamento. Vamos a entrar en el departamento. Seguimos la misma tendencia. Nosotros solo decimos servicio de departamento, servicios de
socios Fetch, pero
solo decimos lo mismo aquí, buscar por nombre de compañía Obtener por el nombre de una empresa, luego paso en el nombre de la empresa Recuerda, la sombra tiene compañía podría simplemente decir nombre aquí,
o no cambia La idea es que si estás usando, podrías decidir no pasar nada aquí, lo cual es genial. Si no lo haces, entonces tiene que hacerlo estricto
llamando a esto conveniente, entonces esto seguirá coincidiendo.
Esto es a lo que me refiero. Si realmente te quitas esto, esto todavía coincide
porque
infectará desde el nombre de la variable. Pero si estás colocando esto, entonces como sea que llames a
esto no importa. Sólo lo dejaré como
está, vamos a seguir adelante. Entraré también e
implementaré esta guía. Yo lo llamaré. Yo sólo voy a
implementar directamente. Fresco. Eso lo tenemos adentro, sigamos adelante e
implementemos esto. Yo haré
lo mismo. Lo llamaremos probablemente solo quítate
esto antes que nada, me voy a quitar esto. Todo bien. Diré que el
repositorio de patrones punteó bien porque ya
lo hemos implementado, encuentra el patrón
por nombre de compañía, recuerda cuando pusieron a
disposición, nombre de la compañía, genial. Entonces streu stream a través, luego mapeamos el mapa, el mapa básicamente solo
hace la transformación Poner un mapa a t luego convertir a un mapa DTOs a departamento
DTO, Esto es genial Entonces escogemos. Nosotros elegimos. Ahora bien, ¿qué hace un pico? Una función pesica. API básicamente puede
funcionar como un mapa. En realidad puedes realizar algunos cambios realmente
mutantes, pero estás devolviendo
exactamente lo mismo, ¿verdad Estás devolviendo
exactamente lo mismo. Entonces te voy a dar una idea. Entonces lo que haría,
cambiaría esto a un mapa, ¿verdad? Cambiemos esto a un mapa. Y diríamos, recuerden, somos un poco transformados en detalle de departamento. Por lo que aquí respetamos al
departamento. Entonces para cada uno de
los departamentos, queremos parte auto alguna opción, y todo lo que básicamente queremos hacer es solo buscar la dirección Eso es todo lo que queremos hacer aquí. Entonces voy a decir el servicio de dirección
punto encontrar entidad de dirección. Encuentra dirección por ID de
entidad recuerda, departamento en realidad
tiene una dirección incrustada dentro de él y todos
ellos son realmente dirección al empleado y usted es fuente identificado
por el ID de la entidad. El ID de entidad para departamento
es el número de departamento. Recuerda eso.
Dices departamentos. Llamemos al
Departamento DTO para mayor claridad, DTO del Departamento Entonces decimos Departamento DTO
puntos obtiene número de departamento. Entonces todo lo que estoy haciendo
dentro de este campo, así que tengo la dirección, lo
llamaré dirección
DTOs al parecer Me dirigí a DTU,
luego solo estoy configurando la dirección del conjunto de
puntos DTU del Departamento Entonces solo estoy configurando la
dirección, establece la dirección. Establecer dirección. Establecer en dirección, acabo de pasar en la
dirección DTU, ¿verdad? En realidad pasando eso en esto no
debería ser quejarse. Bien, sí. Entonces esta es la lista. Al parecer, voy
a conseguir solo uno, cierto, pero en realidad permitió
que realmente buscara una lista Así que vamos a hacer que se ponga primero. Entonces primero es
lo mismo que esto, ¿verdad? Entonces, si estás usando Java 21, aparentemente esto ha
sido un poco, solo hazlo primero, ¿verdad? Entonces eso realmente entra, y lo haré para
enumerar. La lista So. Después a la lista. De
hecho, entro. Todo bien. Para enumerar. ¿Todo bien? Para enumerar. Todo bien. Después vuelvo por
Departamento de DTO. Ahora bien, podría decir que esto
ya está diciendo que aquí hay
un problema. No es un problema. Sólo digo, ¿por qué no lo
reemplazas, eliges, verdad? Reemplace usted elige.
Pick es mejor, ¿verdad? Porque no
estás cambiando. Mapa es que cambias
debería decir de un objeto a otro,
eso es totalmente diferente. Quieres transformar
probablemente una clase en una cadena o probablemente un detalle a otro TO.
El mapa es bueno para eso. Esto funciona. Esto
no tiene ningún problema. Pero estoy diciendo ya que solo
estás haciendo uso del mismo retorno virtual el mismo material ¿por qué
no solo eliges? Entonces, si tuvieras que considerar que solo haciendo
algún cambio menor, algún cambio dentro de
la misma entidad, el mismo Pojio estás regresando.
Así que sólo habla en ello. Entonces, si cambio esto para elegir, solo mira cómo hark a esta declaración de
retorno. Todo bien. Así se puede ver. Porque estoy cambiando al final
de la devolución así que esto devolverá el detalle al detalle del patrón, así
podría simplemente devolver esto. Yo solo quiero compartirlo de
verdad. Voy a usar el
mismo comando control V, y esto me da esto realmente crea mi
variable para mí. Yo sólo lo llamaré
departamentos DTOs. Todo bien. Entonces con esto realmente lo
consiguió, entonces puedo seguir adelante. Necesito verificar si el detalle del departamento está vacío porque es posible está vacío, y es posible se encuentra
porque esa es una posibilidad. Entonces diré si
DTO del departamento está vacío, si está vacío, entonces regresaré Recuerde que su
departamento de regreso regresa supuestamente para devolver la respuesta
del departamento. ¿Bien? Creo que es fuera Departamentos que deberían ser
departamentos respuesta, ¿verdad? Sí. Entonces respuesta departamental. Respuesta del Departamento.
Respuesta de los socios. Recuerda, nosotros siempre los socios siempre
conseguimos el constructor. Entonces el socio responde,
tienes el constructor, el build, esto realmente funciona. Entonces diga mensaje pasando el mensaje y el
mensaje que leyó, ningún departamento encontró código qué nombre de compañía,
el nombre de la compañía. Sí, nombre de la empresa. Todo bien. Esto funciona bien. Entonces el éxito, esto es falso. Todo bien. Entonces si se encuentra, si no está vacío, regresa el departamento
regresará los departamentos, lo mismo. Quiero decir que el
éxito sea verdad. Entonces el mensaje mensaje será solo puedo
decir departamentos. No quiero que este
tanque de difamación se complete, pero no es lo que quiero.
Diré departamentos. Departamentos, en el nombre. Departamento bajo's esto funciona. Sí, sólo para posponirlo. Digamos nombre. Bien. Entonces estoy usando bien el nombre de la compañía. Nombre de la empresa recuperado, ¿verdad? Recuperar con éxito. Y esto básicamente funciona. Entonces pasaré entonces
el departamento a departamentos y no a detalle de departamento.
Básicamente, esto funciona. Estos videos lo consiguen
muy largo, chicos. Te veré en el siguiente video.
65. Servicio para consultas, parte 2: Oye, genial tenerte de vuelta. Simplemente podemos seguir adelante
y poner en práctica esto. Solo podemos implementar
los esqueletos que hemos creado justo
en el último video Entonces, vamos a sumergirnos en ello. Todo lo que vamos a hacer es solo, uh solo hacer este
servicio de la empresa punto buscar toda la compañía Una empresa. Todo bien.
Esto es todo lo que tenemos que hacer. mí me gusta codificar de esta manera
porque estás
partiendo de lo desconocido o de lo
conocido a lo desconocido, ¿verdad? Con esto, probablemente
podrías hacer clic en esta
bombilla antes de usar Intelligent o cualquier
IB para implementar realmente Entonces crearé esto en
el método de servicio de la compañía. Yo solo hago esto bien y se puede ver que
entra enseguida. Todo bien.
De hecho, hemos podido tener esta redacción. Vamos a la derecha en Implementar. Entonces esto es bastante sencillo. Entonces todo lo que tenemos que hacer es guardar repositorio de la
compañía,
el final, ¿verdad? Comity la final, luego transmitimos a través de la cadena de
flujo a través, luego el mapa del mapa Recuerda, básicamente vamos
a devolver el detalle de la empresa. ¿Cómo lo sé? ¿Recuerdas
si revisas la empresa? Todos ustedes empresa
devuelve una lista de DTO, una lista de DTO, entonces
tenemos el éxito, tenemos el mensaje Eso es exactamente lo que estoy
tratando de implementar. Entonces mapeamos, después
cómo mapeamos mapeamos
mapeando la empresa
a la empresa DTO Recordamos que tenemos
un mapeador Util. Vamos adelante para hacer esto en videos
anteriores para hacer
las cosas más fáciles. Entonces podemos entonces
mapear Empresa DTL. Eso lo hace sencillo para nosotros. Después, hazlo una
lista. Consíguenos una lista. Entonces si estás usando un Windows, puedes hacer un Control
OTs V o un comando TV, eso lograría esto
para mí enseguida. Comando V, C, y lo
pillo de inmediato. Entonces yo solo lo llamo DTOs de la compañía. Así empresa DTOs. Entonces ahora que tengo esto
disponible, solo vuelvo, ¿no? Devolución o
respuesta de la empresa, recuerde. Cuando realmente usamos el DGS, eso es un cogent, nos
da el constructor. Cada una de la entidad o cada una de las clases crea
realmente o el tipo, nos da un constructor. Así que solo podrías
aprovechar eso, y eso es exactamente lo que
estoy haciendo. Todo bien. Así que en realidad tienen un mensaje. Solo diré que todas las
empresas recuperadas,
recuperan con éxito y
éxito. El éxito es cierto. Básicamente, esto en realidad
se hace, luego regresamos a nuestras empresas,
las empresas, que
serían las DTOs de la compañía Esto se ha implementado
con éxito Adelante,
al departamento. Vamos a entrar en el departamento. Seguimos la misma tendencia. Nosotros solo decimos servicio de departamento, servicios de
socios Fetch, pero
solo decimos lo mismo aquí, buscar por nombre de compañía Obtener por el nombre de una empresa, luego paso en el nombre de la empresa Recuerda, la sombra tiene compañía podría simplemente decir nombre aquí,
o no cambia La idea es que si estás usando, podrías decidir no pasar nada aquí, lo cual es genial. Si no lo haces, entonces tiene que hacerlo estricto
llamando a esto conveniente, entonces esto seguirá coincidiendo.
Esto es a lo que me refiero. Si realmente te quitas esto, esto todavía coincide
porque
infectará desde el nombre de la variable. Pero si estás colocando esto, entonces como sea que llames a
esto no importa. Sólo lo dejaré como
está, vamos a seguir adelante. Entraré también e
implementaré esta guía. Yo lo llamaré. Yo sólo voy a
implementar directamente. Fresco. Eso lo tenemos adentro, sigamos adelante e
implementemos esto. Yo haré
lo mismo. Lo llamaremos probablemente solo quítate
esto antes que nada, me voy a quitar esto. Todo bien. Diré que el
repositorio de patrones punteó bien porque ya
lo hemos implementado, encuentra el patrón
por nombre de compañía, recuerda cuando pusieron a
disposición, nombre de la compañía, genial. Entonces streu stream a través, luego mapeamos el mapa, el mapa básicamente solo
hace la transformación Poner un mapa a t luego convertir a un mapa DTOs a departamento
DTO, Esto es genial Entonces escogemos. Nosotros elegimos. Ahora bien, ¿qué hace un pico? Una función pesica. API básicamente puede
funcionar como un mapa. En realidad puedes realizar algunos cambios realmente
mutantes, pero estás devolviendo
exactamente lo mismo, ¿verdad Estás devolviendo
exactamente lo mismo. Entonces te voy a dar una idea. Entonces lo que haría,
cambiaría esto a un mapa, ¿verdad? Cambiemos esto a un mapa. Y diríamos, recuerden, somos un poco transformados en detalle de departamento. Por lo que aquí respetamos al
departamento. Entonces para cada uno de
los departamentos, queremos parte auto alguna opción, y todo lo que básicamente queremos hacer es solo buscar la dirección Eso es todo lo que queremos hacer aquí. Entonces voy a decir el servicio de dirección
punto encontrar entidad de dirección. Encuentra dirección por ID de
entidad recuerda, departamento en realidad
tiene una dirección incrustada dentro de él y todos
ellos son realmente dirección al empleado y usted es fuente identificado
por el ID de la entidad. El ID de entidad para departamento
es el número de departamento. Recuerda eso.
Dices departamentos. Llamemos al
Departamento DTO para mayor claridad, DTO del Departamento Entonces decimos Departamento DTO
puntos obtiene número de departamento. Entonces todo lo que estoy haciendo
dentro de este campo, así que tengo la dirección, lo
llamaré dirección
DTOs al parecer Me dirigí a DTU,
luego solo estoy configurando la dirección del conjunto de
puntos DTU del Departamento Entonces solo estoy configurando la
dirección, establece la dirección. Establecer dirección. Establecer en dirección, acabo de pasar en la
dirección DTU, ¿verdad? En realidad pasando eso en esto no
debería ser quejarse. Bien, sí. Entonces esta es la lista. Al parecer, voy
a conseguir solo uno, cierto, pero en realidad permitió
que realmente buscara una lista Así que vamos a hacer que se ponga primero. Entonces primero es
lo mismo que esto, ¿verdad? Entonces, si estás usando Java 21, aparentemente esto ha
sido un poco, solo hazlo primero, ¿verdad? Entonces eso realmente entra, y lo haré para
enumerar. La lista So. Después a la lista. De
hecho, entro. Todo bien. Para enumerar. ¿Todo bien? Para enumerar. Todo bien. Después vuelvo por
Departamento de DTO. Ahora bien, podría decir que esto
ya está diciendo que aquí hay
un problema. No es un problema. Sólo digo, ¿por qué no lo
reemplazas, eliges, verdad? Reemplace usted elige.
Pick es mejor, ¿verdad? Porque no
estás cambiando. Mapa es que cambias
debería decir de un objeto a otro,
eso es totalmente diferente. Quieres transformar
probablemente una clase en una cadena o probablemente un detalle a otro TO.
El mapa es bueno para eso. Esto funciona. Esto
no tiene ningún problema. Pero estoy diciendo ya que solo
estás haciendo uso del mismo retorno virtual el mismo material ¿por qué
no solo eliges? Entonces, si tuvieras que considerar que solo haciendo
algún cambio menor, algún cambio dentro de
la misma entidad, el mismo Pojio estás regresando.
Así que sólo habla en ello. Entonces, si cambio esto para elegir, solo mira cómo hark a esta declaración de
retorno. Todo bien. Así se puede ver. Porque estoy cambiando al final
de la devolución así que esto devolverá el detalle al detalle del patrón, así
podría simplemente devolver esto. Yo solo quiero compartirlo de
verdad. Voy a usar el
mismo comando control V, y esto me da esto realmente crea mi
variable para mí. Yo sólo lo llamaré
departamentos DTOs. Todo bien. Entonces con esto realmente lo
consiguió, entonces puedo seguir adelante. Necesito verificar si el detalle del departamento está vacío porque es posible está vacío, y es posible se encuentra
porque esa es una posibilidad. Entonces diré si
DTO del departamento está vacío, si está vacío, entonces regresaré Recuerde que su
departamento de regreso regresa supuestamente para devolver la respuesta
del departamento. ¿Bien? Creo que es fuera Departamentos que deberían ser
departamentos respuesta, ¿verdad? Sí. Entonces respuesta departamental. Respuesta del Departamento.
Respuesta de los socios. Recuerda, nosotros siempre los socios siempre
conseguimos el constructor. Entonces el socio responde,
tienes el constructor, el build, esto realmente funciona. Entonces diga mensaje pasando el mensaje y el
mensaje que leyó, ningún departamento encontró código qué nombre de compañía,
el nombre de la compañía. Sí, nombre de la empresa. Todo bien. Esto funciona bien. Entonces el éxito, esto es falso. Todo bien. Entonces si se encuentra, si no está vacío, regresa el departamento
regresará los departamentos, lo mismo. Quiero decir que el
éxito sea verdad. Entonces el mensaje mensaje será solo puedo
decir departamentos. No quiero que este
tanque de difamación se complete, pero no es lo que quiero.
Diré departamentos. Departamentos, en el nombre. Departamento bajo's esto funciona. Sí, sólo para posponirlo. Digamos nombre. Bien. Entonces estoy usando bien el nombre de la compañía. Nombre de la empresa recuperado, ¿verdad? Recuperar con éxito. Y esto básicamente funciona. Entonces pasaré entonces
el departamento a departamentos y no a detalle de departamento.
Básicamente, esto funciona. Estos videos lo consiguen
muy largo, chicos. Te veré en el siguiente video.
66. Servicio para consultas, parte 3: Oye, ahí, gracias por
volver conmigo. Todo bien. Entonces hemos podido
implementar los departamentos, y esa es la consulta para
los departamentos, ¿verdad? Entonces sigamos adelante e implementemos eso para
el empleado, ¿verdad? Para estos dos que
creamos antes. De hecho, sigamos adelante e
implementemos esto. Bien. Entonces, básicamente,
todo lo que tenemos que hacer es crear esto realmente. Entonces sigamos adelante y
llamemos a esta compañía. Tenemos este empleado
empleado externalizar el servicio, así que solo tráelo Servicio de Outsourcing de Empleados. Entonces llámenlo servicio, ¿verdad? Entonces puntean
búsqueda de empleados, ¿verdad? Empleado. Tal. Sólo estoy pasando
el valor ahí. Entonces con esto hecho, entonces podemos crear
esto directamente. Sí, esto ha
sido cableado para nosotros, ¿
verdad? Lo cual es bastante genial. Eso es bastante genial.
Entonces podemos entrar y luego implementar. Los bits van a ser un
poco largos, pero creo que podemos
lograrlo juntos, ¿verdad? En primer lugar, quiero
la lista de personas. Diré lista persona, esta razón fluye conmigo chicos. Lo mismo es no decir
nuevo realista, genial. Ahora, voy a decir si se subcontrata, si la
búsqueda de empleados es subcontratada, si dices que realmente
quieres externalizar agente, entonces voy a decir, voy a fuente
repositorio, El final, luego
transmitir el arroyo, creo que me gusta
colocar en la nueva línea. El arroyo entonces ese mapa de la misma manera y
mapearlo, luego mapeó YouTube Miembro tenemos un Mapper YouTube, luego mapeamos a nuestro
DTO fuente Voy a obtener el TO Recuerden, estamos
buscando la fuente. Entonces lo mismo,
vamos a elegir aquí también. Recuerda que podríamos usar un mapa, pero al mismo tiempo porque solo
estamos cambiando los mismos elementos que
en realidad nos darían un DTO externalizado Es recomendable que usemos una P y eso es exactamente
lo que vamos a hacer. Voy a llamar a esto subcontratar
el TO. Voy a obtener el TO. Después colocaré en
el servicio de dirección. La idea es simplemente poner
el servicio de dirección. Cinco domicilio por ID de entidad. Vas a
colocar al subcontratar. Obtendrán nuestra identificación de origen, y eso es genial, chicos. Todo bien. Entonces ahora tenemos esto voy a llamar a
esta dirección DTO Dirección DTOs. Entonces
llamo a OscedTo Después voy a establecer la dirección, establecer la dirección pasando
la dirección que utilice. Eso funciona bastante bien.
Dirán lista a lista. ¿Tenemos eso? Impresionante. Entonces
lo que tenemos que hacer entonces, entonces tenemos que agregarlo
a esta lista de personas. De hecho voy a
conseguir esto en una variable obtener esto
en una variable. Voy a llamar a esto OutsourctList. Bien. Después agrégalo
para decir lista de personas punto ADO. Ahora, recuerden, chicos, porque esto realmente implementa a la
persona, ¿verdad? Por eso
pude hacer esto. Por eso yo porque al parecer un personal subcontratante
también es una persona, También es una persona, así que
por eso pude hacer esto. De la misma manera un empleado también
es una persona. Entonces voy a decir otra cosa. ¿Correcto? De lo contrario pasando por
esta misma lógica, veo repositorio de empleados, el encontrar la cepa,
luego mapa, mapa Es Kyoto completo, entonces esto básicamente funciona y
veo servicio de dirección, servicio dirección, luego
punto encontrar densidad. Al parecer esto se ha hecho. Bastante genial, ¿verdad? Tenemos esta llamada
dirección DTOs. Después el empleado
Dt fijó la dirección. Entonces esto realmente
llega a la lista ListT. Fresco. Entonces de la misma
manera recibo esto en una variable Todo bien. Ves este DTOs de empleado
de calidad Neva. Entonces puedo enviarlo también
puedo agregarlo a la lista actual, solo agrega, y esto
realmente funciona bien. Entonces puedo decir regreso. Damos vuelta a la lista de personas, y esa compensación para nosotros. Básicamente, eso es
todo. Al parecer, sabemos que esto no es rendimiento. Estoy seguro que ya te habrías
dado cuenta porque
podríamos tener más de cientos de discos estoy tonificando
todo aquí Solo quería
mostrarte cómo podríamos en realidad solo para ver una
sensación de cómo se ve,
antes de dejar entrar videos posteriores, hablar de paginación, ¿de acuerdo? Mongo cosas por venir, chicos. Bien, así que esto servirá, así que
implementemos rápidamente el último bit,
que es la búsqueda de empleados por ID de personal, búsqueda de
empleados por ID de personal Yo hasta el controlador o
personal del controlador, lo que hará que las cosas sean
bastante fáciles puntos de servicio. Entonces al parecer aún
no tenemos eso. Decir búsqueda de empleados por ID de personal, entonces estoy pasando el ID, podemos crear this.th se
puede crear Tenemos esto adentro, entonces
podemos seguir adelante para luego encontrar por la identificación del empleado. Dicen,
en realidad estaban llamando
al repositorio de empleados punto
encontrar al empleado por ID, ellos pasando la identificación, ¿verdad? Al parecer,
me das una opcional. Recuerden que implementamos a
estos tipos. Entonces llamaré a este empleado
opcional. Empleado opcional,
¿verdad? Bien genial. Recuerda que escribimos en una persona. Entonces bien podría ser
un patrón presente. Así que antes que nada voy a crear un agente subcontratado aquí Esa es la variable, y ya ves por qué en un segundo.
Voy a hacer que sea nulo. Entonces diré si esto
está presente, ¿verdad? Yo esta presente o
si esta esta vacia. Así que de cualquier manera
yo esto está vacío, así que dependiendo de cómo se
quiera escribir la lógica Si el
empleado opcional está vacío, entonces trato de encontrar
al subcontratar Trato de ver si en realidad
estoy tratando de
comparar solo si algo el
empleado no está disponible, veamos que la identificación realmente coincide con empleado
subcontratado externalizado Eso es básicamente lo
que estamos haciendo aquí. Voy a llamar al
repositorio de subcontratar para encontrar. Entonces en realidad voy a
pasar la identificación aquí. Esto también obtiene una opcional
que solo podría decir otra cosa verdadera. Si la persona no está
realmente disponible, ahora estamos diciendo que un empleado
no está disponible y
si por alguna visión, el subcontratar
tampoco está disponible, aparentemente ninguno está disponible, así que queremos intentarlo y
quiero lanzar una excepción Diré, creo que esto está bien, empleado con identificación no filool Recuerda, vamos
a hacer
manejo de excepciones nido de letras en los otros videos
y de
hecho vamos a cambiar todas
estas excepciones. Eso en realidad es bastante genial. Ahora he podido hacer esto.
Voy a recibir esto dentro. Voy a recibir esto dentro este camino, lo recibí, entonces diré si el
empleado opcional está presente, al parecer, la
persona está presente, yo persona está presente, entonces puedo decir mapa en mapa de puntos. Verdadero empleado DTO porque necesitamos el detalle del empleado
al final del día Entonces paso en el empleado
opcional consigue que nos da eso. Entonces en realidad recibir
eso está en una variable, así me sale el detalle del empleado. Entonces en realidad
quiero la dirección. Recuerda, la
dirección debe seguir. Entonces el empleado DTO sí
establece la dirección, establece la dirección. Entonces cuando paso en la
dirección solo digo el servicio de direcciones,
encuentra por NTT ID Creo que esto funciona. Esto es simplemente, bastante
sencillo, ¿verdad? Bien, entonces solo devuelvo el
empleado DTO. Empleado DTO. Entonces también escoge la condición LS
s. por lo que no está presente. Al parecer, estamos diciendo que
el subcontratar está presente. Vamos a hacer lo
mismo, ¿verdad? Mapa en YouTube
mapa de puntos para subcontratar. Mapa a OutsouroSourc DTO. Esto básicamente
será subcontratado. Esto debería ser subcontratado. Mapa autocompletado gracias,
pero esto no es lo que necesito. El mapa así externalizado. Bien. Bien. Todo
bien. Esto funciona. En realidad se ve
esto en una variable, que es el subcontratar Simplemente realizaré
la misma acción aquí y estableceré la dirección.
Bien, bastante genial. Esto se ha hecho desde
aquí automáticamente, ¿verdad? Entonces esto no es ID que quiero aquí. Quiero que los subcontratados obtengan la
identificación subcontratada. Sí, así es como
debería verse. Entonces solo devuelvo
el subsourcitu. ¿Por qué puedo devolver esto? Porque si lo miras, esta también es una persona, empleado DTO es una persona,
y ellos como persona Que pueda recibir esto como objeto persona o la
interfaz, por así decirlo. Con esto entonces, hemos
podido implementar realmente esto. Los veo chicos en el siguiente video.
67. Servicio para consultas, parte 4: Oigan, chicos, gracias
por volver, ¿verdad? Muy bien, así que vamos a
repasar por todo lo
que hemos hecho hasta ahora Entonces implementamos al empleado
de Fetch, la compañía Fetcho, Eso lo hicimos
lo primero que hicimos en realidad. Todo lo que acabamos de
hacer fue obtener todas las empresas y simplemente mapearla a
los detalles respectivos y pudimos
devolverla directamente. Entonces, para los departamentos,
hicimos lo mismo. Buscamos todo
departamento por compañía. Al parecer, cada departamento, algún departamento pertenece
a una empresa específica. Y eso es lo que
hicimos. En realidad solo buscamos en el departamento
Eposity por parte de la compañía Y en realidad hicimos uso de JPA. Recuerda, en realidad ya
teníamos esto en su lugar usando un JPapst que básicamente funciona y podemos conseguir que mapeamos
todo al DTO del departamento de
DTU Recuerda, cada departamento
en realidad tiene una dirección, así que solo estamos
buscando la dirección. Teníamos un concepto de entidad. Recuerde que tenía el concepto
de ID de entidad y dirección donde
en realidad podría ser el ID del departamento, el ID del empleado, son tan estilo. Así que somos
capaces de conseguir eso. Entonces estamos regresando todo. Departamento fue encontrado,
en realidad devuelve este mensaje, y si se encuentra, le
devolvemos este mensaje. Para el empleado,
seguimos adelante para
implementar la búsqueda de empleados y el
empleado establecido por ID de personal. Pero la
búsqueda de empleados decían, ¿quieres a todo el empleado o quieres todo el subcontratar
por este matón de la ley Si externalizar es cierto, obtenemos en realidad nuestra
fuente es falsa, volvemos al empleado.
¿Cómo podemos lograrlo? Porque ambos extienden o implementan la persona
de interfaz. Eso es lo que realmente
hicimos, y en realidad a esto a la persona.
Eso es lo que hay. Si es subcontratado,
recuerde que está corriendo por el repositorio de
subfuentes,
mapeando todo
al DTO subcontratado , luego configurando la
dirección por aquí, luego devolviendo la lista y agregándola a
este objeto persona,
esta lista de personas que realmente creamos Lo mismo con esto
para el empleado si la persona si lo que eres reina es para el
empleado, haces lo mismo. Usted busca a través del procedimiento del
empleado, mapeamos al DTO respectivo, establecemos la dirección según sea necesario, devolvemos la lista y la
agregamos a la
lista de personas y regresamos Básicamente, eso es lo que
logramos entonces por
esto solo diciendo, búsqueda de
empleados por ID de personal. No sabemos si el
empleado busca subcontratar o
al propio empleado, así mismo o ella misma Lo que queremos hacer es solo una
persona que realmente quiera
hacer verificar si la identificación existe
con el empleado, el repositorio de empleados, y
esa carta es opcional. Decir el opcional,
es el mismo significado, no
encontramos nada, luego verificamos el repositorio de
externalización Si no encontramos
nada el
reposito subcontratar mojó una excepción, al parecer esta persona
no existe,
sin embargo, si realmente encontramos un empleado,
regresamos, de lo contrario
devolvemos el Recuerda, solo estamos aquí
solo agregando la dirección. Esto abarca básicamente
todo lo que hemos hecho hasta ahora. Gracias chicos, y los
veré en el siguiente video.
68. Servicio de prueba para consultas e introducción de nombres de tipo: Oigan, chicos, gracias
por volver conmigo. Es genial
tenerte de vuelta. Todo bien. Así que sigamos adelante para
probar las cosas que
realmente has hecho, ¿verdad? Entonces, déjame
volver al IDE, ¿
verdad? Este es mi IDE. Si lo miras, somos capaces de
implementar la empresa. Por cierto, he comprobado
este int github. De hecho lo tenemos. De hecho, lo
registré como un problema. Entonces tenemos un servicio para Quevy
y ese es básicamente el,
uh, el nombre de identificación o el ID del problema Después para departamento
y empleados. Probemos todo lo
que hemos hecho ahora. Vamos a probarlo para ver si
todo funciona como planeamos. Bien, así que como ustedes
saben, estoy usando DCA. Sólo estoy tratando de
iniciar el proyecto inmediato. Iniciar el proyecto. Bien, así que eso básicamente pondrá en
marcha que conecte
nuestro motor Docker, y las cosas son
en realidad bootstraps Nuestros datos aún permanecerán. Recuerden, chicos, pongan esto a caídas para que
no vuelva a correr. Recuerda lo que hicimos
al arrancar
los datos para nuestras entidades Por favor, use datos para ECA, apague esto de lo contrario solo tiene duplicados o varios datos que podrían estar en conflicto Bien, entonces ahora que esto ha terminado, he confirmado dentro de Docker
que Docker está arriba, Esto en realidad lo tenemos funcionando. Entonces, vamos a probar. Por lo
que también me he adelantado. Dije que en realidad me
mencionan esto otra vez. De hecho he seguido adelante
así que estoy usando Alta, como hemos estado usando para probar, he ido por delante de
crear la misma réplica, lo mismo que
tenemos dentro de Postman, y de hecho he mostrado
en videos anteriores cómo usar Postman, Que si en realidad
tienes varias pruebas
o varias mutaciones
dentro de un solo archivo, si haces clic en uno, los
otros se vuelven de calificación, como puedes ver, los
demás se vuelven de calificación , podrías probar
a cualquiera Ese es básicamente el costo. Ya terminé voy a compartir
ambos o vamos a
proceder en realidad procedamos usando un ti. Sólo voy a subir una llanta. Bien, genial. Ahora queremos
ir a buscar nuestras empresas, ¿no? Ya eres consciente exactamente
como se ve. Recuerde, estamos devolviendo
todas las respuestas de la compañía que tienen el mensaje de éxito. Solo podrías comparar los detalles
de la compañía. Los datos de la empresa
contienen todo el campo, que es nombre UID, número de
vivienda, jefe de su
país y tipo de negocio Estoy
comentando esto deliberadamente ya que eres consciente de
que
no veríamos a nadie que
comentes ni
a nadie que no quieras ver realmente, realidad
puedes
sacarlo de Acuarios Ese es el poder del graph quo para poder obtener solo
lo que necesitas. Entonces voy a seguir adelante
y recoger y buscar todas las empresas y ver
qué nos devuelve esto Bien chicos, yo sólo voy a dirigir esto. Veamos qué surge. Bien, genial. Estamos
teniendo un error, que dice, creo es hablar mal al buscar al socio por
el nombre de la empresa Entonces esto es escoger
el equivocado, así que voy a seguir adelante e
intentar mandar esto de nuevo. Bien. Déjame ver dónde está
el error déjame resolverlo. Pasando por ello, bien. Todo bien. Veo que
esto es quejarse Yo digo que no tenemos ninguna consulta llamada buscar departamentos
por nombre de empresa Vamos a revisar. Creo que
mientras estaba creando el cliente he usado un nombre diferente
al crear este. Esto es buscar todos los
departamentos por nombre de compañía. Esto parece ser correcto. Veamos de nuevo cuál es el
error. Dije departamento de buscar.
Veo el tema. Estaba usando buscar
todo el departamento. En tanto, lo que quería
era buscar departamentos. Yo sólo voy a seguir adelante y
ajustar en base a lo que tenemos que decir buscar
todos los departamentos Entonces GafKio hace un escaneo
de todas tus consultas, y es por eso que a pesar de que
estás probando la primera, escanea para ver
que todo lo que realmente estás haciendo
es realmente correcto Si no es cor si uno está
mal, se va a quejar. Entonces eso es básicamente
lo que pasó. Así que voy a guardar esto y vamos a probar esto de
nuevo. Todo bien. Entonces, como pueden ver, esto
funciona con precisión. Por favor, si obtienes ese error, estás probando una cosa y
otra cosa es el fracaso. Ahí es donde solo
revisamos la ortografía. Compruebo la ortografía de
exactamente de lo que se
queja Si dices que está en
desafiante no se encuentra, así que hay que
revisar la ortografía Hemos sido capaces de hacer esto. Ahora vamos a buscar a
todas las empresas. Tenemos compañía uno,
que es Bova Adventures. El segundo es Sanford. Está creado para maski. Entonces en realidad tenemos el
alcance Ether, entonces tenemos esto. Voy a buscar todos los
departamentos usando nombres de empresas. Sólo hablemos una
compañía. Así que sólo estoy repito este nombre de la compañía. ¿Correcto? Recuerdo que les
mostré chicos en videos
anteriores concepto
de usar variables. Entonces estas variables voy
a pasar aquí, ¿no? También mencioné
que podrías tener múltiples consultas y
definir todas las variables. Solo
buscará la variable que coincida con la
que estás usando. Ya que estoy usando nombre
coincide con este. Para mi identificación de personal empleado, solo busco identificación,
que coincida con esta. Por favor, tenga en cuenta eso. Estoy haciendo esto solo
por concisión. De hecho podrías juntar
todas las variables. Entonces no tienes que crear uno, eliminar, luego crear otro. Podrías
armar todo y seguir trabajando. Yo sólo quiero mostrarlo. Con esto,
asegurémonos de que encontremos todos los departamentos
con este nombre. Este Sanford, LLC
será lo que hay que estar pasando
aquí, vamos a preguntar Bastante genial, bastante genial. Entonces tenemos un departamento
que es RRHH. Esto es donde
lo puedes encontrar. Entonces tenemos el servicio de
atención al cliente. Entonces tenemos un
departamento de tecnología y vamos a las ventas. Entonces esto está funcionando
bastante bien, chicos. Esto es tan increíble.
Esto es increíble. Bien. Entonces sí,
así que esto está hecho. Ahora, también se podía ver
prácticamente yo en realidad
comentaba esto, cierto, porque este
es un verdadero poder de gráfico aquí donde poder comentar
cosas que no necesitas. Si vuelves a agregar esto, agreguemos esto diciendo
Quiero que me
den la ciudad como parte de tu dirección. Recuerda
que falta aquí. Volvamos a consultar esto, como puedes ver, la ciudad aparece
automáticamente. Este es el poder
de los chicos de Graph Kyo. Es el poder Graph Kyo. Para el código postal también, podría decir, Oye, bien, no me
muestres la calle. Muéstrame el código postal, ¿verdad? Entonces solo traes lo que necesitas, y sigamos adelante y hagamos esto Como puedes ver,
aparece el código postal , y no
tenemos la entidad. Entidad la calle la
calle también ya. Adelante para ir a buscar
todo o podría ir a buscar sólo una
cosa específica que necesites En realidad solo lo mencioné. Para el empleado, verías que aquí hay
algo extraño. ¿Qué es extraño? Ahora tenemos
un concepto llamado typename ¿Qué es typename? No sé qué es typename. Ahora bien, el concepto de
typename básicamente entra cuando regresas
mientras estás devolviendo datos que podrían
tener diferentes estructuras, por favor tenlo en cuenta, chicos, datos que podrían tener
diferentes estructuras, y es por eso que
me ves usando un concepto aquí Aquí donde pasas
los puntos puntos puntos. Esto se define dentro de la
gráfica Qio estándar. Cuando encuentres los
puntos punto punto, diciendo, si el resultado
voy a repetir esto muy gentilmente chicos para que
podamos recogerlo. Si el resultado que estoy
obteniendo es empleado, dame estos datos para el empleado empleado DTO,
dame estos detalles Si el resultado que está regresando es para
el subcontratar TO, dame sólo este diez ¿Correcto? Recuerden, creo que en realidad viene
fuera del deber. Decido encomiar esto. Entonces voy a repasarlo otra vez. El tipename significa
cuando tienes un objeto que podría ser
de varias formas Escribes el typename y
defines todas las formas que
puedan entrar, ¿verdad Entonces significa que esta es una forma,
esta es otra forma. Y ahora digo que si me estás
dando DTO empleado, dame todos estos detalles O simplemente podrías
encomiar esto para decir, dame solo departamento de
identificación de empleado y esto Por el contrario, si lo es, te lo
voy a obtener,
dame estos detalles. Creo que entienden chicos. Typename, el concepto
de typename entra cuando
en realidad estás
haciendo esto Sé que en realidad haces esto. Me aseguraré de nombrar realmente
este nombre de tipo
de encabezado para que
sepa exactamente cómo entra esto
realmente. Bien chicos,
ya me está haciendo tanto tiempo. Solo vuelvo a
escupir y ver cómo funciona. Ver en el siguiente video.
69. Servicio de pruebas para Query 2 e introducción de fragmentos: Oigan, chicos, es bueno
tenerlos de vuelta. Así que pude
explicar realmente el concepto de typename En el último video, solo
voy a
hacer rápidamente un repaso porque
creo que cuando pones algo varias veces, se pone palo El concepto de typename
es étnico una entidad de datos que tiene
muchas formas, Obtienes concepto de typename
y especificas la forma. Cierto, que está regresando. Esta es una forma que regresa y esta y aquella
forma regresando. Entonces, si realmente tienes un
concepto de probablemente genéricos, un Gtongenéricos genéricos, o los me gusta, o
un
comodín Se puede tener el
concepto de nombre tipo en realidad
sería toneladas, ¿verdad? Entonces se podría decir,
para esta firma, dame estos detalles. Para éste, si no, si es por esta firma,
dame estos detalles. Ahora,
les voy a enseñar algo genial. Cuando entramos aquí y
revisamos al empleado, y verificamos dentro de
la persona, ¿verdad? Comprobas dentro de la persona. ¿Ves que tiene un concepto
llamado propiedad typename? Esto es porque tenemos varios detalles o varios
chicos implementándolo. Es por ello que tiene un
concepto de tipening. Comprobemos al
primer implementador, cual es el
empleado DTO, Dices que este
empleado DTO va a entrar. Estoy esperando que puedas
pasar un typename y
darme distintas formas Estoy seguro de que esto es
bastante claro, chicos. Procedamos a probar esto. Así que cuando volvamos a alterar
bien esperando ID personal ID. En realidad esperando una identificación del personal. Solo voy a entrar en la base de datos, solo escojo una identificación del personal, y luego procederemos. Voy a entrar empleado,
escojamos la identificación del empleado. ID de empleado. ID de empleado, solo
voy a elegir esta identificación de
empleado, que está aquí. Sólo lo traeré aquí
y solo lo reemplazaré. Bien, así que vamos a resolver esto. Bien, así que vamos a establecer a
este empleado por identificación de personal.
Todo bien. Bastante genial. Entonces como puedes ver, dice, Oye, el nombre del tipo, el tipo que
coincide es empleado DTL.
Eso es lo que dicen. Coincide con el empleado DT y realmente
podemos
ver estos detalles. Verás, Esto es chicos bastante geniales. Se trata de chicos bastante geniales.
Obtenemos todos los detalles. Ahora recuerda,
comenté el correo electrónico, y por eso no
veo ningún correo aquí, ¿
verdad? Yo envío correo electrónico. Entonces, si regresas,
trae el correo electrónico y ejecuta esto de nuevo, ejecuta esto de nuevo. Puedes ver, ahora tenemos el
correo electrónico realmente agregado. Se trata de chicos bastante geniales.
Probemos para subcontratar Probemos para subcontratar. Iré a la base de datos. De hecho voy a elegir
el También TID subcontratar tD esto aquí, lo tenemos Solo voy a elegir uno al azar así que SID y solo
reemplazaré esto aquí. Recuerda buscar barcos para buscar barco para ver
si existe en embarcaciones. Voy a llamar a esto otra vez. Como puedes ver, y decir, Oye, el tipo al que realmente te
refieres ahora está
subcontratado y
van a ver qué es lo que realmente me da los detalles Esto es bastante impresionante chicos. Esto es bastante
impresionante. Todo bien. Con este ser, sigamos
adelante y luego probemos el último bit, que es la
búsqueda de empleados por ID de personal. No se preocupe, en realidad
voy a actualizar la colección cartero, que es la
búsqueda de empleados por identificación de personal Entonces para esta parte, hemos hecho por perdón, en realidad
me refería a la búsqueda de
empleados que realmente determina
si somos polares o no. Así que aquí
pasa lo mismo, chicos. Recuerda que también uso recuerdo que estoy devolviendo
los objetos de la persona. Podríamos ser de tipo empleado DTU o de tipo, voy a sousitu Por eso tenemos esto aquí. Pero ahora te estarás preguntando, W es esto?
¿Qué traes aquí? Esto se ve extraño. Esto se ve extraño. Oigan, chicos, no se preocupe, no se
preocupe. Esto es genial. Ahora bien, qué hermano en realidad traje esto
aquí deliberadamente para
mostrarles chicos que también hay un concepto cuando en realidad están
tratando de consultar graph que, el concepto de fragmento,
el concepto de fragmento. Ahora, podrías confiar fragmento a algo
como cuando realmente estás haciendo un angular o
realmente estás haciendo una reacción, lo que ellos llaman componentes, un componente que existe que
puede ser que es reutilizable, o para el back end,
dices que no te repitas. Tienes un código escrito, quieres volver a usarlo. Entonces creas una interfaz
o realmente
creas una propiedad o creas alguna lógica particular
que quieras implementar. Eso es exactamente lo
que estás haciendo aquí. Entonces lo que significa es
en empleado DTO, recuerda empleado DTU,
empleado DT tiene un concepto Así que regresen, chicos.
Hagamos esto otra vez. Vamos a deletrear los campos
comunes, ¿verdad? Creo que básicamente
solo lo hago en la identificación. Vamos a cerrar todo esto. Vamos a sacar a colación persona
veamos a los dos implementador. Este es el primer implementador. Este es el segundo implementador. Vamos a
juntarlos uno al lado del otro. Entonces lo que noten, chicos, como pueden ver, tenemos el
concepto de UUID existente Concepto de nombre, fecha de
nacimiento, sexo, salario, domicilio, edad, teléfono, nombre de
la empresa, está activo. Todos estos son detalles comunes. Graph Qa nos da la
capacidad de poder agregar estos detalles comunes
en lo que llamamos fragmentos. Por eso ves defino
algo llamado fragmento. El fragmento está en lo que hay
en esta interfaz de persona. Está en esta interfaz actual. Ahora que en realidad lo
tengo aquí, puedes ver que un define, oye, este es el fragmento que en realidad
deberías ser debe traer. Podría decidir no agregar esto y solo probablemente
agregar todos estos datos, recoger todos estos datos
y pasarlos aquí. Pero solo quiero
mostrarles que esto realmente existe. Quiero decir,
probablemente podría simplemente elegir todo esto todo lo que
tenemos aquí y no usar el concepto de
fragmento y simplemente
enumerar todos los campos aquí,
y las cosas seguirán funcionando. Pero déjenme
mostrarles que esto existe, esto sale puedes usar
el concepto de fragmento. Para ello, vamos a buscar a
todos los subcontratados. Vamos a buscar a todos los subcontratados. Va a tomar un tiempo
porque hay muchos datos. Puedes ver todos los datos
devueltos correctamente. Dentro de este fragmento,
podría decir, ¿sabes qué? No me
des género. Oh, bien, quiero género.
No me des fechas de nacimiento. No quiero que nadie
sepa mi fecha de nacimiento y diga que no me den espuma. Recuerda, es devolver el teléfono, es devolver fechas de nacimiento, en realidad va a
retomarlo, que es el poder de Graph co para poder
Quigy solo lo que necesites Hagamos esto otra vez.
Impresionante. Como puede ver, no
tenemos bit de datos y tampoco
tenemos espuma. Todo bien. Si digo que esto es falso, eso significa que quiero a
todos los empleados. Al parecer, quiero a todos los
empleados, así que hagámoslo. Esto está
pasando, estirando todos los empleados con
todos los datos de los gnomos Esto está regresando, no
tenemos bit de datos, no
tenemos espuma. Como puedes ver el concepto
de fragmento también funciona. He podido
mostrar esto claramente, y esto es bastante impresionante. Bien, chicos, los
veré en el siguiente video.
70. Unión Grapqhl: Oigan, chicos. Bien,
es bueno tenerte de vuelta. Bien, hablemos de
algo bastante importante. Bien, entonces, ¿por qué
en realidad arrancamos el bootstrapping ? ¿Por qué empezábamos este
curso? Les mostré
muchas cosas y también les
mostré el
concepto de usar unión, el concepto de usar unión. Entonces, ¿cómo podemos hacer para
implementar el sindicato? Si quieres buscar, recuerda, Union está trayendo
dos entidades no relacionadas que podrían estar relacionadas de alguna
manera, donde se podría decir
que son totalmente diferentes en otras formas ¿Cómo los une e implementa bien en GFK ¿Todo bien? Abordemos
eso en este video. Veamos cómo podemos unir dos cosas
no relacionadas. Voy a usar este ejemplo
bastante genial. Entonces voy a decir, eso. Voy a traer un
sindicato y lo llamaré la persona y entidad. Búsqueda de persona y entidad. Voy a hacer que sea una
combinación de DTO de empresa o accidente cerebrovascular y empleado Voy a traer
este concepto. Voy a exponer
esto dentro de nuestra consulta. Entonces entraré dentro de
nuestra consulta para decir, dame empleado
con compañía. ¿Qué compañía tal? Empresa tal, luego me
pasa la identificación del empleado. ¿Identificación de empleado? Familiarizándome con la sintaxis ahora y estoy
diciendo que va a ser importante y
deberías darme una lista, una lista de personas, podría ser una o más. No obstante, ya que no estoy
haciendo esto obligatorio, así que sólo pude conseguir uno o más. Pero si hago esto obligatorio,
estoy diciendo que necesito dos. Estoy seguro de que ustedes
entienden esa parte. Bueno. Ahora que tenemos esto, sigamos adelante e
implementemos esto. Sigamos adelante e
implementemos esto. Para comenzar esto realmente, no
quiero
mezclar esto, así que cortemos otro controlador, que voy a llamar controlador de comando
común, Controlador comandos. mando. Como de costumbre, va a estar en el controlador
y va a estar en un constructor
de cuartos tal como lo uso antes. No hago
inyección de constructor. Solía hacer
inyección de concentrado en la hamburguesa. Ahora voy a tener
un concepto de
final privado llamarlo
servicio común servicio común. Entonces vamos a implementar
el esqueleto, tener un mapeo de esquema,
un mapeo de esquema. Voy a tener
nombre tipo, cava constante. Al parecer, no sé,
para ser una consulta de consulta. Voy a tener un campo. Recuerda, no estoy construido, no
estoy compilado, así que no tendría
lo que necesito aquí. Ahora por ahora,
probablemente solo voy a conseguir la cepa. Cuando construyamos, voy a reemplazar. Construir voy a reemplazar.
Probablemente esta será entonces la lista pública de una persona. Búsqueda de persona y entidad, no la
va a
encontrar porque
no hemos construido búsqueda MC, y la llamaré básicamente
empleado con ID de búsqueda. Entonces voy a pasar los argumentos. Recuerden argumentos pasajeros. Argumentos, luego ID de empleado. Esta iba a
ser la identificación del empleado, que encadenamos ID. Entonces voy a devolver
el servicio común. Comienza el servicio común. Yo solo lo llamo el
mismo nombre empleado con búsqueda de comp y
paso la identificación, ¿verdad? Tienes humanidades
quejándose ya chicos. Lo que haga, voy
a comenzar esto. He comentado esto,
voy a comentarlo. Para esto están codificando, simplemente realmente codifica a lo largo del que lo
elogiamos ,
así que construya rápidamente Voy a detener el funcionamiento
del servicio vamos a construir. Voy a hacer una compilación
ambiental. Les dije chicos si tienen errores porque completo
no lo encuentra solo comentan las clases de la
empresa o los controladores o controladores de
comentarios igual que este error,
como quise decir. Sencillo pon esto simple y la razón es porque
no existe la constante dgs Recuerda, ya no hay dgs que ya no
puedas encontrar DGS constante Yo solo comento, ¿verdad? Esta es solo una
de las desventajas ello porque
al parecer, recuerda que limpia en realidad
limpia el No se puede encontrar una batea que construimos.
Construyamos esto rápidamente. Simplemente entraré y eliminaré esta foto objetivo
porque no
eliminamos podría no compilar
adecuadamente. Yo sólo compilo. Bien, entonces esto está
pasando y
básicamente tenemos nuestros
detalles creados. ¿Eso es así? Sí,
esto se crea. Así que volveré y descomentaré a
todos estos tipos, ¿verdad? Yo los comentaré. Esto
está bien. Esto está bien. Esto está bien. Y esto bien, para que veas que
esto también está bien Realmente bien a la persona, ¿
verdad? Entonces esto es genial. Bien. Entonces esto navega desde estas partes vemos que en
realidad entra aquí Todo bien. Con esto dicho, necesitamos crear el
concepto de servicio común. Entonces básicamente ir al servicio
y crear servicio común. Lo que haría,
solo voy al servicio, solo copia esta cosa aquí, voy al servicio, solo
llámalo servicio común. Esto básicamente será un servicio y volvemos aqui como constructor, entonces ¿qué básicamente voy a necesitar? ¿Qué necesito? Necesito
básicamente de todo. Voy a traer en privado. Final porque necesitamos a
la empresa Apochi. Empresa A Positii
Empresa A Positi. Entonces también necesito al empleado Positii porque recuerda que estamos
recibiendo para empleado,
empleado posti, employe Positii aparentemente necesito la dirección también en caso de que estés Obtengo el
servicio de dirección, servicio de dirección. Servicio de dirección, luego servicio de
dirección. Y por último, probablemente
necesite al Mapper Util para mapear las cosas para
dejarnos Mapper Util,
luego Mapper Util para mapear las cosas para
dejarnos Mapper Util,
luego Mapper Util. Todo bien. Entonces con este tono, entonces puedo
volver a mi controlador, solo para salvar me encanta hacerlo. Ahora bien, esto debería
ser encontrado, ¿verdad? ¿Cuál es el problema? Sí,
debería ser encontrada. Sólo importarlo, ¿verdad? Así que voy a venir
aquí para crear este problema auto crea. Fresco. Tenemos esto en.
Entonces puedo entrar a decir, Oye, dame al empleado,
revisa al empleado empleado punto bien por identificación, empezamos con esto y decimos bien por identificación o
pasando la identificación, appalys
me van a dar un opcional, Tienes el empleado opcional, fluyeme chicos, tienes
el empleado opcional. Ahora con esto disponible, quiero comprobar si existe. Si este tipo está vacío. Digamos que no está vacío, que
caiga primero. No está vacío, entonces
intentemos una excepción. Cierto. Nuevo momento equivocado por ahora, colocamos todo después. Empleado no encontrado. Empleado con ID, no encontrado, no existe, no encontrado. No se encontró. Eso es bastante genial. Entonces sin embargo, ¿y
si se encuentra? Entonces quiero devolver
al empleado opcional, esto se encuentra, este se encuentra. Conseguiré el mapa de puntos de
empleado opcional. Podrías hacer un mapa. Básicamente
se podría hacer un mapa directamente en un opcional también. Mapearé esto y lo
mapearé a la cola del mapeador, luego al empleado DTO Eso me va a dar
DTO empleado, ¿verdad? Si entonces tengo esto
Bien, esto me daría. Lo marcaré dentro de
cada empleado, así que máximo dentro lo haré consigue. Entonces lo hago llega hasta aquí. Eso me dará los detalles
exactos que necesito. Este debería ser un empleado DTO. Todo bien. Esto se está
haciendo bastante largo, así que me voy a dar
prisa rápidamente y sólo decir que el empleado det entonces voy a
establecer la dirección, ¿verdad? Y voy a escoger el servicio
de dirección. Entonces me va bien por la entidad. Entonces por la entidad, sólo
voy a pasar el
empleado empleado DT obtiene identificación de empleado, ¿de acuerdo? Entonces eso es bastante genial. Entonces sólo voy a hacer una pausa aquí. Volvamos en el
siguiente video para terminar esto porque este video
se está haciendo muy largo. Los veo chicos en el siguiente video.
71. Graphql Union 2: Oye, ahí. Todo bien. Bien, así que vamos a la derecha.
Entremos enseguida. Así que intentamos terminar
el sindicato, ¿de acuerdo? Todo bien. Voy a probar
algo aquí afuera. Entonces intenta terminar
la unión, ¿verdad? Y básicamente, pesamos
en el servicio común, y realmente somos capaces de
llegar a este punto. Pero he seguido adelante
para probar
realmente implementar todo esto. No tenemos que perder el tiempo
en este video en particular. Todo lo que consigo se acaba de llamar la empresa Repositi luego paso en el empleado u
obtener el nombre de la empresa De hecho, pude conseguirlo. Si una empresa no existe, decimos empresa no encontrada, entonces en realidad mapeamos la
empresa a la empresa DTO, entonces devolvemos este listado Devolvemos esta lista,
que es una forma de la persona entidad como la persona empleada
DTO y la empresa También podrías hacer
algo como esto. Enumere persona, y solo
diga búsqueda de persona, luego envíelo lista, luego
vea persona punto agregar, luego pasar al empleado
DTO, esto funcionará También esta parte, también
se podría ver la empresa DTO. Esto básicamente
funcionaría. Pero como estás usando
Java 11 y superior, solo
pensé en usar la lista y esto básicamente
funciona apropiadamente. Voy a seguir adelante para probarlo
realmente. Vamos a verificar
nuestra lógica una vez más. Verifiquemos una vez más nuestra
lógica. En realidad llamamos realmente pasando la identificación del empleado
y la identificación del empleado, buscamos al empleador
Positi para asegurarnos de que realmente la encontramos si
no encontramos si no está presente, esto debería darnos
un error, si está vacío Si esto está vacío,
lanzamos una excepción. Donde se encuentre,
luego continúe para mapear
realmente porque opcional, tenga en cuenta opcional también
tienen el concepto de mapa. ¿Correcto? También podrías mapear
las cosas en un opcional, ¿verdad? Y también puedo pasar en el concepto de Lamb
Des que tenemos. Yo era capaz de realmente lo hace. Lo mapeé, entonces realmente
lo saco para conseguir a mi empleado DTO, después de hacer eso, entonces en realidad
estoy configurando
la dirección aquí Estoy usando este empleado
DTOs nombre de la empresa para la búsqueda del depositario de la
empresa Y si no existe,
intento una excepción. Entonces eso es básicamente lo que
hice. Vamos a callar, pruébalo. Tengo esto ya wirding y he seguido adelante
y he puesto una identificación, una identificación de empleado, ¿verdad? Así que recuerda el concepto chicos
recuerdan el concepto del que
acabamos de hablar usando el
concepto de usar el tipo. Por lo que este concepto
también se aplica aquí. Así que en realidad podría
pasar esto aquí, pero no necesariamente
usar el typenme Entonces, entremos nuestro sindicato para
ver realmente cómo es esto. Entonces si entro en esta parte, puede ver que también tenemos el
concepto de typename, Este concepto de typename. Ahora, sólo les estoy enseñando chicos. Se ve que creó una
unión como interfaz. Por eso tenemos el
concepto de typename. Solo les estoy mostrando chicos
que no necesitan
agregar
deliberadamente el typename, pero podrían especificar
realmente el Sólo estoy tratando de
mostrarte diferentes variaciones, muy para saber cómo funciona. Con este juego de pines,
vamos a probarlo. Estoy consiguiendo empleado.
Este empleado tenemos estos detalles
y este detalle tenemos estos detalles.
Vamos a traer esto. Bien, entonces tenemos un error en alguna parte y
el error está diciendo, déjame revisar esta parte. ¿Qué dice el error? Donde sonreímos error dice
empleado con identificación no encontrado. Tenemos que
reiniciar esto en realidad. Reiniciemos esto.
Creo que lo apto vamos a reiniciarlo. Bien. Pongo una vez más
si obtienes el MR, voy a depurar para ver
qué está pasando realmente. Muy bien, así que esta
puesta solo voy a seguir recto y solo
darle a esto. Impresionante. Impresionante. Como pueden ver,
tengo a mi empleado, y como pueden ver, también
tengo los datos de mi empresa. El empleado la empresa
porque si revisas, agreguemos en el
nombre de la empresa, que comenté. Entonces, si realmente haces esto, digamos, nombre de
tu empresa es
Sanford AC y la compañía Sanford LC para realmente reunir
esos detalles Si hubiera decidido
excluir a la compañía, obtendría a mi empleado. Decidí excluir empleado,
obtendría la empresa. De hecho
podrías juntar estos. Recuerda, el concepto de
nombre tipo es, tengo muchas formas. O me das esto o me
das esto y
ambos están disponibles, realidad
es capaz de
navegar para mostrarte que en realidad puedo
traer esto. Voy a repasar eso otra vez. Si tienes un concepto de nombre de tipo, en realidad
podrías
obtener el primer tipo o una forma u otra.
Esa es toda la idea. Podrías decidir
especificarlo o no especificarlo. Bo trabaja. Pero si lo
especificas, está bien. Si no
lo especificas, está bien. Podría tener una forma o
podría tener otra. Como esto en realidad
contiene ambos, fue capaz de decir
dinámicamente, bien, reconozco a este empleado DTO, genial, reconozco esto
y me da esto Así es como usas union. Union realmente
trae todo
por ti en función de lo que
tus datos están devolviendo. Y como el poder de la gráfica
QL realmente implica, entonces
puedes comentar
los campos exactos que quieras o los
que no necesites Vamos a probar esto una
vez más y voy a quitar la oficina central,
que tiene por aquí. Vamos a seguir adelante
y probar esto, C como puedes ver, lo tenemos. Bien, con esto
dicho, chicos, los veré en el siguiente video.
72. Uso de encabezados (sin QueryParam, sin PathVariable): Oigan, campeones. Es bueno
tenerte de vuelta, ¿verdad? Ha sido un
viaje interesante hasta el momento. Bien, así que queremos discutir otro detalle importante en este video o algún
par de videos. Que es el concepto
de parámetros de solicitud,
y variables de ruta, equestPMS
y variables Bien. Desafortunadamente,
AQL, spring for GAF QL no tiene
soporte para Y variables PAT. ¿Por qué es eso? Recuerda, todo
le pasa solo a la URL. Puedes colocar tener
algo como esto. Le pasa a la URL. Cada pulso, mutación,
sea lo que sea, le pasa a una sola
URL y dinámicamente, introspecta de ss Toda la entidad o debería decir
puntos finales que estás tratando de
pasar en base a los nombres.
Basado en los nombres. De hecho, podrías
enrollar esto para escuchar
ese camino de nuevo. No hay concepto de consulta. No hay concepto
de parámetros de trayectoria. Sólo usa los
nombres para poder resolver y saber lo
que estás enviando es un post o estás
pasando en mutación,
que es una mutación, que es un post una consulta, que probablemente podría
ser un get, sin embargo, hay una alternativa. Y la alternativa a
eso es usar encabezados. La alternativa a
eso es usar encabezados. Entonces tenemos el
concepto de encabezados. Lo mismo, tienes encabezados HTTP. Tenemos cabeceras en Garth QL. Entonces como resultado para solidificar esto, vas a estar
implementando encabezados, Encabezados, y les mostraré algunas variaciones sobre cómo
hacer esto en realidad. Entonces, al llegar
a esto, solo traeré esto en lo que vas a usar. Entonces vamos
a tener esto. Vamos a tener que buscar
empleados usando encabezados, recuperar fuente usando Esto también sería genial. Vamos a decir buscar empleados usando
encabezados y argumentos Pudimos ver cómo podemos usar encabezados y argumentos juntos. Aquí, queremos ver cómo
están usando los encabezados. Vamos a meternos en ello. Lo que vamos a
hacer, vamos a
ir a un servicio de empresa. Vamos a ir a
un controlador de la compañía, Lester desde el controlador
dijo controlador común y NSSA, controlador común
Ales Prefiero usar el mapeo
de esquemas, ¿verdad? También podría usar
la asignación de consultas. Esto funciona bastante bien aquí, y en realidad no
tenemos mi tipename Entonces no experimentamos
el mismo error que hicimos la última vez,
así que voy a hacer, solo
voy a seguir
adelante y solo construir envidia y compilar. Ojalá, no obtengamos error, y esto en realidad
viene directamente, que está en los detalles que realmente
especificamos aquí. Cierto, la ocurrencia del RAC, que está bien,
lo único que tenemos que hacer es
encomiar esto Sólo necesito encomiar esto. Yo sólo termina por encomiar esto. Vamos a eliminar
la carpeta de destino. Va a reconstruir. Todo bien. Y esto es bastante
correcto, correcto, porque
lo pensamos, estamos usando la constante generada
en carpeta Target. Así que cada vez que lo construimos
juegos limpios porque recuerden, la limpieza viene antes de
compilar, ¿verdad? Si lo miras
en el ciclo de vida, tenemos la limpieza
antes de que compilen y eso es exactamente lo que está
pasando. Todo bien. Entonces ahora que esto es exitoso, seguiré adelante y
traeré este paquete. Yo seguiré adelante y
traeré este paquete. Yo seguiré adelante y
traeré este paquete. Y esto también ya está
ahí. Entonces esto es bastante genial. La razón por la que
no generas error porque en realidad lo uso. Así que arreglemos esto y
agreguemos aquí la aleta correcta. Esta DGS Constant,
Jot Query, una consulta, luego empleados empleados con Búsqueda de
empresa con la capital E. Todo bien. Fresco. Por aquí, definamos un mapeo de esquema. Voy a traer este paquete. Entonces, un esquema de mapeo, recuerden, lo que estamos
tratando de lograr aquí chicos, lo que estamos tratando de
lograr es bastante simple. No tenemos el
concepto de parámetros de consulta, y no tenemos el
concepto de variables de ruta, pero tenemos el
concepto de encabezados Puede usar encabezados para
sustituir y querer ver varias formas de eso es
lo que estamos tratando de lograr. Tener un nombre de tipo, constante DGs. Constantes DGS, utilice tipo de
consulta cuatro. Entonces vamos a decir campo, luego constantes DGS, luego query, y queremos
pasar en el Queremos desprendernos de la búsqueda de
empleados usando encabezados. Se trata de
chicos bastante chulos. Esto bastante genial. Yo sólo diré al público
que va a ser público. Volvamos a nuestra definición. ¿Qué devuelve
empleado DTO? Devolver un empleado
DTO, Empleado DTO, ¿verdad? Sí, dices lista, esta una lista. Lista. Lo cual es bastante genial. Solo usaré el
mismo nombre aquí, buscaré un encabezado ascendente, que Q. Eso entra Entonces voy a pasar
en una matriz de cabeceras. Ahora bien, esto es muy importante chicos porque esto puede
llegar a ser muy confuso. Necesito explicar
algunos detalles aquí. Diré retorno, servicio común, luego iré a buscar usando
encabezados, lo cual está bien Entonces voy a estar pasando
tres cabeceras. Veré encabezado uno, encabezado
dos y encabezado tres. Encabezado tres. Vamos
a crear esto en un poco. Ahora bien, ¿de dónde obtengo
los encabezados? Cuando estás usando encabezados, tienes que hacer un poco
de configuración. Se
necesita
hacer un poco de configuración cuando intentas pasar
encabezados, y eso es lo que realmente
vas a traer. Cuando intentas
crear encabezados, esto es muy importante, chicos, muy, muy importante. Entonces
, por favor, preste atención. Cuando intentas
crear encabezados, necesitas traer un concepto llamado interceptor de
gráfico web L. Esa es una gran palabra. Solo les
mostraré cómo
funciona, ¿verdad? Yo diría que quiero la solicitud. Interceptor de cabecera, quiero
interceptar las cabezas Es sólo una clase normal, ¿verdad? Pero esto implementaría esto implementa la
web la gráfica web QL, la gráfica web QL Cuando implementamos esto, en realidad
nos cruzamos. Interceptamos bastante cool. Ahora bien esta es una configuración
porque los componentes porque
queremos que se descubra,
puede traer esto. Ahora que tenemos esto,
¿cómo sacamos entonces los
encabezados? Muy fácil. Pero entonces digo de esta solicitud que está
entrando en la gráfica QL, quiero buscar en realidad mis
encabezados. ¿Cómo hago eso? Vengo aquí y voy a decir
mi petición punto obtener encabezados. Verás, los encabezados están disponibles. Obtienen primero, obtienen
el primero ocurren, obtienen el primero ocurre de cualquier cosa con nombre de clave encabezado uno. Espero que entiendas el
concepto, chicos, hay
que pasar el nombre
exacto, la clave, así como cuando pasas errores
o tipo de contenido en TP, pasas un encabezado con
una clave y un valor. Esa es exactamente la
forma en que funciona aquí. Esto va a ser una cuerda.
Yo lo llamaré encabezado uno. Simplemente voy a crear los
otros dos y esto estará esperando encabezado dos, estoy esperando encabezado tres, y simplemente voy a cambiar la convención de
nomenclatura aquí, así que en realidad podríamos
tenerla coincidente Tres deberían ser dos. Bien. ¿Eso es todo? No. También tenemos un detalle más que necesitamos lograr realmente. Entonces decimos, por cada
solicitud que entra, esta solicitud que está entrando, quiero que configures una entrada de
ejecución para mí. Entonces la entrada de ejecución
toma una función bi y la bifunción tomará una entrada de ejecución
y un constructor, derecho, que luego usaríamos Tomando esto y el constructor. Entonces digo el constructor, quiero que el constructor
obtenga realmente el contexto GAF Quo Una vez que consigas el contexto del auto Gp, entonces quiero mapear lo
que quiero recibir. Tienes que mapear lo
que quieres recibir. Esta es una
configuración de una sola vez. Esta es una configon
recomendada para la primavera, así que podrías estar
seguro de que podrías hacer esto una y otra vez Podrías simplemente colocar esto
en una vez y pasarlo. Un encabezado, bueno,
déjame ponerlo de esta manera. Un encabezado que está entrando en tu aplicación,
debes configurarlo. En toda la aplicación,
debes configurarla. Gap Qiu debe saberlo. Si no lo sabe, te vas a meter
en problemas. Voy a decir encabezado uno, para cabeza de uno,
agárrate para mapearlo dos. Yo solo encordo colas. Encadena tus colas
desde el marco del columpio y asegúrate de pasar el texto. Thatas texto, voy a
pasar en cabecera uno a él. Voy a decir si
esto tiene texto, sí, dame cabeza de uno porque
no quiero un error inesperado si no tiene que darme NT. Eso es básicamente
lo que estoy haciendo. Estoy diciendo que si estás
disponible, dámelo si no estás disponible,
no me lo des. la misma manera, voy a
definir para encabezado dos, la misma manera definiré
para encabezado tres. Yo sólo entraré aquí y
sólo modificaré esto, ¿verdad? Entonces solo coloco esto en
cabecera dos, encabezado tres. Ahora he registrado lo que yo. Ahora estos son en realidad ir, estás presionando un mapa, estás diciendo que quiero el encabezado de cadena. Esto esta disponible, dame esto no esta disponible,
no me des eso. Eso es en realidad, entonces
quiero construir, eso es construir. Yo construyo esto. Una vez hecho
esto, recuerda que decimos cadena, yo digo cadena de la misma manera
que tienes la cadena de filtros, en realidad recibes la solicitud y la vuelves a pasar
a la cadena. He interceptado la cadena. Quiero que
entiendas los alcances que he interceptado a la cadena He insertado la cabeza,
estoy esperando en ella. Quiero estar al tanto de este
encabezado. Entonces lo devolveré. Voy a decir punto de cadena a continuación,
y paso en la solicitud. Nos vemos chicos, el próximo medial.
73. Uso de encabezados 2 (sin QueryParam, sin PathVariable): Hola ahí. Todo bien. Estábamos tratando de ver
realmente cómo usar los encabezados en la gráfica QL Ahora la visión es
porque
no hay concepto de params iguales y pasar variables para lograr
realmente esos encabezados ascendentes Mencioné
lo primero que debes
hacer para lograrlo
realmente, en realidad
estás explorando estas
tres consultas gráficas Q. Fetch emplea con encabezados,
busca encabezados assoc y recupera a tus empleados
usando encabezados y argumentos para ver cómo podemos mezclarlos.
Pero ahí no termina. Entonces usa encabezados, tienes que
hacer alguna configuración. Prácticamente entramos en un común esta parte para crear
realmente esto. Pero sin embargo, hay un poco. Necesitamos configurar de dónde vienen
estos encabezados. Entonces ahora conoce de dónde vienen estos
encabezados. Creamos esta solicitud
interceptor que intercepta la solicitud que entra
en la gráfica Q que viene a través de la
gráfica web su interceptor, interceptamos para convertirlo en un
componente para registrar como haz que lo vea,
luego al interceptarlo, realidad
obtenemos la
primera ocurrencia, que viene de esta
solicitud o obtenemos cabeceras o
obtenemos primero y
colocamos dos, tres, que
en realidad estamos esperando aquí. Entonces después de conseguir eso,
entonces estamos diciendo, oye, queremos registrar esto
dentro del contexto, y estamos registrando cómo no queremos recibir
punteros y similares Estamos dame cabeza de
uno, si existe, si tiene valor, si este
encabezado uno tiene valor, dame cabeza de uno.
No tiene valor. ¿Ves? Estoy
registrado y digo, dame esta cabeza de
uno si tiene valor, dame este encabezado
si tiene valor. Si no
me da una cadena vacía. Entonces por eso estamos
seguros de que cuando vendes una cadena vacía,
no existe. Si no dices una
cadena vacía, en realidad existe. Todo bien. Luego
lo registramos de nuevo en la cadena, igual que la cadena de filtros, cuando recibe la solicitud,
cuando está haciendo seguridad de
resorte y
obtiene la cadena de filtros, obtiene la solicitud correcta de
subarrendamientos HCP Cuando lo consigas cuando
configures algo, lo
volverás atrás para
que quede registrado. De la misma manera en que en realidad
damos la vuelta atrás. Por lo que esto se registra al lado. Esta es básicamente toda la configuración
que necesitamos hacer aquí. No utilizamos activamente
la entrada de ejecución. Entonces con esto hecho, no
volvimos
aquí esto es importante. No volvimos a
entrar aquí. Nosotros no no
usamos argumento. Tenemos encabezados baratos,
usamos algo llamado en contexto en valor de contexto. Al valor de contexto, luego pasa lo exacto
que estás buscando. Quiero lo que quiero encabezado uno. Espero que esto
tenga sentido y quiero encabezado uno y de hecho lo
coloco realmente. En realidad puedes especificar
si es adquirida adquirida, no, no requiero encabezado uno. De la misma manera a encabezado
dos, encabezado tres. Entonces ahora, recuerden, solo una variación numer
primaveral, podrías tener un
nombre o un valor Ambos son iguales. Simplemente
coloco esto como valor. Entonces no, eso es lo mismo,
no es diferente. Entonces es un valor y
esto es un encabezado dos. Ambos no son importantes. Para ello, hagamos
esto importante. Hagámoslo cierto.
Y si esto es cierto, lo que acabo de decir, Oye,
este es el valor por defecto, así que también podemos eliminar esto. De la misma manera tenemos co
pares y variables de ruta. Este mismo concepto realmente
funciona aquí para encabezado. Aquí estamos viendo
encabezado tres y también lo hacemos opcional, haciendo esta opción
así que ahora esta bien. Así que hemos podido recuperar
todos los detalles sobre él. Entonces así es como
recuperar encabezados, ¿verdad? Así es como recuperar
encabezados, ¿verdad? Entonces, en realidad
creamos interceptor,
mapeamos esto en, luego lo
recuperamos a través del valor de contexto Esto básicamente funciona. Bien con
esto, luego crea vamos a crear nuestro servicio. Bien, entonces estamos guardando tres encabezados, lo cual
es bastante genial. Todo bien. Entonces, ¿qué hacemos con estos tres encabezados? Muy chulo. Voy a decir repositorio de
empleados, puntos final encontrar empleado con
encontrar todo por ID de empleado en. la misma manera
que ejecutas un script SQ y dices, en, ¿qué estás haciendo? Estás pasando una
lista de cosas. La columna que estás pasando
, puedes pasar en una lista. Lo mismo funciona para JPA. Entonces estoy pasando la lista y
me paso una cabeza de uno. Recuerda, seleccionando una lista
chicos, seleccionando una lista. Voy a pasar lista de
entonces paso encabezado uno,
encabezado dos, y
cabeza tres, ¿verdad? Todo bien. Ahora bien, si eso es fetch, quiero recordar, siempre
quiero meterme en un DTO empleado, transmito a través, luego
mapeo después de mapear, luego consigo a mi empleado porque quiero hacer
dos detalles aquí En primer lugar, solo digo mi mapa en YouTub punto consigue esto ellos te
da un empleado DT, lo cual es genial,
luego pongo la dirección Gracias auto complete
y devuelvo esto. Esto realmente entra, luego lo
devuelvo punto a lista. Esto básicamente es muy,
muy sencillo. Ahora tenemos esto. Para el otro también,
estás haciendo esto. Voy a saltarme esto porque es solo el mismo concepto, pero por favor amable, siéntete libre de
implementar esto chicos. Siéntase libre de implementar esto. ¿Qué voy a hacer bien? Podrías implementar, pero probablemente no
solo lo pruebo, ¿verdad? Probablemente no solo lo pruebo, sino para que
solo pudiéramos tener ambos juntos. Entonces hagamos lo mismo. Así que voy a seguir adelante
y robar esto. Voy a seguir adelante y robar esto. Entonces iré a buscar una cabeza a las cuatro o a las cinco, Yo saco esto. ¿Verdad?
Te voy a poner de lado. Pecing cabeza de cuatro o
aspecto la cabeza de cinco, esta sería cabeza de cuatro y esta
sería cabeza de cinco Mueve este valor.
Después de quitar esto, al parecer, tiene que cambiar. Tiene que ser fetch,
externalizado, usando encabezados. Así que en
realidad hemos podido mapear esto en. Entonces esto sería fetch,
externalizado, be fetch externalizado. Traer nuestra salsa está en
cabeceras, cambia esto. Letra minúscula. Yo paso esto en este de hecho
entrar aquí. Sí. No tenemos esto
disponible en este momento, y que vas
a crear pronto. Tenemos esta cabeza de
cuatro y cabeza de cinco, Cabeza de cuatro y cabeza de cinco. Esto debería ser fetch,
pensé que cambié este Fetch Obtener subcontratados. No entendí esa p, genial. Entonces paso esto
, haz esto aquí. Podemos seguir adelante y luego crear esto adelante y
luego crea esto. Todo bien. El mismo concepto que trabajamos aquí chicos, solo
voy a elegir todo. Yo sólo lo pondré aquí. Ahora, voy a estar usando Osuc. Voy a estar usando postula subcontratada. Nosotros lo sabemos en
Vamos a cablearlo. Seré subcontratar repost,
subcontratar repost. Entonces podemos usar el repost de
externalización, luego encontrar todos, voy a fuente
en la cabeza que pasa de cuatro Estás pasando cabeza de
cinco, no necesito esto. Para esto, debería estar esperando subcontratada y voy a
conseguir una subcontratación Esto será mapear un mapa
subcontratado para subcontratar, deberían estar
dándome un subcontratado
a Voy a obtener
DTO con subcontratar a Voy a obtener
DTO con Entonces solo mapeo
el concepto aquí, luego paso al subcontratar
obtener nuestro ID de origen, luego voy a devolver el subcontratar esto me va a estar dando un DTO
subcontratado externalizado Esto es básicamente correcto. Cuando volvamos aquí, estamos pasando por el DTO subcontratado Esto básicamente funciona. De hecho, hemos podido tener esto en. Bien, chicos, los
veré en el siguiente video.
74. Uso de encabezados 3 (sin QueryParam, sin PathVariable): Oigan, chicos, gracias
por volver, ¿verdad? Así que somos capaces de
implementar realmente unos encabezados, para buscar empleados en encabezados y te mostré cómo funciona Ahora, podríamos haber
pasado por alto un detalle. Recuerda que debes
usar el valor de contexto. Para los encabezados,
hay que registrarlo. Si lo miras, solo
registramos el encabezado
uno, dos y tres, tienes que registrar el
encabezado tres, el encabezado cuatro y el encabezado cinco, que
son más fáciles de subcontratar De lo contrario no lo encontrarás. Esto es cuatro y esto es cinco. Probablemente sólo voy a entrar
y sólo añadir esto en. Este es un Cammer aquí y
este es un Cammer aquí, y esta será una cabeza
de cuatro, Cabeza de Y el jefe de cuatro, cabeza de cuatro debería ser cabeza de cinco, cabeza de cinco, esto debería
ser cabeza de cinco. Registralo ahora estamos seguros de que vamos
a recuperarlo. Pido realmente
hacer esto con éxito. Tenemos un
detalle más para implementar. Quiero implementar todos
los así que simplemente salta Alta Bosman como probablemente uses, entonces y luego haz que ambos lo ejecuten Para ello, estás
esperando una lista de identificaciones. Queremos lograr un
encabezado, al mismo tiempo, en realidad
queremos pasar los ID de personal, muchos ID de personal. Entonces esto funciona para nosotros chicos, así que en realidad
también podríamos implementar esto. Voy a entrar y simplemente
seguir adelante y detener esto. Todo bien. La fotografía
se cansa de escribir. Creo que también me estoy cansando
de escribir. Entonces déjame hacer una pausa
contigo. Apresurar esta verdad, y
procedemos. Todo bien. Así que en realidad he entrado. En realidad estamos
separando a los empleados usando encabezados y argumentos, lo que en realidad corresponde a este tipo, bastante genial, ¿verdad Así que en realidad tenemos eso de vuelta, luego trivi encabezado seis, y estamos pasando una
lista de ID de cadena Desea obtener esta lista de ID de cadena recibir todos
los ID con el encabezado. Recuerda que aún
tenemos más detalle, tienes que registrarlo. Esto es esto chicos
bastante chulos. Debes recordar registrarte, lo contrario, te vas
a encontrar con errores. En realidad tenemos esto
realmente registrado ahora. Tengo que entrar
aquí y registrarme. Ahora, es y dices,
seis, esto son pasteles, juego de seis, juego de seis, conjunto seis. Todo bien. Ahora, por favor, tengan en cuenta
una cosa, chicos. Mapa de. No está
escrito en ningún lado, pero este es el comportamiento
que conozco de Mapo Mapa de sólo puede tomar
un máximo de ocho. Entonces, si vas más allá de las ocho, es posible que necesites enumerar
deliberadamente, hacer algo como un mapa. Haces un mapa o cadena, luego lo pasas
uno por uno, ¿verdad? Digamos que tienes
encabezados que son mucho más que eso
en tu aplicación. De lo contrario, si
agregas más detalles, esto intentará y flecha,
esto no funcionará. Entonces intentemos agregar
algunos detalles extra. Intentemos agregar
algunos detalles extra. Pasar esto en
parecería como si estuviera bien. Pero cuando pruebas,
empiezas a generar, no
va a funcionar. Por favor, tengan esto en cuenta, chicos, cuando estén probando o
cuando realmente estén fumar, usando un mapa de No pases más de ocho.
Yo creo que la clave debería ser ocho, por favor
tenlo en cuenta. Pensé que debería mencionar
para aquellos que
probablemente tendrán muchos
encabezados en la aplicación. Todo bien. Pudido
realmente traer el encabezado, que es el encabezado seis,
debería haber sido un error. A un seis, a un seis año, a un seis año a seis
años y pasar un poco en él. Así que esto es bastante genial y
en realidad tenemos con un valor de contexto. Dices que no
queremos ser falsos, y también recibir argumentos, pasando una lista de identificaciones. Decimos exactamente lo
que esperas. Si lo miras, estás
esperando lista de IVs. Estás diciendo que
debe ser una cadena, y debe ser una lista
debe ser más de una. Estamos haciendo ambos obligatorios, bien, y lo hemos hecho
antes de al final. Entonces vayamos a la
implementación. Así que paso esto en Bien,
esto es bastante genial, chicos. Bien, entonces entremos y luego terminemos
la implementación. Todo lo que necesitas hacer
es bastante simple. Entonces solo diré
para esta identificación de personal, al parecer, la identificación de
personal, el encabezado también
es staff voy a estar pasando. Entonces solo diré identificación
del personal, la t. ¿solo agregaré seis
ácaros? Bien, eso funciona. Entonces después de agregarlo, solo
diré empleado, es
lo mismo que
tenemos aquí, chicos. Es exactamente
lo mismo que tenemos aquí. Así que voy a hacer girar
todo esto, ¿verdad? Voy a cantar todo
esto en. No dice que va a cambiar, sino
solo traer todo esto adentro. En este tiempo, solo
voy a pasar la identificación del personal aquí. Sólo voy a pasar
la identificación del personal aquí. Todo debería
seguir funcionando igual. Ahora tenemos toda nuestra
implementación en su lugar para probar encabezados porque
no hay formulario de solicitud o variable de parte por lo que estarás usando mucho
encabezados. Después de colocar esta cabeza a las
tres, si me perdí esto. Corre de nuevo, cabeza
un uno, dos, tres, cabeza un uno, dos, tres,
cabeza un cuatro, cinco, e45 Sí, uno, dos,
tres, cinco geniales y seis. Comprobemos esto. Aquí, uno, dos, tres, cuatro, cinco, seis, uno,
dos, tres, cuatro, cinco, seis, luego uno, tres, cuatro, cinco, seis, luego 135. Bien. Entonces con esto, sigamos
adelante y probemos y veamos cómo se desarrolla. Bien, así que esto se acerca así que no deberíamos obtener
ningún error, por así decirlo Bien, así que esto está dentro. Entonces sigamos adelante
y probémoslo. Bien, entonces esto es para lo común. Esto es para lo
común. Ya
entré para
agregar estos últimos bits, así que quiero buscar empleados Entonces, busquemos a sus
empleados usando encabezados,
bien, busquemos los encabezados de sus
empleados Entonces, ¿cómo se agregan encabezados aquí? ¿Recuerdas respetar
los encabezados aquí? ¿Cómo agregas tus
encabezados? Muy sencillo. Esta búsqueda de empleados, sólo
voy a entrar aquí, ya ves, establecer encabezados,
establecer encabezados. Para Cartero, estoy seguro que ya
puedes entenderlo. Tenemos cabeceras aquí,
¿verdad? Pero cartero estoy compartiendo
ves encabezados aquí, así que puedes simplemente establecer
tus encabezados ahí Primero sem usando costo normalmente. Pero para neumático, en realidad
establece tus cabeceras aquí, he seguido adelante para
agregar siete encabezados, todos los encabezados uno,
dos, tres, cuatro, cinco, seis porque estamos
estableciendo seis cabeceras. Lo que voy a hacer entonces estos
tipos no son correctos. Permítanme
reemplazarlos por valores precisos. Entraré aquí,
elegiré empleados,
elegiré identificaciones correctas,
elijo las identificaciones correctas para los empleados. Confirmemos una
vez más el empleado 123123 es para identificaciones de empleado, luego voy a fuentes para cinco 123 es para identificación de empleado. Voy a ir en
ID de empleado es empleado, y esta es ID de empleado.
Yo sólo escogeré esto. Yo solo voy a elegir este
letrero lo reemplazo, yendo aquí, escojo el siguiente. A lo mejor solo estoy
escogiendo uno al azar, chicos, así que no hay ningún específico. Después el tercero. Todo bien. Entonces vayamos a nuestra fuente. Simplemente lo colocaré en, pero
necesariamente no lo probaré. Entonces vayamos a nuestra fuente. Vamos a p fuente ordenada. Yo fuente ordenado aquí. Habla esto,
serán cuatro, cinco. Entonces vamos a cinco. Sí. Por último, queremos
elegir identificación de empleado también otro o Jefe de seis porque eso es
básicamente lo que usamos. Recuerda, así que terminamos. Entonces esto se han guardado
con éxito, ¿verdad? Entonces con esto dicho, volvamos en el siguiente
video para probarlo realmente. Nos vemos en el siguiente video.
75. Prueba de encabezados (sin QueryParam, sin PathVariable): Oigan, chicos. Un último bit, recuerda cuando estamos probando
para los empleados
de fetch aquí como argumento,
necesitamos actualizar esto Esto es para cuando estaba probando
o desarrollando este costo. Simplemente entraré y solo
colocaré en la identificación del empleado, solo elijo tres al
azar también. ¿Solo escoge esto? Solo entra de nuevo y
elige esto aquí. Fresco. Por último, elegí esto. Y eso solidifica
todo lo que tenemos que hacer. Recuerda que colocamos nuestros
encabezados aquí, te
mostré dónde
colocarlo en cartero, que ya solías hacerlo,
y tenemos que ponerlo en un.
vamos a probarlo.
Ya hemos hecho esto vamos a buscar empleados
usando encabezados, ¿verdad? Genial, chicos. ¿Ves que realmente somos
capaces de conseguir esto? Esto funciona con precisión. De hecho, podrías seguir adelante para mover cosas
que no necesitas tal como nos
da el power graph queer y estás seguro de
obtener lo que necesitas. Recuerda, tenemos tres en cuanto a empleados y
cuántos obtienes uno, dos y tres, es el número tres. Esto es genial, chicos. Para nuestra fuente, dije que no
vamos a probar esto
ya lo he hecho todo, así que simplemente lo golpearon.
Sólo vamos a darle. Esto funciona. Nosotros
solo pla Eda cuatro, un cinco, y esto funciona. Por último, para esto,
vamos a darle a esto también. Veo que esto funciona.
Estamos usando encabezado y encabezado y
argumentos juntos. Verás, en realidad podríamos hacer que los emparejen y las cosas funcionen. Entonces solo te estoy mostrando varias variaciones
en caso de que en
realidad estés desarrollando
tu aplicación para saber cómo mezclar Match
cada una de ellas. Esto es básicamente todo. Ahora,
Small podría haber preguntado, pero aquí hicimos algo
falso, ¿verdad? Miras a nuestro controlador
común. Para ello, esto es falso.
Entonces, ¿y si elimino esto? ¿Qué va a pasar? Si me quito estas varillas pasan. Entonces,
saquemos uno. Si nuestra lógica es
lo suficientemente sólida es elegirla, si no, obtenemos un error. Así que vamos a probarlo. Entonces voy a quitar
voy a desactivar esto. Entonces voy a deshabilitar el
encabezado uno, ¿verdad? S Quiero componer, C. Dijo que quiero componer, no. Entonces como Encabezado uno no
es componer, vamos a disparar esto y C. Así que busca empleados
usando encabezados Como puedes ver,
solo obtienes dos detalles. Entonces esto funciona con precisión,
chicos. Esto funciona. Qué pasa con este tipo, eso es cierto que es necesario. Entremos. Entremos aquí. Déjame quitar una cabeza o dos también y vamos a disparar esta
A. Vamos a disparar esto. ¿Verdad? Entonces esto nos da
solo la última parte, ¿verdad? Esto da solo el bit final. Ahora bien, ¿por qué no
obtuvimos ningún error aquí? Alguien podría preguntarse, ¿por qué no
obtienes ningún error aquí? La razón por la que no obtuvimos
ningún error aquí es porque, recuerda, especificamos,
si no encuentras esto, dame una cadena vacía, ¿verdad? Entonces esta es la codificación defensiva. Entonces, si quieres
recibir una cadena vacía, solo
colocas una
lógica alrededor para decir, si está vacía, probablemente a través de un error,
cosas así. No vamos a hacer eso
aquí, pero es sólo una idea. Si solo vas
a esta parte,
entrando en tu aplicación, entonces mientras te estás registrando, si esto es un nulo o
si esto está vacío, entonces probablemente lógica para lanzar encabezados adquiridos
o algo así, y eso funcionaría con precisión. Bien chicos, creo que hemos podido probar
todos estos detalles. Muchas gracias por estar
conmigo hasta este momento. futuro,
vamos a
entrar en algo súper interesado, que es la generación. Bien chicos, nos
vemos en el siguiente video
76. Teoría de paginación en GraphQL: Oigan, chicos, es bueno
tenerlos de vuelta. Todo bien. Es genial
tenerte aquí. Todo bien. En esta sección,
vamos a hablar nación
pagana. Todo bien. Dada la palabra sobre los datos hoy en día, tenemos tantos conjuntos de datos por los que realmente
tenemos que pasar. Por lo tanto, solo es adecuado
para cada aplicación por la que podamos desplazarnos. Podemos elegir un pedazo y
renderizar a nuestros clientes. Clines. Entonces la idea
está dentro de un conjunto de datos, queremos poder
tomar algunas partes o desplazarse por cada dato, y es por eso que
tenemos el concepto de paginación para realmente paginar a través, para pasarlo paso a paso o
en trozos o decir
en Bien. Entonces primavera para gráfica Q o debería
decir comencemos desde el core graph que Graph cure te
da un concepto
de paginación Voy a proporcionar esto
en el enlace este, traerlo para que podamos ver exactamente cómo lo
implementan. Esto puede parecer bastante extraño, pero estoy seguro de que haré todo lo posible
para explicarlo realmente. Pero estoy seguro que también encontrarías la mayor explicación en
el ejemplo de codificación que
haría que las cosas se pegaran más. Pero sólo es correcto ver
la documentación oficial. Entonces en caso de que quiera agregar
algún concepto más a lo que
voy a presentar para
siempre podría encontrar documentación, nosotros para agregarle algunos
detalles extra a la misma. Recuerden, solo voy a hacer solo un poquito de
teoría para que luego
podamos pasar por la implementación práctica y ustedes puedan ver cómo funciona. Ahora, voy a
mantener esto muy corto. Ipaginación en gráfica QL. Hay que pensarlo en el concepto de lista
enlazada, ¿verdad? Concepto de lista de enlaces. Conseguí esta imagen
de gig para Gigs. Hay un sitio web gratuito para
que puedas ver muchas cosas. Ahora, estoy buscando el concepto
de lista de enlaces dobles. De esta manera, después de explicar
el momento para luego
entrar en la implementación del
gráfico de prognación gráfica QO, esto tiene más sentido Vamos a repasarlo. Ahora bien,
ya sabes en lista de doble enlace, había un concepto
de anterior y siguiente. Ahora demostrarás que
si tienes un anterior, si existe uno anterior, significa que no es
el primer elemento. Pero si un anterior
no existe, es no, se muestra es
el primer elemento. la misma manera, si el
siguiente no es nulo, demostrarás que
no es el último elemento. Pero si es nulo,
muestras es el último elemento. Ahora, teniendo esto
en cuenta, ¿verdad? Entonces podrías hacer un siguiente y mostrarás al siguiente
el acorde es nodo. Si el nodo está presente
y no es nulo, se muestra y modela el dial
realmente existe otro objeto. Y si puedes hacer una previa, siempre
podrías hacerlo. Sólo se puede decir si
hay un anterior o si
hay un nido, para poder rastrear si en
realidad estás al
principio o al final. Ahora teniendo esto en cuenta, ahora
vamos a saltar a la implementación de la
generación de páginas para Graph QO Ahora, GraphQL tiene
exactamente estos mismos conceptos. Se desplaza a través de los
datos, teniendo en cuenta, hay un concepto
de ahora mira esto, una página en para que
tiene página anterior Tiene página siguiente. Si como página
anterior es falsa, es el primer elemento
que has escogido. Si la página siguiente es falsa, entonces es el último elemento. Teniendo eso en mente. Estoy tratando de usarlo para
compararlo con el doble inkly para que realmente
puedas entender Entonces también tiene
un concepto de CSO. El concepto de CSO,
la CSO inicial,
la CSO final, media
en un subconjunto Voy a traer de vuelta esto. En un concepto de datos, necesitas saber dónde
cuesta, este es el elemento, dónde está tu cos en este momento, al que
también podrías enlazar si tiene un elemento anterior
o un elemento siguiente. Con esto en mente,
cada uno de los datos con los que interactúes en
este momento se llama borde. ¿Correcto? Tengámoslo en mente. Tendrías una serie, o debería decir una
lista de borde de libro. Ahora en este ejemplo, están usando un
libro como ejemplo. Si lo repasas y que
quieres deletrear el detalle, hay un tipo llamado libro. Entonces para cada uno de los libros, son para cada uno de los libros, están diciendo, Oye, para la información de la
página de este libro, ¿tiene uno anterior
o tiene uno siguiente? Para que pudieras comprobar el
principio y el final. Creo que esto en realidad lo
deja muy claro chicos. Base podrías reproducir el video. Si soy demasiado rápido, en realidad
podrías ralentizarlo y
si soy demasiado lento, en realidad
podrías
subir la velocidad. Bien, ahora, este detalle
completo, ¿verdad? El borde del libro que
controla el nodo. Recuerda, mencioné
también
nodo mencionado en el concepto de lista de enlaces
dobles aquí, cada uno de estos chicos es un nodo, cada nodo es el elemento, cada elemento con el que estás
interactuando. Al regresar, ¿este nodo
existe o no existe? Necesitas
saber eso, ¿verdad? Ahí estás rastreando la página anterior
y la semana siguiente. Y el CSO lo que estás
usando para rastrear la posición, la posición dentro de
la lista completa de elementos que estás rastreando, déjame traer esto de nuevo Vamos a repasarlo
una vez más. Ahora podríamos tener cientos de datos. Ahora entre cientos de datos, sólo
estoy recogiendo tres elementos. Estoy poniendo mi coso aquí, estoy poniendo mi cos aquí. Este es mi coso de inicio,
este es mi coso final. Ahora bien, esto me está mostrando dónde estoy en el conjunto
completo de datos. Ahora dentro de este conjunto
completo de datos, mi coso de inicio y mi tobillo. Ahora tengo un concepto de, oye, este subconjunto de pierna es apenas
tres, ¿tengo una previa? No. ¿Tengo un próximo? No. Soy capaz de
rastrear los elementos o donde estoy en el elemento
o el nodo por tiempo. El elemento o nodo se puede
usar indistintamente. Creo que esto en realidad
solidifica las cosas chicos. Cuando entramos en el ejemplo de
codificación, esto va a dejar
las cosas muy claras. Por último, ¿cómo se rastrea? ¿Cómo entiende
el gráfico quel el concepto de paginación? Viene a través de este
tipo llamado conexión. Tenemos un concepto
llamado conexión que alberga todos los bordes, todos los bordes y dentro de
cada borde ahora
tienes el nodo o el
elemento que estás rastreando, y la información de la página, que tiene un nido anterior, los inicios y el final Cso En resumen, chicos, ¿cuál es el comienzo conso ¿Cuál
es el fin Cso Usa la Cso inicial y Final para elegir un pedazo de elemento
dentro de un subconjunto completo Y una vez que tienes ese subconjunto, ahora usas tu nido
anterior para saber dónde estás
dentro de ese subconjunto. Espero que esto aclare a estos chicos. Esta es solo nuestra teoría, chicos. Sé que algunas personas simplemente no conectan teoría, lo cual
es genial, ¿verdad? Pensé que debería mencionar esto. Entonces entraremos en ello y en
realidad empezaremos a codificar, ¿verdad? Los veo chicos en el siguiente video.
77. Paginación, parte 1: Bien. No he pasado por esta teoría
la última vez. Necesito mencionar esto, lo cual
es bastante impresionante, ¿verdad? También hay otra manera que podemos
implementar realmente la saginación Pero quiero mostrarte esto. Personalmente,
tendrías una preferencia. Quiero mostrarte este paso
un poco vigoroso primero para la cura de Gap. Ahora, me estoy riendo
porque digo que es un poco vigoroso porque
algunas personas tal vez no solo se conecten con el concepto Porque todo el mundo
quiere tener que
tomar el control de
lo que estás codificando. Entonces en la próxima implementación, mostraré
chicos una forma en que
también podemos usar JPA para
implementar la paginación Quiero mostrarte los
dos lados cualquiera
que sea la manera cómoda de usar Así que más cosas buenas por venir. Vamos a meternos en ello, y comencemos a codificar. Todo bien. He podido
mostrarles cómo es esto. Te he podido
demostrar que he
podido mostrarte en teoría
cómo lo vamos a tener. Ahora vamos a
saltar al código y empecemos a
arreglar las cosas. Ahora bien, lo primero
que van a hacer, les
presento
chicos el concepto de paginación que
mencioné en GraphQL, hay algo Tenemos que incorporar eso
a nuestro PondXML. Ahora esto es muy sencillo. Tendremos
un concepto llamado paginación de
empleados o conexión de empleados, y eso es exactamente lo que
vamos a traer Ahora, recuerden, la
razón por la que tenemos
las cosas arregladas aquí, el momento en que tenemos
las cosas establecidas aquí, significa que estamos tratando de
agregar algo al guión. MemorGuson olvida que estos son todos los detalles que agregas cuando traemos
los escalares ENS porque no estaban
fácilmente disponibles dentro implementación base o
los datos más Lo mismo que
vamos a hacer aquí, vamos a traer por escrito. Vamos a traer
en él es un concepto de empleado empleado, conexión
empleado. ¿Qué es la conexión de los empleados? ¿Qué queremos traer? Ahora, queremos traer
ese concepto de paginación, esa conexión de que hablamos
esa conexión es
proporcionada por GraphQL,
GraphQL dots relay, dots Entonces así es como es
GraphQL, conexión de relé. Ya ves como es muy sencillo. Ahora, si estás
trabajando con Gredo, si estás trabajando con Grado, puedes por qué especificar
tu mapeo de tipos Incluso podrías hacer
algo más increíble. Ahora bien, esto es genérico, pero
si lo miras correctamente, te lleva
mirarlo correctamente, toma en un tipo T. Así que para Grado,
puedes hacer algo como GraphQL, GraphQL, relay Entonces tienes conexión. Después colocando dentro de él el concepto de
conexión de empleados. Así es como lo
vas a tener para la conexión de empleados de GED. Pensé que debería
mencionar para los que van a estar desarrollando
en Gedu que así es
como se especifica porque
este es de tipo C. También podría usar
el tipo genérico, podría funcionar. Esto realmente
funcionaría. De hecho, vamos a ceñirnos a Mave, que realmente desarrollando qué Ahora que traje esto, ¿qué es lo siguiente
que se supone que debes traer? Tenemos que empezar a pensar en
nuestro concepto de
Voy a empezar a pensar
en el concepto de traer la conexión del
empleado, y ¿cómo sería la
conexión del empleado? Bien, así que
trajimos esto. Entonces ahora crearíamos vamos a crear algo
llamado directiva, una directiva. Esa es la gráfica QL Gráfica QLs. Bien, entonces tenemos un
concepto llamado directiva, y lo que queremos traer en este concepto llamado
directiva es agregar es
agregar una anotación
especial, a que me gusta mucho que
ustedes presten atención Probablemente estarás
agregando una directiva de llamadas. Es una directiva, y la
agregamos en la conexión. En la conexión, luego en los objetos. En cualquier objeto.
Ahora, ¿qué es esto? Voy a colocar
en un marcador aquí o voy a colocar en un comentario aquí y
cómo agregas comentarios, puedes agregar comentarios de esta manera. Voy a comentar usando códigos de viaje. Ahora bien, esto es para paginación. Tenga en cuenta que esto
es para paginación. Esto es muy importante, chicos. Esto es muy, muy importante. Esto es para paginación. Si esto no se hace,
si no tienes esto, vas a tener errores. Ahora bien, ¿dónde se sentaría esto? Necesitas saber dónde se sienta. Necesitas acudir a tu entidad. Entonces ve a tu entidad, a la entidad empleada. Al final del día,
¿qué vas a volver? Vas a estar
regresando al empleado, o vas a estar devolviendo
el subcontratado porque esos son los dos detalles con los
que queremos trabajar realmente Quiere ser empleado va a estar
regresando al empleado o básicamente estará regresando el
subcontratado, ¿verdad? Todo bien. Entonces, tengan en cuenta, chicos, esto es muy importante.
Esto es muy importante. Entonces
traerás una réplica de esto, trayendo una réplica de esto. Esta vez sin los implementos pero
este va a ser empleado que coincide
exactamente con el mismo nombre de entidad. Vamos a hacer coincidir este nombre
exasivo de entidad. Por favor, chicos, esto
resultaría en una flecha. Obtendrás la flecha. Si no haces esto, obtienes el error y
el error sería, creo que lo deshice en
alguna parte, solo lo estoy trayendo. Obtienes este error.
El error indica que el empleado de campo no está presente al resolver la ventaja del
empleado. ¿Por qué? Si intentas devolver la DTU del
empleado, recuerda, cuando estés syping
tu conexión
cuando tu conexión está regresando, quiere vincular la gráfica QL,
la entidad gráfica QL, esta entidad,
para seleccionar esta con el tipo que
creaste en tus scripts, que es DGs va a
convertir
realmente para a
convertir
realmente Si no encuentra exactamente
el mismo tipo, resultará en este error. Tenga en cuenta que esto
es muy importante. Sólo voy a poner en otro
comentario y comentario es, estoy agregando esto esto
para la paginación Para la paginación, de lo contrario, se produce
el siguiente error. Adelante y
pruébalo, intenta devolver solo esto sin devolver
esto y verás el error. ¿Por qué no pudo? Probablemente podríamos simplemente traerlo
para que podamos ver exactamente cómo funciona. Ahora bien, la directiva
que trajeron aquí, esta directiva que
agregó entonces entra aquí como el
factor de conexión con este empleado. Vas a decir,
quiero que este sea
mi tipo de devolución por depaginación Cuando consulto tabla de empleados, devuelvo esto como la conexión. Si no encuentra este factor de conexión,
esto se romperá. Obtendrás un error. Estoy
pasando con mucho cuidado Gas Necesito pasar por el video una vez más
y traer esto. Recuerda, también
vamos a estar liberando la fuente. Nosotros teniendo
lo mismo. Voy a entrar aquí. O como título. Vamos a sacarte.
Voy a entrar aquí, traeré el deber. Ahora, ven aquí abajo. Aparente no estoy
implementando esto. Me voy a poner solo subcontratada voy a traer
la conexión artística Por favor, amablemente conozcan a estos chicos. Esto es lo estoy tomando
paso a paso. En el siguiente video, voy
a construir sobre lo que
acabamos de hacer ahora. Los veo en el siguiente video.
78. Paginación, parte 2: Impresionante. Es bueno
tenerlos de vuelta, chicos. Creo que podemos proceder de
donde en realidad nos detuvimos. He podido conectar esto y también he
podido conectar esto, que sería nuestra
salida para la paginación Ahora
pensémoslo. Tenemos que consultar. Cuando estás paginando, los principales activos o la
principal belleza de paginación es que
sabemos pasar algún conjunto de parámetros y si
coincide y si existe, realmente
quieres sacar
esos detalles de tu base
de datos
y regresar a tus y regresar Para empleado, vamos a traer algún conjunto de detalles, por qué vamos
a estar buscando. Recuerda, cuando estás
haciendo una en Quete, siempre
debes ir con entradas. Si vas a
tener parámetros, habrá un conjunto
de datos o lo que sea, un conjunto de datos u objetos, tiene
que ser un Impute Recuerda, discutimos que en videos
anteriores en realidad
estamos haciendo nuestros bits de consulta o cuando
en realidad estamos haciendo el bit de mutación. S cualquier cosa que estés trayendo debe ser un inque si
quieres usarlo, si es un parámetro que
entra en la aplicación,
debe ser una Estamos teniendo imputes de
búsqueda de empleados. Búsqueda de empleados imputes. Bien. Insumos. Creo que esto funciona. Todo bien. Entonces vamos
a tener algunos datos, ¿no? Entonces, vamos a consultar por nombre. Va a ser una cuerda. Consulta vamos a consultar por DOB. Diré que comienza DOB. Entonces DOB empiezan a ser las fechas. Recuerdas lo que realmente
vinculamos esa fecha hass? Por favor no se olviden chicos, fechas lo
mismo que esta aquí, Fechas
locales, ¿verdad? Así que sigo siguiendo
exactamente lo mismo en lo que construimos. Construimos en el último video, así que solo estoy construyendo
sobre lo mismo. Fecha fechas de inicio y fin de fecha de finalización. Significa que queremos buscar
datos con un rango, justo un rango de bits de datos. Entonces vamos a hacer lo
mismo aquí, s está bien. Entonces vamos a
buscar por género. Digamos que queremos
buscar por género. Ahora, por favor, recuerden que
vamos a hacer que todo esto no sea obligatorio. Yo para no ser obligatorio, que en caso de que ninguno
de ellos coincida, todavía
obtengamos algún conjunto de datos, probablemente los primeros diez
o los primeros 20, ¿bien? Después, a continuación, vamos a
consultar por salario. Recuerda, solo estoy tratando de
que esto sea lo más flexible
posible. Puedes consultar por cualquier cosa, cualquier columna que exista en tu base de datos yo sueldo
de, quiero un rango. Al parecer no es diciembre grande, y voy a decir salario también. Sueldo también. ¿Bien? Esto funciona. También usa un decimal grande. Bien, entonces voy a
decir ge, empieza. Entonces usaré un int positivo. Recuerda, si solo
revisas esto correctamente. Entonces si ves edge
es positivo int. Estoy siguiendo la misma
estructura. Diré H fin. Solo quieres establecer, es
lo mismo que de te
, ¿verdad? Lo mismo, pensé
que lo agregas. Terminó, ¿verdad? Entonces esto también es
positivo int, ¿verdad? Entonces, por último, usemos una fila, fila, el papel del empleado. Así que esto es genial, ¿
verdad? Esto es bastante genial. Ahora, creo que esto es
básicamente todo lo que necesitamos, pero voy a agregar
una cosa más aquí, que volvería
a explicar más tarde chicos. Volveré a explicarte esto. Ahora, solo quiero seguir adelante
y terminar todo lo que
tenemos que ver con el escocés para que cuando volvamos, solo
estemos haciendo más implementación
de código Vamos a tener un tipo
llamado paginación de empleados. Por favor, no se confundan, chicos. Este es el Esto
es para el Bien, voy a simplemente seguir adelante
y luego explicar, ¿verdad? Tener conexión con los empleados. Ya ves cómo entra la conexión. Esto parecerá como
si se estuviera rompiendo, pero notas, chicos, no
se está rompiendo. Conexión de empleados. Disbuir. Es una resolución. Pero al igual que no se
reconoce, pero es una resolución. Entonces página Int, ¿verdad? Obligatorio. Vamos
a decir talla. Int. Volveremos a
esto, luego a la página total. Estás familiarizado con la paginación, te darás cuenta de todos los detalles, el uso de la paginación en HTTP
normal, Y por último, voy a
decir elemento total. Esos elementos, debería ser largo porque va
a ser podría ser bastante largo. Ahora, voy a agregar
estos detalles en. No nos preocupamos por estos tipos, pero déjeme
ponerla comentando aquí. Esta será la implementación
para la paginación de JPA. La
pregenación de paginación JPA estará bien. Así que recuerda que estamos tratando de
pasar por el concepto de progenación
gráfica
donde estamos usando la conexión de borde, Esto en realidad
caerá en JPA. Este es el segundo aspecto del
que estoy tratando de hablar. Así que adelante implementar
las primeras partes. Entonces éste para que
todo esté disponible, entonces volveré a explicar esto de
verdad. Bien. Entonces con esto hecho, veamos entonces a
los subcontratados Para externalizar, ¿por qué
quieres consultar? ¿Todo bien? Simplemente pausaré rápidamente el video, y rápidamente traeré eso para que en realidad
no
dediquemos tiempo codificando. Bien. Todo bien. Entonces entrar en realidad, es
lo mismo, ¿verdad? Acabo de agregar lo
mismo, que es la imputa de búsqueda subcontratada, eso es lo mismo que
hicimos por el empleado Pero agregué algo extra. Si miras esto, estoy agregando algo llamado stim putes Este tipo de entrada es básicamente
quiero saber el campo por el que quieres ordenar y la
dirección que queremos ordenar Y esta dirección
definitivamente será una enumeración. Hagámoslo innum Podemos tener dos direcciones podemos
ordenar, yo lo llamaré tipo Dirección. Entonces los dos, que o bien serán
ascendentes o descendentes. Recuerden, estoy usando deliberadamente comercio y no lo uso
porque no importa. Si decides agregarlo,
decides no agregarlo. Quiero demostrar que lo
estás usando o no usarlo no
hace ninguna diferencia. Podrías agregar una lista
de ciertos puts,
es decir, podría
decidir decir que
quiero sofocar con muchos
campos o campos diferentes Por eso lo estoy haciendo
una lista aquí. Para cada uno de ellos, estoy diciendo que también
quiero una dirección
ascendente o descendente, así que en realidad va
a traer todo adentro. Bien, así que hemos podido traer
todos los detalles que necesitamos, ¿verdad, para el guión, verdad? Entonces vamos a construir y empezar a ver cómo
todo se junta. Saben, chicos, si
construyen ahí mismo, esto va a fallar, ¿verdad? Esto básicamente
va a fallar y ¿por qué? Porque recuerden, tenemos esto estamos usando constantes de excavaciones En el momento en que comencemos a construir
o empecemos a compilar, ya no encontrará esto. Entonces de la misma manera, coméntalo. Comentar hacia fuera. No tenemos que hacer esto en producción,
así que no tengas miedo. Es solo con fines
de desarrollo. Pero en el momento en que termines con todo lo que necesitas hacer, entonces simplemente puedes
dejarlo B y básicamente funciona. Sigamos adelante y
construir.vn compilar. Creo que quiero cancelar esto. En primer lugar, sí. Quiero
eliminar la carpeta de destino. Recuerda carpeta de destino,
también nos das algunos problemas. Sí. Yo sólo voy a seguir
adelante, compilo. Espero que esto no se rompa. Todo va
a necesitar ser traído. Se va a hacer realidad,
se va a hacer realidad. Bien, creo que todavía
tenemos algunos detalles. Ahora, estamos diciendo que la referencia
al empleado es ambigua. referencia al empleado
es ambigua porque la referencia,
vamos a arreglar esto Como puedes ver, la razón
es porque tenemos esto en nuestro mapa en YouTube
y nuestro mapper DT no conoce al empleado del
que estás hablando Recuerda, este empleado
es para la entidad, vamos a traerlo entidad, no el de Cogen El de cogen que
añadimos al guión
es para chicos de paginación,
estrictamente paginación Esto va a estar haciendo referencia a
esto internamente. Entonces vamos a seguir adelante y
traerlo para entidad. Todo bien para que las entradas
puedan funcionar en consecuencia. Lo mismo aquí, nuestras
fuentes se quejarán. Estás trayendo
para entidad, ¿verdad? Eso fue lo codificamos
en.TS para entidad. Me alegro de que esto esté
ocurriendo para que podamos ver exactamente en caso de
que tenga este problema, no use uno para cogent Recuerda el que
agregamos en los scripts
que en realidad está componiendo
bycgents para la paginación Lo estoy estresando para que no me pierdan los puntos. Todo bien. Ahora traje esto. No creo que nada
deba romperse de nuevo. También tenemos un establo poblar. Vamos a arreglar rápidamente ese
establo poblado.Esto también se queja.
Esto es para entidad. Entidad, cualquiera
que otra otra vez. Esto es para entidad. Entidad. Bien, así que
esto se ha aclarado. Entonces cancelemos,
saquemos esto y construyamos una vez más. Estoy seguro de que ahora deberíamos estar bien. Compilar VN. Eso está
pasando por compilar VN. Estaba tratando de compilar
todos los detalles. ¿Tenemos algún error? ¿Nosotros? No, no tenemos ningún error. Impresionante, chicos, los
veré en el siguiente video.
79. Paginación, parte 3: Hola, chicos, genial
tenerlos de vuelta. Recuerda, en realidad
construimos la última parte. Hicimos un MBN
compilar este campo, solo
estoy tratando de
resaltar lo que pasó en el último video
este campo porque ahora
hemos agregado en
algunos detalles extra, que es que agregamos algo
llamado el empleado nuevamente La aplicación no sabe. Nos estamos refiriendo a la
entidad o refiriéndonos a esto, tenemos que especificar
para la entidad. Si bien esto es estrictamente
para paginación, también
es estrictamente
para paginación Estos tipos obtienen la diferencia. Esa es la diferencia,
chicos, no la mezclen. Y somos capaces de compilar. Recuerda encomiar esto para que podamos
compilar sin éxito Voy a traer todo esto de nuevo. ¿Verdad? Por compacto, por lo que ya no debería romperse. Impresionante. Impresionante. Entonces ahora
tenemos todo esto hecho. Creo que es genial y ya es hora de
que empecemos a
marchar las cosas Impresionante, chicos. Impresionante. Entonces ahora, ¿cómo quiero comenzar? Ya hemos traído
todos los componentes que necesitamos. Trajimos todos los
componentes que necesitamos. Creo que ya es hora de
que entonces
traemos cosas. ¿Qué es lo siguiente?
Automáticamente, recuerda, tenemos que actualizar nuestra consulta. La consulta es lo que usamos porque aparentemente la
paginación es una consulta, por lo que necesitamos actualizar nuestra Seguro que entiendes a
los chicos del paso. Hagamos un desglose
desde el principio. En primer lugar, agregué esto en, para que la conexión de los empleados entienda qué
paginación lo que significa Eso en realidad se juega aquí. Cuando agregamos estos bits de paginación donde está la conexión del empleado Esta conexión de empleado
no entiende qué
conexión es, por lo que debe verificar a través
y el mapeo
será este relé
porque esto es lo que almacena la entidad o los
detalles o los nodos o el borde como GAF care lo
llama a los clientes Esto es lo que en realidad lo
vincula. También mencioné específicamente que esto debería ser para
la paginación de JPA Vamos a hacer la paginación de cuidado
GF, que va a funcionar y además queremos mostrarte
otro que es el GPA tuvo que escribir rápidamente todos los guiones que tengamos todo adentro Entonces dejo un
concepto llamado directriz directa es
una parte de la conexión que
utilizamos para la paginación Hay que especificarlo
sobre los elementos de, hay que
especificar en el tipo. Desea regresar a través de
sus puntos finales o a través su gráfica Q a
su servicio a través de la
clave gráfica a sus clientes Por eso ves que creé estos bits y agregué esto en. Si bien este empleado es diferente de la
entidad, sin
embargo, sigue exactamente
el mismo modelo, lo mismo que necesitamos que
parece que parece
una réplica de la entidad. Pero esto es lo que vamos a
utilizar para la paginación. Impresionante. También para externalizar,
hicimos lo mismo Entonces agregamos en la búsqueda
impute aquí vamos a estar usando también agregado en
búsqueda impute ¿Verdad? Bien.
Entonces con esto hecho, ya
hemos podido
hacer todo esto. Vamos a agregar en las
consultas serán necesarias, ¿
verdad?
Serán necesarias las consultas. Entonces voy a decir paginación de
empleados, paginación empleados Voy a usar la búsqueda de casos de
palabras clave, que estará disponible
y traeré entradas
de búsqueda de empleados. Insumos de búsqueda de empleados,
voy a estar tomando en la página, que será Int, ¿verdad? Y estoy tomando en talla
talla, que también es int. Ahora bien, ¿qué significa página? Quiero un medio de talla.
Cuando estés desplazándote, solo piensa en ello
como un libro, ¿verdad Estás pasando por una
cada página tiene un número. Cada página tiene un número, y en cada página
tienes algunos contenidos. Lo mismo funciona
aquí cuando estás desplazándote por el
concepto de paginación Esta página es ¿qué número de
página soy? Estás viendo todos tus
datos o lista completa como un libro o como una lista
o algunos elementos, estás desplazándote por ellos. Para cada página que obtienes
por lo que necesitas saber el número de página y el tamaño total que
deseas obtener en esa página. Estoy seguro de que en realidad
ese concepto realmente funciona ese concepto
realmente funciona. Con esto, entonces estaremos
regresando la paginación de los empleados. ¿Verdad? Ahora bien, este es el segundo
bit que estaremos implementando. El primero, que es
el predeterminado para la gráfica QL, es lo que vamos a hacer
aquí, que externalizó ¿Llamarlo subcontratado? Paginación. Los estoy usando como dos ejemplos diferentes
así que veremos cómo funciona. Ahora bien, esto también
tendrá un concepto de búsqueda
porque queremos buscar. Estoy buscando por subcontratar imputes de
búsqueda. Fresco. Entonces abrazará el concepto
del primer elemento. Recuerden que hablamos de elementos
anteriores, siguiente elemento, los últimos elementos. Esto exactamente será
modelar a través. Tienes el primero en ser un int. Entonces tenemos después, que
debería ser una cadena. Entonces tenemos concepto de último,
que debería ser la tinta. Tienes el concepto de
antes, ser una cuerda. Concepto ante una cadena.
¿Debería ser ethani qué? Conexión subcontratada. En caso de que Beanian
subcontratara la conexión. Vaya, creo que no creé
esa conexión subcontratada. Conexión externa.
Básicamente tenemos que traer esto y
veremos venir a Dialy Recuerde, el concepto es conexión
subcontratada.
No te preocupes por esto. el momento
en que realmente implemente, identificará esta conexión
subcontratada, lo que en realidad estamos
tratando de sacar automáticamente Os voy a mostrar chicos
en el próximo video. Bien. Entonces tenemos las cosas
básicamente establecidas, creo que luego puedes
entrar en esto a la API y llamemos a este controlador de
paginación El controlador de donación, sigue a través
de los mismos detalles. Sólo voy a robar esto. Voy a robar esto en. Bien. De hecho
tenemos esto en. Ese es el primer paso.
Ese es el primer paso. Entonces estaremos tomando todo de la externalización patronal Al parecer, esa es la guía que
contendrá todo lo final empleado final externalizado Entonces los
servicios de origen de empleados de servicio sean el tipo
que traiga esto. Ahora, ya que hemos construido, estoy seguro de que en realidad
podemos cablear las cosas. Vamos a conectarlo. Recuerda mi favorito
un esquema de mapeo. Un mapeo de esquema. Entonces
tenemos un nombre tipo. Un tipo serán constantes de excavaciones. Ese es el tipo de consulta. Impresionante. Entonces voy a tener un campo
y cava constante. Esa es una consulta que es empleado de
paginación de empleados. Paginación de empleados.
No me compraron esto en. Vamos a
crear este concepto. Esto estaría reflejado a estos chicos. Esto va a
estar espejando esto Lo que realmente creamos aquí, esto va a reflejar esto Reflejar esto. Esto
sería capaz de ver realmente, queremos este tipo
quiero el nombre. Eso va a entrar.
Voy a ser construido en un segundo. Vamos a entrar aquí. Esta es la primera parte y
esto sería un concepto de paginación de empleados públicos Paginación de empleados. Después paginación de empleados. Eso es genial. Entonces vamos a traer en el entorno de
obtención de datos Esto es importante, chicos.
Hay que incluir esto. Hay que incluir
esto al lado. Tienes que incluir esto lo siento, creo que lo entiendo correctamente.
Sí, eso estaría dentro. Tenemos que llevarlo a la
par de sus argumentos. Después a las discusiones.
Argumento, luego valor. Recuerda, esto es opcional,
pero puedes colocarlo en. Si no lo colocas, tu variable num tiene
que coincidir exactamente. Voy a usar el concepto de opcional.
También podríamos usar opcional. Quiero mostrarte que
podríamos usar opcional, pero esto va
a ser opcional, pero va a ser un empleado. Búsqueda de empleados impute. Empleado senchiput. Voy a
llamarlo Búsqueda imputa. Búsqueda imputada. Bien. A continuación, y voy a
traer el siguiente argumento. Va a ser una página.
También es opcional. En el momento en que has hecho
esto, no necesitas hacer el siguiente entero, la página. Bien. Por último,
concepto de argumentos artísticos. Ser un concepto de tamaño, derecho, que también será
un tamaño entero, ¿verdad? Esto, básicamente, si
revisas coincide con esto. ¿Esto tiene sentido, chicos? Esto en realidad coincide con
esto. ¿Todo bien? Entonces esto en realidad coincide con esto. Entonces es por eso que en realidad somos
capaces de ver esto, ¿verdad? Entonces esto es chicos bastante chulos. Entonces esto ya coincide con esto. Muy bien, entonces este es un paso. Voy a devolver
nulo por ahora. Devolver null por ahora, ¿verdad? Y los veré chicos
en el siguiente video.
80. Paginación, parte 4: Oigan, chicos, genial
tenerlos de vuelta. He seguido adelante para reconstruir, así que esto ya está bien, ¿
verdad? Esto ahora está bien. Recuerden, sí reconstruimos
antes en el último video, no
construimos el último
video que quería decir. Al reconstruir después de escribir
esto y luego reconstruirlo, esto
realmente pudo localizarlo Así que básicamente podríamos ver esto ahora paginación de empleados Eso está bien. Eres capaz de traer cosas.
Podríamos ser curiosos. ¿Cómo se ve la
paginación de los empleados? Rápidamente vayamos
a verlo e inspeccionarlo. Entonces comprobamos esto, vamos a
comprobarme la paginación de empleados. Ves que tienes un
concepto de conexión, y esto se ve como
un tipo de conexión de relé
gráfico.
¿De dónde viene? Recuerda que lo especificamos diciendo que conexión de los
empleados
debería ser esta. Si ves la conexión del empleado, hazla de tipo conexión, y ese es el mismo mapeo
que realmente se hizo aquí. Eso es mapeo. Las
conexiones de empleados de tipo esto. Por favor chico, así es
como se junta. Entonces te voy a mostrar una vez más, recuerda que teníamos esto, Esto no
sabía dónde encontrarlo. Pero al usar el mapeo de tipos que tiene
este mapeo de tipo, podemos
conectarlo entre sí. Quiero ser de conexión de
relé Graph, y que seamos capaces de resolver. Bien, ¿y las otras partes? Que en realidad lo hicimos, recuerden, también
hicimos tipo de imputas de búsqueda de
empleados Entonces estás disparado para
encontrarlo ahí y todo tiene un constructor si
quieres usar el constructor, todo tiene un
constructor que viene por defecto para
ti. Todo bien. Dicho esto, creo que esto es bastante
genial y
luego podemos proceder con
nuestra implementación. Impresionante. Voy a aclarar esto para que podamos continuar
con donde paramos. Así que poder traer esto. Recuerda que esta es
la segunda vez. Estoy estresando a estos tipos,
por favor no se confundan. Vamos a hacer la paginación Q gráfica
normal
y paginación JPA Encuentro la paginación JP
bastante más simple, pero bastante similar porque
tengo el control total Pero para los kios gráficos
alguien podría decir, no
me agarro completamente esto, es
decir voy
a implementar ambos Este es el primer paso, pero todavía no
vamos a
tocar esto. Voy a centrarme
en la segunda parte y ver cómo funciona. Conocí a algunos tipos que
probablemente podrían encontrar esto
mucho más simple. Cualquiera que funcione
para ustedes, chicos. Voy a vender
esquema y mi apelación. El mismo
nombre de tipo lógico, tenemos DGS. La constante DGs debe ser un tipo
quivtypequv o disco. Un tipo quiv, entonces
tenemos el campo, que sería dgs constante, y vamos a
traer en consulta, y vamos a traer
en conexión subcontratada Paginación tercerizada, paginación tercerizada, paginación subcontratada
. Eso lo vamos a ver en un rato. Entonces debería ser conexión
pública. Así es como funciona, chicos.
Aquí es donde entra. Esta es la pieza que falta,
cómo usar la conexión. Conexión. Entonces estaremos
afinando de tipo lo que externalizó Esto tiene sentido. Entonces llámalo paginación
subcontratada. Paginación ahora a los
parámetros, a los parámetros. Ahora, probamos para igualar. Vamos a traer en el entorno de obtención de
datos. Esto es muy importante, chicos. Entorno de obtención de datos,
el primer paso. Segundo, argumentos.
¿Qué estamos espejando Creo que tenemos que mostrar esto aquí
porque
en realidad no se vuelve confuso. Entonces esto es lo que
estamos reflejando aquí. ¿Qué traje esta consulta? Sí. Eso es lo que
estamos espejando Entonces trajimos
nuestra suraginación. Tenemos que rellenar todos
estos datos, ¿verdad? Entonces primer detalle,
déjame traer esto y sacar esto para que
podamos ver uno al lado del otro. Primer detalle, quiero de búsqueda de
valor. Búsqueda de valor. ¿Mecanografiar? Bien. Búsqueda de valor. Entonces seré opcional. Quiero ser opcional ahora.
¿Qué estoy haciendo opcional? Para que en caso de
que no exista, todavía
podremos sacar algunos detalles
geniales de ello, ¿verdad? Aún puedes paginar en él. Recuerda, tiene que ser opcional. Esa es toda la
idea aquí, ¿verdad? Entonces tenemos nuestras imputas
de búsqueda de fuentes. Bien, esto es genial.
Yo lo llamaré imput ¿Imputa? Un argumento. Recuerda que el argumento
tiene valor de nombre, me apegaré al
nombre, a tu elección
, lo que quieras
traerlo como se le llama primero Voy a llamarlo primero,
que es un entero. Entero primero, genial.
Esto es bastante agradable. Auto completa, pero esto no
es lo que quiero. Voy a traerlo hacia abajo. Yo me lo saltaría aquí
para que sepas que es lo mismo. Voy a usar el tipo último. Este tipo dura. Escriba
el último. Después en tament. Cuál es la siguiente cadena. Cadena para este tipo, que es después y antes,
justo después y antes. Después creo que será
mejor para después de todos modos, lo que funcione,
luego cadena antes ¿Ves? De inmediato
terminamos esto surgió. Esto surgió, tal vez lo
completó. Voy a mover esto al grifo. Mi a vino solo quiero
traer esto antes de esto. Entonces esto funciona. Pueden ver chicos, esto es bastante simple, en realidad hemos
podido traer esto. Esto
es bastante genial. Esto es bastante genial. Ahora ya ves cómo se conecta. Bien convirtiendo fuente de tipo apagando una conexión
fuera de tipo fuente. Aquí es donde
entra, ¿verdad? No sabe qué es esto, pero por qué estamos haciendo
esto ahora puede inferir, puedo inferir. Esto
es realmente genial. Podría decirse, cuál es
la diferencia entre
esto y la paginación de los empleados La diferencia es que esto está
dentro de una clase o un tipo. Nunca voy a inferir de dónde viene
esto. Por eso
entramos a agregarlo aquí. Por eso lo
agregamos aquí, esta conexión de relé GAF Q Yo sólo quería
mostrarles una diferencia, chicos. ¿Bien? Porque está dentro de esto así que no
sabes cómo atar. Pero esta es solo la respuesta. Ahora diga, ¿cuál es la respuesta? El argumento es una cosa
importante que coincide y por eso
pude inferir Ahora estoy diciendo que
me des una conexión tipo. Dame una conexión
de tipo tercerizar. Creo que hemos podido
hacer esto con éxito. ¿Qué regresamos
aquí? ¿Muy cool? Simplemente diga regreso, regreso, empleados luego punto
externalizar búsqueda Búsqueda de activos. Esta la vamos
a traer. Traeremos el imput. Voy a traer en entornos de
obtención de datos. Te va a encontrar tan increíble ¿por qué? ¿Por qué lo encontrarías increíble? Tu hijo es porque
te darías cuenta que no usaría esto en absoluto. Pero internamente, internamente,
lo que les mostré chicos, documentación de
Asgardi, déjame ver si
todavía puedo sacarlo Lo que les mostré a ustedes
Asgard
es documentación, aún así
podrá inferirlo T seguirá siendo capaz de
inferirlo, ¿verdad? Y en el siguiente video,
continuaría. Los veo chicos en el siguiente video.
81. Paginación, parte 5: Bien, volvamos a
la documentación. Alguien podría
hacerme una pregunta. Y la pregunta
será, pensé que dijiste que deberíamos usar tiene
anterior, así como esto. Debería ser tiene
anterior H siguiente, tiene cursor. ¿Qué significa esto? ¿Significa que tenemos que hacer esto? No, no tenemos que hacerlo. Ahora bien, si lees
atentamente
la documentación , mira lo que dice. Dice, para tener conexión generador Ty,
configurar lo siguiente. Esto se ha hecho por ti
en springbot automáticamente. Automáticamente dije esto agregará la siguiente definición
de tipo. Dijo lo anterior se sumará. No decía que
hay que implementar. Dije lo anterior se sumará. Entonces internamente, esto debería
generarse para que puedas igualar. Entonces, ¿cuál es su responsabilidad? Tu responsabilidad es
ahora usar este tipo de consulta. ¿Entiende ahora
lo que le estoy trayendo? El tipo quavy debe
ser de tipo primero, que es de int, después de
lo cual es string, last, que es int y antes cual es string.
Mira la definición. Usted especifica primero y después argumentos para los clientes de
embarazo hacia adelante para
los primeros entens de una consola
dada por qué el último y antes
argumento hacia atrás, para el último para un CsoEquiendo
dado la última consola que corresponde exactamente
a esta misma cosa,
la anterior, la siguiente, la coso de inicio y
la La regla es que implementes esto, implementa el tipo
que quieras, estamos implementando la externalización
patronal En nuestro propio caso, agregarle el bit de
conexión. Una vez que lo hayas hecho, es por
eso que es capaz de reconocer
una conexión estrecha. En el momento en que
hayas terminado con eso,
cuando estés cuaing asegurarte
de usar este formato, estará buscándolo buscará esta estructura primero
tras último Sinceramente espero que esto
realmente tenga sentido, chicos. Por eso te das
cuenta dentro de esto, si entras aquí, estamos usando primero tras
último y antes. Así se relacionan. En el momento en que hayamos hecho
esto internamente, sería capaz de ver, Bien, te vas de tipo
conexión. Bastante genial. Te voy a dar la pagina info. ¿Puedes ver cuál
tiene inicio curso o final anterior y como página? Esto es lo que obtendrás. Te he mostrado con
la documentación por qué necesitas
usar realmente este nombre exacto. De hecho podría cambiar, podría decidir no usar la imagen que puse en esto
aquí no está en la mayoría, realidad
haces
esto y primero, lo llamas de otra manera. Pero esto porque no estoy
usando el tipo de valor, en realidad
estoy haciendo
esto último antes y se
debe seguir el nombre exacto. Esta es la diferencia, chicos, Ogther así es como
se unen Debes entender
este concepto. No es tu lugar. Para implementar realmente
esto excepto que quieres crear tu propia
cura gráfica desde cero,
lo cual está bien. Pero no creo que
quieras hacer eso
quieres pararte en el
hombro de gigantes. Ahora la regla es que dice en el momento en que tienes la conexión
tipo, y esto se ha definido, lo cual se hace automáticamente para ti porque
hice botas de resorte, bota de
resorte auto
configure para ti. Esto agregará lo siguiente
para agregar lo siguiente. De lo que eres
responsable es agregar esto y asegurar que tu
conexión de libro esté realmente relacionada, lo cual es de conexión tabú ¿Cómo sabemos que es
una conexión tabú? Si notas no lo dijimos
explícitamente, más bien, dijimos que quiero que mi empleado sea
de conexión tabú y le di una conexión Esto en realidad se traduciría en
una conexión con los empleados. Estoy diciendo, oye, también
quiero que esto sea de tipo conexión y que
seamos capaces de lograr. Espero que esto quede muy claro, chicos. Me estoy tomando mi tiempo para explicar este meollo arenoso para que
lo entiendas Por favor, vuelva a ver el video para que pueda ver cómo se unen Por favor tenga en cuenta, no
voy a usar a estos chicos. No lo voy a usar. marcar esas palabras. Quiero
terminar de implementar. Ves que las cosas seguirán
funcionando por defecto porque para inferirlo una vez que entran, los datos están entrando, dice, Oh, tienes este elemento coincidente Impresionante. Yo entro y luego hago todos los
ataúdes mágicos anteriores ¿Es el inicio neto así que el
último CSO o el CSO final? Por favor, esto es muy
importante, chicos. Todo bien. Hemos hecho todo lo que se requiere. Solo entremos y
solo implementemos esto. Eso es básicamente todo
lo que queda. Eso te parece muy interesante, te parece interesante, sí, también
me parece interesante. Yo sólo voy a entrar. Y crea
este método, increíble. Esto ha sido creado para nosotros. Impresionante. Esto ha sido creado. Nos está dando la
conexión de type code gen, lo cual es bastante correcto, ¿verdad? Que básicamente está entrando. No, no quiero esto. Esto sería un gran error
si realmente perseguimos esto. ¿De dónde
vendrá el error? Recuerda, lo que
queremos devolver es entidad, quieres devolver la
entidad, no me confundo. Es la entidad que
ha entrado aquí, la entidad que
va a salir. Pero internamente,
sería capaz de inferir, entonces conectaría
Esto lo que estamos trayendo en esto estás
trayendo, ¿verdad Esto es lo que está entrando, pero cuando se está
volviendo al cliente, este tipo va a ser nuestro objeto que va a volver porque
él es la conexión aquí. Por favor, no lo mezcles. Vamos a entrar y poner en práctica esto. Podemos seguir adelante e
implementar esto. Recuerden, aquí tenemos
varias cosas. Tenemos el aguijón y
el s y los gustos. Les voy a enseñar a ustedes
cómo usar cada uno de ellos. Vamos a entrar. Recuerda
que es opcional. Sólo voy a decir si por
entrada la búsqueda está
presente. Haz algo. Si no está presente, al parecer no
pasamos en ningún detalle. Entonces, si no está presente, vamos
a darle un detalle por defecto. Voy a decir un
reposito de origen no eliminar. Asurceposit Fino FinDO ahora,
FinDO toma todos estos parámetros
adicionales porque implementamos la especificación JPA y JPA. Todos estos vienen
de la especificación GPA. Tenga en cuenta que los chicos vienen
de GP specisfiction. Podrías meterte dentro
Vamos con estos tipos. Simplemente te lo mostraré rápidamente porque necesitas saber qué estás usando y por qué lo
estás usando. ¿Ves? Encuentra tex en
especificación especificación, encuentra todas las tomas y
toma paginación Esto será también
toma un tex en texto de progenación de especificaciones
Esta lata es
spec Entonces si ahora vamos al repositorio de
JPA y
buscamos encontrar ¿bien? Busquemos encontrar, encontrar justo donde te sientas que
vaya a paginación y seguro Vayamos a paginación y satinado, pagensatin paginación y cierta
epsture Tienes que adentrarte en estas implementaciones de JPA para saber exactamente
lo que necesitas Estoy diciendo que si no me
proporcionas ninguna especificación, te
voy a dar
el primer elemento. Eso es lo que voy
a hacer porque no
quiero que pongas en
cola mi base de datos, también que mis aplicaciones. Yo solo voy a seguir adelante
y darte el
primero , page request stuff. Así es como se
corta el pagable. Paginable será una solicitud de página
a página. Punto apagado. Alguien podría
estar interesado en esto. Vamos a
sacar esto para que veas tipo
Gon de una persona cero, luego diez, que es el número de
página en este. Entonces puedes ver,
echa un vistazo a esto. Esto también puede tomar
un SOT ahora mismo, digamos, dirección SOTs. Puntos, un fregadero. Hagamos un fregadero aquí, ¿verdad? Un fregadero. Es una estadística Entonces, ¿por qué clasificamos? Tenemos que decirte por
qué estamos clasificando. Entonces voy a ordenar por el ID UU. Recuerda,
esa es la identificación. Estamos usando UID aquí. Entonces voy a ordenar por UID. Entonces lo que voy a hacer
es que voy a
llamar a esto quiero hacer esto genérico pero lo voy a
colocar aquí por ahora. Entonces solo diré UUID. Voy a
externalizar esto más tarde. Así U ID. Entonces, si
revisas vi en tipo, ¿ves? Es de solicitud de página, ¿verdad? Esto es de solicitud de página. Y como es de
tipo solicitud de página, si lo revisas,
solo un minuto. Entonces esta es solicitud de página. Ahora, si profundizas,
entremos en el tipo Solicitud de página. Mira Página solicitud
extep como solicitud de página. Verás, implementa pagable. Así que básicamente podría decir, así que la solicitud de página también
es pagable Recuerden, la relación A, bien, porque está implementada. También podría decir,
esto es un pagable. También podría decir que esto
es un pagable, ¿verdad? Porque si lo
miras, lo que está
esperando es un paginable Veamos esto.
Fijación de una página. Esto es de typede podría decir esto pgquts de tipo pagable.
Es lo mismo chicos. Tenga en cuenta que solo está
usando la relación Es. Este video se está haciendo muy largo. Déjame completar esto. Volveré en el siguiente
video para realmente h esto abajo. Tenemos esto.
Vamos a ensartar a través de la cuerda, las herramientas. Tenemos esto ya
acaba de llamar a esto resultados. Los veré chicos
en el siguiente video.
82. Paginación, parte 6: Oigan, chicos, es bueno
tenerlos de vuelta. No completamos la
última implementación. Nosotros somos capaces de hacer
esto. Recuerda, necesitamos devolver el
tipo de conexión. Ahora, hay un simple hay una clase simple
que nos dio código, conexión
simple, conexión
simple. Esta sencilla conexión
toma un tipo de datos de lista, va a pasar en
resultados, lo cual está bien. Dot get.Aquí es donde nuestro
entorno de obtención de datos viene en ganancias, esto se infiere, esto siempre
está disponible
en el contexto, y eso es lo que
estamos Puedes ver si revisas
la implementación, ves que este
tipo sencillo implementa esto. Si quieres ir, si
quieres entrar, veo que implementa
la conexión, implementa la conexión. Chicos, así es como
se junta. Ya terminamos con el primer bit. ¿Qué pasa con los segundos bits?
¿Y si está presente? ¿Y si está presente?
¿Qué quieres hacer? Entonces vamos a hacer, vamos a tener
algo que se llama una especificación UT, que va a ser una clase de
utilidad que va a tomar voy a
decir pero órdenes SOT. Ordenar recuerda que
pasamos en detalles SOT. Les voy a mostrar
chicos en un minuto. Entonces voy a decir imputes consiguen SOT. ¿Correcto? Espero que esto
devuelva una especie de lista. Los SAT bastante ordenan con las
clases SAT ordenan. Espero que esto
devuelva esto voy a llamar a estas órdenes. Derecha. Alguien podría decir, ¿Cuál es
esta orden del SAT? Vamos. Recuerden a estos chicos
lo que implementamos, que se puede encontrar aquí. Vayamos a lo largo de la salsa. ¿Recuerdas a estos tipos? Esto
imputa dirección suave Sí, estamos entendiendo
la dirección en la
que estamos diciendo que podrías agregarle múltiples
campos, ¿verdad? Entonces si los campos de propina que le
estamos agregando, Oye, quiero que ordenes
ascendentemente, esta descendente. Por eso
te estoy dando esto como una lista aquí. Podrías tenerlo como lista
en caso de que quieras ordenar por ciertas columnas en tu base de datos, así que para eso
es para lo que sirve. Entonces entiende el caso de uso, sé exactamente cómo
Field significa cualquier campo, tiene
que ser un campo válido. Dale un campo que
no existe, realidad
te
va a dar un error, ¿verdad? La columna debe existir. La columna
definitivamente debe existir. Ahora que realmente he podido
proporcionar eso,
sigamos adelante y
creemos nuestra especificación. Vamos a crear
nuestro Spec UT, nuestro Specut. Para eso, ya que estamos
haciendo una búsqueda, estamos haciendo una búsqueda,
voy a llamar a esta búsqueda. Dentro de la búsqueda, voy
a proporcionar nuestra especificación UT ahora, si notas correctamente
nuestro sello especular, vamos a convertirlo en un
plus final porque
solo podría llamarse Cuando tienes una clase final,
al parecer, ya sabes, una clase final nunca debería ser nunca
debería ser
nunca debería tener un constructor. Entonces el constructor, si
intentas llamar a este constructor, voy a lanzar un
nuevo, esto está bien. Pierna decir tiempo de ejecución
solo nuevo tiempo de ejecución. Ti sesion, esto es clase
ilitica, ¿verdad? No se pueden hojas instantáneas. Digamos, no se pueden
instalar hojas. No se puede
enfundar instantáneamente. Es obras. Por lo que no se pueden instalar hojas. Entonces, para esto, voy a mostrar mis órdenes de cama, ¿
verdad? Mis órdenes. Entonces para esto, voy
a decir estática pública. Estática la lista. Recuerda lo mismo spect. SOT, Orden de puntos. SOT, sí. SOT, sí. Orden de puntos, sí. Ese eres tú vienes de la lista. Todo bien. Diré órdenes de
Bud SOT. Recuerda que ese es exactamente
el nombre de este nombre aquí. Pero orden de sal, ¿verdad?
Orden de clasificación Bew Toma en una lista
de imputas SOT. Imputa sal. Yo lo
llamaré imputas de sal Eso es lo que se necesita.
Ahora, voy a decir, si esto es nulo o está vacío porque podría ser
nulo y podría estar vacío. Si es nulo o está vacío,
solo quiero devolver
una lista vacía, solo lo devuelvo collectis
esa lista vacía Eso es todo lo que tenemos que hacer aquí. Entonces si no es eso, así que vamos a transmitir. Entonces haz esto, stream también
podrías usar un bucle de
cuatro, funciona. Voy a mapear. Vamos
a mapearlo a cada fuente. Voy a mapearlo a esto para
que en realidad sea
corresponsal. Llámalo SRT Entonces dentro de esto, quiero decir que mi punto SRT obtiene dirección, nosotros obtenemos dirección, punto es igual Voy a verificar
si la dirección es igual a la
dirección de ordenación ascendente. Si es lo mismo, apuesta esto más apuesta esto. Estoy
seguro de que entiende esto. Estoy usando diez Ayoperator
voy a necesitar una especie AC. Ahora bien, ¿cuál es la propiedad? Recuerda, dijiste la propiedad
más específica
que estás pasando. ¿Cuál es la propiedad por la que
quieres ordenar realmente? Voy a decir del mismo tipo recuerda que pasamos en
algunos atributos. Estás pasando algunos atributos, va a ser SRT ¿Qué estoy haciendo mal? No se supone que sea
capaz de ver esto. A ver. Oh, bien, esto está cubriendo
esto. Esto no es lo que quiero. Por último, SLT, los puntos consiguen campo. Creo que tiene sentido ahora. Entonces aquí, si no está disponible
o si es descendente, voy a decir SOT,
puntos, o puntos descendentes Entonces todo esto, el
ver, esto funciona. Entonces todo junto, ¿verdad? Entonces voy a
volver a la lista. Impresionante. Impresionante. Se
puede ver cómo funciona esto. ¿Qué hice? Déjame
formatear esto correctamente. Vamos a formatear esto correctamente. Permítame hacer que esto
traiga esta nueva línea y lleve esto a una nueva línea. ¿Qué hice? Todo lo que
hice fue hacer streaming a través de esto Recuerda, ya
proporcionamos esto en nuestro gráfico QLs ya campo y así dirección
podrías verificar Lo mostré antes. Entonces sólo
estoy revisando. Si la dirección que
proporcionamos es ascendente, esa es la dirección suave que
proporcionamos en num para proporcionar um
para esa dirección. Está ascendiendo. Usa esto
ahora mira esto. Esto viene de
donde viene esto dominio de datos
del
marco de primavera de primavera. Esto no es de nuestra gráfica Qs. Si es ascendente ASC, ASM ascendente, entonces
pon ahí el campo Si está descendiendo o ponlo. Sólo estamos tratando de
ver la dirección establecida. Eso es todo lo que tenemos que
hacer aquí chicos. Cuando volvamos aquí, entonces
puedes conectarlo por cable. Impresionante. Se puede ver que esto funciona. Esto funciona de manera apropiada. Bien chicos, creo que esto ha sido bastante perspicaz Creo que entonces podemos
entrar y luego terminar nuestra implementación. Ahora tenemos esto, no lo es. Con esto, ahora tenemos esto. Vamos a resumir rápidamente termino antes de que este video
realmente se alargue demasiado. Ahora obtenemos nuestro punto de
depósito externalizado find Final,
entonces, recuerda, nuestros FinDots en detalles,
¿cuáles queremos usar? Voy a usar algunos
ciertos detalles, los cuales solo les voy a mostrar
ahora mismo diciendo subcontratar externalizar,
punto, Bud, subcontratar params de búsqueda
subcontratados Ahora vas a
encontrar esto interesante. Esto no es nada complicado, y te voy a mostrar por qué se consiguen
los puntos imputes Solo estoy dibujando un
método estático para poder luego
ver si cada uno de los parámetros realmente existe o no. Eso es
lo que voy a hacer aquí. Entonces si es así voy
a pasar en los tipos puntos por los demás. Esto es lo que estoy regresando aquí. Voy a devolver a este tipo. Si está disponible o no disponible. ¿Con qué se correlaciona esto? En realidad se
correlaciona con nuestra especificación, especificación y fuente.
Esto es lo que estoy usando. Aquí es donde
ahora vamos a aprovechar el poder de la especificación de GPA Esto va a ser interesante.
Es muy interesante. Por favor habla conmigo el siguiente
video vamos a completar esto. Lo que voy a
hacer finalmente,
sólo voy a volver a
externalizar aquí Tercerizar. Ahora
llama a esto resultados. Esto es lo que vamos a estar regresando
va a estar regresando esto. Los veré chicos
en el siguiente video.
83. Paginación, parte 7: Oigan, chicos, es bueno
tenerlos de vuelta. Todo bien. De hecho empezamos con algo
muy interesante. Mientras estamos haciendo la
búsqueda, les mostré a
ustedes cómo devolver
esto rápidamente si esto no está presente. Ves que estamos usando
la conexión más simple y esto fue realmente genial. Ahora, te mostré
cómo la solicitud de página también
es de tipoageable Nosotros ginebra y podemos
ver esto y estamos en
condiciones de verificar. También es tipo paginable.
Por eso podría traer aquí depagable Si usa el hallazgo
y el hallazgo que
proviene del texto JPA Potry
en la paginable, y es por eso que
podemos hacer esto y esto Estás diciendo, si no damos ninguna búsqueda put, dame esto. Recuerdo que esto es opcional,
bien, así que dame esto. Y por eso
si notas de cerca, si miras esto,
quiero notarlo de cerca, no
hice nada
de esto obligatorio. Entonces ahora para esto, estoy diciendo dame
una lista de Imputs Creo que debería estar
bien. Ni siquiera debería haber hecho esto
obligatorio, está bien. Procedamos si
nos da un error o lo movemos. ¿Bien? Entonces y luego volviendo aquí, lo
veo para completar
ahora entrando y
creé algo llamado
el orden de clasificación B, y esto es muy simple. Todo lo que digo es que estoy
pasando si está vacío, dame una lista vacía. Si no está vacío, solo entre, verifique la dirección, luego
verifique si es igual a esto. Después usa la implementación
desde el dominio de primavera, y comprueba si esta ascendente, obtén el ascenso y obtén el
campo por el que quieres ordenar Si la mayoría de lo demás obtienes un error, de lo contrario
obtienes descendente, en realidad usas ruta
descendente, y así es como lo hicimos aquí y
realmente somos capaces de redn esto Estamos en condiciones de implementar
esto ahora estamos en esto. Ahora para esto, ahora queremos
usar la especificación JPA. Nosotros una vez con especificación GPS. Ahora, verás lo
hermosa que es la especificidad del GPS porque la razón por que me encanta es porque
me encanta lo que puedo controlar, me encanta
lo que puedo controlar Estoy tomando estas imputas. Ahora voy a pasar por
cada elemento si existen, o si no existen, entonces para lanzar el error apropiado o para construir apropiadamente. Ahí es exactamente
donde vamos a lograr en este
video. Voy a entrar. Así que voy a entrar, ¿verdad? Yo llamo a la ¿Cómo
volví a llamar a esto? Bien, lo siento, llamo a esto búsqueda
subcontratada, subcontratada. Vamos a buscar consulta de origen.
Consulta de búsqueda, ¿verdad? Obtuve consulta de búsqueda. Así que entremos y creamos
nuestra consulta de búsqueda externalizada. Entonces dentro de esta búsqueda, voy a crear dos paquetes. El primer paquete
será para empleado, que sería para la otra
paginación JP y
estas otras partes Que va a ser subcontratada. Así que separemos las cosas, ¿verdad? Entonces para esto, dentro de este tipo, voy a agregar mi consulta de búsqueda
externalizada, que sería
externalizar, consulta de búsqueda Impresionante. Entonces mi consulta asociada, voy a convertirla en
un componente, ¿verdad? Va a ser un componente porque quiero conectarlo por cable. Por favor, chicos, recuerden usar palabras clave
menos estáticas
en su aplicación. Todo lo que sea estático
permanece en la memoria durante todo el ciclo de vida de la aplicación. Entonces
, por favor, recuerda eso. Así que trata de hacer que las cosas sean componentes o que sean fácilmente
basura recolectada cada vez. No es caro
crear estas cosas,
lo cual está bien, ¿de acuerdo? Así que trata de usar menos palabra clave
estática. Entonces, lo primero
que quiero hacer, recuerda que aquí usamos
algo muy clave. Bueno, no. Sí, yo yo nuestro servicio. Entonces esta parte, quiero
externalizarla. Quiero
externalizarlo y traerlo aquí. Lo llamaré PFS, PSFSPublic static Yo lo llamaré externalizado. Subcontratar la llamada UID, ¿verdad? Voy a pasar esto
aquí. Bien, para que luego
pueda usar esto
directamente aquí. Eso tendría tanto más sentido, ¿de acuerdo? Bien, así que esto funciona en lugar de solo usar
la cadena directamente. Entonces ahora tengo esto,
lo cual es genial. Ahora el siguiente paso
es que voy
al público una
especificación pública. Ahora entiendes de
dónde viene. Especificación, luego externalizar. Recuerda eso así que estamos
esperando externalizar. Se necesita para ser la entidad, al parecer porque la especificación
tiene que ver con entidad, el dominio, dominio JPA Así que vamos a volver aquí. Ahora, lo llamaré,
¿cómo llamaste a esto Construir params de
búsqueda externalizados Voy a traer esto en
Build outsource search params. Bien. Todo bien. Bien, entonces toma en nuestra búsqueda
externalizada imputa. Yo lo llamaré imputes
por simplicidad. Ahora bien, ¿qué vamos
a hacer con esto? Así que síganme chicos, comencemos. Entonces digo especificación. Especificación Externalizar especificación, esta así que
sea la parte inicial Llámalo especificaciones, ¿verdad? Ahora, voy a decir
tercerizar tercerizar Primero,
tales especificaciones tales Aún no tenemos este UUID. No. Tenemos que
asegurarnos de que el UUID no es porque sabes que el UUID siempre
debe estar presente Recuerda,
siempre debe estar presente. Asegurar no es nulo. Ahora, ¿de dónde viene este
tipo? Os voy a mostrar chicos en un rato. Ahora, el siguiente paso, todavía
necesitamos
subcontratar especificaciones de búsqueda para prácticamente todo lo
que quiera hacer aquí Entonces ahí es donde
necesitamos entrar rápidamente y crear nuestras especificaciones de búsqueda de
fuentes. Ahora, estoy separando a este
tipo para que puedas entender la dinámica de
cómo funciona todo, ¿verdad? Para ello,
habrá una clase final. Una clase final, por favor
síganme de cerca chicos, síganme. Al parecer, no se puede
encerrar instantáneamente esto. Si lo crea una instancia, la rotación, la excepción de tiempo de
ejecución no
se puede crear una instancia, tiempo Una vez salvo que me
instancien. Ahora, el primer paso, la especificación
estática pública. Voy a estar
recogiendo los campos uno por uno. Miradme chicos. Yo me agué. Yo fuente entidad, UUIDnu UUID, no nieve De aquí es de donde
viene. No hay nieve, ¿verdad? Ahora bien, ¿qué cont esto? Voy a decir regreso. Para
la especificación, usa esto. Utiliza lo que llamamos constructor de criterios,
constructor de criterios. Y verán cómo funciona
en los pedacitos, chicos. ¿Bien? Sólo me sigues de cerca. Es lo mismo en todas partes. Ahora, Criteria Builder Cb dots contiene prácticamente
todo lo que
harás si estás
escribiendo una consulta nativa. Hay como, ¿verdad? Hay entre, no hay. Ahí está el, ahí está el. Cualquier cosa en consulta nativa que
quieras escribir está ahí. Para eso es la
prescripción de JP. Toda la dinámica de lo que quieres verificar
entre fechas y similares está presente en
el uso del constructor de criterios, y
eso es lo que vamos a hacer. Voy a decir que no es
nulo para esto, ¿verdad? ¿Qué es? ¿Qué estamos comprobando? Estás
comprobando la identificación. El ID no debe ser nulo, que es exactamente lo que tenemos aquí. Ahora, si ve,
esto se ha resuelto. Todo bien. Genial. Entonces tenemos que terminar algunos pasos
extra, ¿verdad? Apenas estamos empezando. Entonces voy a recoger el
siguiente que voy
a decir público Público. Lo siento, esto se estaba descarriando. Quiero ser turno aquí. Perdón, ¿dónde
estaba? Lo siento, Harry, me perdí el punto.
Aquí era donde estaba yo. Va a ser
público. Sí. Voy a decir nombre contiene. Voy a estar
usando el, ¿verdad? Entonces, ¿cómo funcionaría esto? En realidad, voy
a decir cadena. Nombre palabra clave. Nombre palabra clave. Ahora, alguien podría
estar confundiendo. Sinceramente ya no entiendo
lo que está pasando. Sí, puedo llegar tarde. Lo que voy a hacer,
voy a entrar aquí. Voy a traer a este tipo lo
voy a mostrar en el costado. Vamos a escupir. Dividamos a
este tipo a los derechos. Discurso de apertura escribe, dónde está el discurso esta
es la derecha dividida. Mientras estamos
desarrollando,
básicamente podrías entender cómo
estamos realmente cableando las cosas en. Ahora estoy en el nombre, voy
a escribir algunos
criterios sobre el nombre. Voy a ir a fecha de nacimientos. Paso a paso, eso es
lo que estamos haciendo. Los veré chicos
en el siguiente video.
84. Paginación, parte 8: Oigan, chicos, es bueno
tenerlos de vuelta. Ahora, continuemos
desde donde paramos. ¿Qué es este UID? UUID es
la columna de nuestra entidad Recuerda, es una
columna de nuestra entidad. Queremos asegurarnos de que sea lo que sea que
estemos buscando, el UUID no sea nulo.
Por eso tenemos esto. Siguiente paso, tenemos que
asegurar ese
constructor de criterios para el nombre, ¿qué queremos
hacer con el nombre? Queremos conseguir un nombre
que se vea así. No queremos la coincidencia exacta. Podríamos decir que queremos
la coincidencia exacta, pero al menos
quiere ser un poco flexible. Viene aquí, mismo constructor de
criterios. Ya les dije,
nada cambia. Mismo concepto, ¿cómo el constructor de
criterios? Sí, C B L, se puso como. Estoy seguro de que esto lo está consiguiendo ahora. Ahora bien, cuál es el nombre
es la figura del nombre. Cuando hacemos esto, eso
ya lo conseguí para mí. Ves, así es exactamente
como se ve. Quiero que esto cante, chicos. Para aquellos que realmente
revisan, vamos a sincronizar un poco, ¿de dónde
viene este nombre El nombre aunque estamos
diciendo la palabra clave name. Este teclado de nombre es
lo que viene aquí. Estamos diciendo que cualquier nombre
que esté pasando por nuestra búsqueda de entrada debe ser exactamente como algo
que se parece la entidad, Este nombre. ¿Correcto? Recuerden,
digo que esto es una base de datos. Estás consultando tu base de datos, estás escribiendo una consulta nativa, pero más como la estás
escribiendo en código, y es por eso que
esta carta CB Bida contiene todo lo que podrías querer pensar
en la consulta nativa Así que por favor
vuelve a ver estos videos en caso de que estés confundido, necesitamos retomar este
punto poco a poco. No te quedes al principio, sino que
una vez escuchas
cómo lo he dicho, y lo que en realidad estoy diciendo, entras naturalmente
poco a poco. Ya sabes, si quieres
escribir una consulta nativa, lo que vas a hacer
es esto probablemente decir seleccionar estrella
de decir externalizar, decir la estrella de externalizado Asurce digo O W O punto nombre,
y haces esto, ¿verdad? Y luego pasar
digamos Ezekio. Tú haces esto. Eso es exactamente
lo que estás haciendo aquí. Esta palabra clave de nombre es
lo que está pasando aquí. Debería estar entre
dos ampersands,
entre dos ampersands, perdón,
entre dos por ciento, quise decir así un por ciento este es por ciento Esto es un porcentaje. Sí. Entonces entre dos porcentajes,
¿verdad? Estoy pensando. Voy a estar teniendo
voy a estar teniendo esto para ser muy repetible.
Vamos a estar haciendo esto. Voy a estar haciendo mucho
como. ¿Debería quedarme con esto? Para alguna otra parte, ¿
tenemos esto? Hagamos algo
genérico aquí. Hagamos algo genérico. Lo que voy a hacer,
iré a mi spectil. Vayamos a mi spect y creamos algo más genérico. Probablemente
podría tener eso. Decimos que la
cadena estática pública contiene, llamemos que contiene
contiene la palabra clave de cadena, que es la palabra clave.
Sí. Palabra clave. Digamos que giramos formatos de
mensaje. Hay un formato de mensaje
en Java texto Java, formatos de
mensaje,
algo así. Pero no exactamente lo que quiero. Formatos de punto, formatos. Diré, dame porcentaje, ¿verdad? Entonces reemplace lo que
esté en esta columna, que en este
corsé genial con la palabra clave. ¿Cómo tiene sentido eso? No tenemos que
estar escribiendo esto, sea lo que sea que tengamos lo coloques así que
va a ser colocar detalles para todo
este marcador de posición
y emparejarlo en el medio Entonces con esto hecho, ¿cuál es la belleza ahora?
¿Cómo puedo usarlo? Entonces la belleza es que entonces
puedo entrar aquí, ir a mis especificaciones de subcontratación En lugar de poner
esto en, voy a sólo puntos
especulativos especulativos contiene, sólo
estoy pasando
mi palabra clave nombre Espero que esto tenga sentido, chicos. Cuando tengas esto esto va a venir aquí y para reemplazar esto y
nosotros tendremos eso. Si compruebas el
formato del mensaje, comprueba la definición. A veces solo necesitas ir
rápidamente en el cheque la documentación. Dice, cresta el formato del
mensaje con un patrón dado es a
formatos, argumento dado. Ahora mira esto. Esto equivale a esto,
esto, esto, esto. Giramos el objeto pattern
strings a formatos. Básicamente, convierte
la cadena de formato. Eso es todo lo que hace. Yo solo reemplaza eso reemplaza. Pensé que debería mostrarte
esto otra cosa del código. Creo que un metal compartido. Todo bien. Eso es si
no lo sabes ya. Es broma, chicos. Todo bien. Entonces, ahora que tenemos un poco, así que te estoy mostrando formas
geniales de poder tener a Impute Entonces sigamos adelante y
hagamos algo extra. Entonces terminamos con
la palabra clave name. Creo que quiero traer de vuelta a este
tipo. Oh, volvamos. Buscar imputa, dividir derechos, sacar esto, quitar
esto y volver aquí Todo bien. Entonces ahora
tenemos esto, ¿verdad? Los empleados establecen especificaciones. El siguiente paso, lo hemos
hecho por nombre, qué es lo siguiente que estamos
trayendo Estamos trayendo en fecha de nacimiento comienza
y fecha de mal final. Entonces ese es el siguiente que
queremos hacer. Recuerda que ambas son fechas
locales, ¿verdad? Así dicen público, También es
especificación en estos momentos. Voy a llamar a esto DOB entre Little bit entre ¿
entre qué? A fecha local una
fecha local comienza DOB. Yo sólo voy a mantener
el mismo nombre. Comienza el DOB. Me estoy tomando mi tiempo para pasar por estos tipos porque
no lo quiero. Quiero que seas
capaz de entender este concepto de especificación de
canto luego
puedas seguir adelante y luego ser muy, muy creativo. Eso es que me estoy tomando
el tiempo para explicar esto poco a poco. Ahora, si voy a
pasar por cada paso, no
voy a
saltarme ningún video aquí. No voy a seguir adelante, probablemente
escribo en la ganga. Voy a pasar paso a paso. Entonces para cuando termines, ahora empiezas a entender
porque habrías repetido algunas cosas una y
otra vez, empiezas a
pegarte, luego empiezas a entender
cómo funciona. Voy a hacer regreso.
Regreso, lo mismo. Recuerda, no cambia
o caba no cambia. No cambia.
No cambia. Creo que se me olvidó
mencionar esto. Cuando estás usando entity,
entity es lo que usaste
para obtener el nombre del campo. Lo siento, creo que
olvidé que me salta. Carta Buda es lo que
parece tu consulta nativa, que en realidad puedes usar
cualquier orperación de consulta nativa La entidad es como
obtienes algunos otros detalles sally tus
nombres de campo. Esto funciona. Entonces datos B ahora. Para esta parte genial para la fecha, también
tenemos puntos entre. También está ahí. Vea
cómo tiene sentido, chicos, y los datos B comienzan todo. Te amo para completar. En realidad ha podido obtener esta información pero
no la llamamos DOB El campo de entidad se
llama fecha de nacimiento. Se llama fecha
de nacimiento. ¿Podemos confirmar, por favor? Vamos a confirmar. Vienes aquí, ves que
se llama fecha de nacimiento, su mayor coincidencia con
este nombre exactamente. Si estás usando una columna
y cambiando el nombre, no coincide exactamente con ese nombre. ¿Es este nombre, fecha de nacimiento? Fue partido completamente chicos,
eso es lo genial. Esto es genial. Creo que entonces
podemos proceder. Ahora, por favor, tengan en cuenta,
chicos. Estoy segura. Puede notar una
discrepancia aquí. La pregunta es, ¿se
supone que esto son fechas, recuerdas? Esto va a ser
cambiado a caso serpiente, Fechas subrayado de
subrayado Esto es lo que va a
quedar en la base de datos. ¿Se supone que debemos usar esto? ¿Se supone que debemos usar
las fechas de nacimiento? Esa es la siguiente pregunta
que debes hacerte. Pero lo que hay que recordar
es que estás usando JPA. Un JPA usará exactamente lo que realmente
tienes aquí. Vamos a probarlo y ver cómo se
desarrolla, ¿verdad? ¿Bien? A continuación. Escojamos el género. A continuación están
los derechos de género, género. Voy a decir, vamos a
copiar y pegar y hacer
alguna modificación. Déjame solo. Deja ser arnés. Sólo hagámoslo directamente. Lo llamaré género igual porque el género
no puede tener un me gusta. Por lo que especificaste, lo que especificaste y
lo que deberíamos tener, eres hombre o mujer. Se especifica aquí, género, género, es nombre en clave. El nombre en clave está bien. Género, género, entonces
tenemos que devolver esto. Esto es genial. Esto es genial. Entonces todo el mundo piensa igual de género. Esto es exactamente lo
que necesitamos. Es genial. A continuación. Hagamos uno más, luego viendo el siguiente video. Hagamos sueldo.
Tenemos un sueldo. Se supone que esto
se ve exactamente así. Voy a
llamarlo salario entre. Salario entre, debería
ser grandes arranques decimales. Arranques decimales grandes, salario final
decimal grande desde. Solo usaré exactamente el
mismo nombre sueldo dos. Sueldo dos grandes decimales, grandes decimales, de, entonces. Entonces el nombre es ¿qué?
Recuerda, si revisas, ¿cómo lo llamas?
Se llama salario. Así que tráelo. Sospecha ollas, llámalo sueldo chicos, te
veré en el siguiente video.
85. Paginación, parte 9: Oigan, chicos, genial tenerlos de
vuelta. Esto cuelga ahí dentro. Casi terminado. Lo hemos
hecho por el sueldo. Lo hemos hecho por fechas,
género, salario. Ahora quiero hacer deber por edad, verdad? Y vamos a darle una paliza. ¿Bien? Entonces para el siguiente paso, recuerden que mencioné,
no me voy a saltear nada. Delito quiero saltarme cualquier cosa porque esto es muy
importante, chicos Entonces a continuación vamos
a hacer edad entre. Edad entre. Entonces esto
será ints, el entero derecho. Va a ser ints Int, envejecer desde y empezar Yo uso H start. Mantengamos
la misma convención de nomenclatura Inicia H fin. Espero que tenga
algunos detalles aquí. Voy a apegarme
al entero. Voy a apegarme
al entero. Puedo hacer fácilmente una
comprobación si H arranca es igual a nulo o esto
es igual a n, retorno. Simplemente es esta fase 15, se supone que no debemos
hacer nada. Si es igual a no, vuelvo. Debería regresar
ahora. Terminemos la implementación.
Voy a volver. Entonces si no lo es, voy
a hacer lo mismo. Yo solo quiero
devolver entidad, edad, quiero decir entre. ¿Verdad? Entre. A medida que envejecemos entre, entonces t obtenemos la edad, la edad pasiva comienza el final de la edad. Se trata de chicos bastante chulos. Yo es bastante genial. Ahora, voy a decir si
esto no es snuw Esto no es nieve esto es y esto es ahora hacer esto.Ho
me paseo lógica. Déjame ver. N es nieve, vas
a devolver una especificación, ¿verdad? Bien, entonces esto es
no y esto no es no no, no, no, no.
¿Qué debemos hacer? Nada. No debería hacer nada. Bien, entonces hagamos la
lógica en las otras partes, aquí, supongamos que esto no
va a entrar aquí. Supongamos que esto
no va a entrar aquí. Cuando lleguemos a nuestras partes de consulta, en realidad
podemos demostrar que esto no es pase que no
llamaríamos a estos chicos. Creo que eso tendría más
sentido. Esa lógica sería mejor. Por último, toquemos el deber. Voy a decir estática pública, Especificación externalizada
ahora, decir deber es igual Recuerda que nuestro deber es igual. ¿Y esto va a ser deber deber? Deber de miembro para mi cogent
o en realidad usamos. Deber de servicio Sí. Voy a decir que
giramos, lo mismo. GT es igual a esto. Esto está bien. Todo bien. De hecho, hemos podido
escribir todo lo que necesitamos. Ahora bien, ¿cómo es esto posible? Esto está usando especificación. Así es como
usas la especificación. Ahora, algunas personas lo hacen de una
manera diferente, pero yo solo trato de solo lugares en diferentes en diferentes métodos. Para cada clase
que estamos comparando o estamos comparando la base de datos, la
hago diferente. Así es como puedes tener
fácilmente el control. Podrías haber anidado todo
esto dentro del mismo método. Todo esto se puede usar dentro
del mismo método como
verías podría usar todo
el método SSA, pero me gusta dividirlo para que
puedas tener control sobre lo que
quieres hacer dentro de
cada una de las lógicas, genial. Con esto hecho,
entonces puedes volver aquí, una consulta de búsqueda, y luego
continuar con esto. Esto lo hemos implementado, ahora voy a decir si se
le dio el nombre tiene datos, voy a decir string t del springer
framework inclina tiene Si esto tiene prueba, que
es la imputa obtiene MM, si esto tiene texto, estamos
seguros de que no es nulo Vamos a traer esto. ¿Podrías ver cómo está funcionando? ¿Esto es? ¿Sólo
vamos a estar encadenando Se llama encadenar. Si
miramos esta especificación, solo
estamos encadenando
todo junto La especificación,
podríamos usar todos también. Pero recuerda usar y siempre
está especificando. Ahora, lo mismo también. Yo voy aquí, el siguiente paso, si imputa punto DOB
inicia, comienza DOB El inicio de imputa o fecha de nacimiento no es nulo. Esto es lo que mencioné donde realmente
vamos a hacer el rip in, y
esto no es nulo. Entonces estás especificando si
es nulo para omitirlo. Entonces, si alguno de ellos es
bueno
omitirlo, en realidad no
se usa en nuestra consulta. Los blancos no lo usan
realmente quip una base de datos, y estamos seguros de que
esto no afectará Por eso estoy haciendo que
cada uno de los elementos no sea obligatorio porque eso es lo que se
supone que es el embarazo Entonces, si esto es así voy a
decir al menos hay que estar seguro de que el
inicio de la base de datos es antes final del bit de
datos. Eso
es muy importante. Diré I Imputa que el bit de
datos obtiene inicia que comienza DOB
es, pero es antes Entonces las fechas siempre
tienen este concepto. Antes de esto, entonces
hacemos otra cosa. Y si no es antes de los
dos, no lo sé. Aún así haré otra cosa. ¿Bien? Entonces hagamos esto primero. Voy a decir mis puntos de especificaciones y luego voy a obtener especificaciones. Decir especificaciones punto DOB B recuerda
que implementamos esto ahí, entonces voy a pasar esto
adentro. Esto funciona. No obstante, dices spec
I no es antes, o es
lo mismo antes. Si esto no es antes de esto, si el inicio del DOB
no es antes del final del DOB, simplemente significa que
son las mismas fechas
o que este fin de DOB es
anterior al inicio del DOB Ese es el significado.
Voy a decir especificaciones. Recuerden, esto tiene
que ser igualdad de derechos. Hay que
volver a ponerlo a igual a esto. Estas especificaciones, puede haber especificaciones. Dot y ahora digo yo fuente sospecha DOB entre,
voy a invertirlo. Voy a invertirlo o
en vez de invertirlo, solo
podría decir perros Imput Voy a decir,
esto es antes. Th sería imputes consigue DOB
o vamos a mirarlo ahora. Yo sólo voy a trabajar. Esto podría no ser
infalible. También podrías hacer algo de lógica aquí, sólo
voy a
dejarla en esta ahora. Esto completa lo que
queremos hacer aquí. Próxima parada. Diré que la próxima
parada es sobre género en género. Voy a decir imputes
Imput dots consiguen género,
su género, autocomputación, Si no es nulo, diré que funciona
spec. Esto funciona. Siguiente parada, voy a decir ahora
voy a pasar a sueldo. Si sueldo doesimput
obtener salario de. Yo sueldo o sueldo
de no es nulo, y porque es ambos que estás comprobando
y esto no se sabe. Al parecer, decimos especificaciones, es igual a especificaciones y
pasando el externalizado Sueldo de puntos entre, se
puede ver que esto ya se ha hecho para
nosotros, lo cual es genial. A continuación, déjame mover esto. A continuación, déjenme cumplir la edad de los chicos. Déjame decir si lo mismo imputa punto get él inicia no es nulo
y edge no es nulo
las cosas están todas completas, suspende y luego ponerlo
externalizado, luego Ves que esto funciona. Lo estoy
tomando paso a paso. Impresionante. Después deber.
El último es el deber. Si imputar eso obtiene deber, deber. Obtener deber no es saber. Ahora diga especificaciones, es igual a
especificaciones y deber. Esto está bien. Quiero decir las especificaciones
de retorno Impresionante. Los veo chicos. He podido pasar paso a paso, y ahora esto es realmente genial. Ahora para terminar rápidamente este video,
voy a traer esto, llevarlo a mis respuestas, positue
que este tipo sospechando De hecho voy a
conectar esto, poner mis respuestas y a este tipo de aquí. Voy a cablear esto. Impresionante, esto ha sido cableado
se puede ver esto
ya no se queja Entonces tenemos esto en. Los
veré chicos en el siguiente video.
86. Paginación, parte 10: Oigan, chicos, vamos a darles
lo que hemos hecho hasta ahora. Vamos a darte lo que
hemos hecho hasta ahora. ¿Cómo funciona la
especificación JPA? suscripción funciona de
tal manera que puedes escribir consulta
negativa para hacer algún tipo de py Estamos tratando
de obtener algún tipo de entradas y queremos
usar simplemente muchas cosas. Quiero verificar si uno de
los campos existe si
es algún objeto es
entre algún módulo solo la forma que escribes consultas negativas. Por eso
separé las cosas. En primer lugar, escribimos a
nuestros sospechosos y un sospechoso está reflejando
nuestra base de datos, que es un
nombre de campo que tenemos aquí, yo los campo, debes
usar este nombre de campo GPA No se confunda aquí
este nombre de campo GPA exacto, se supone que debe usar aquí Este nombre de entidad quise decir, estos nombres exactos de entidad JP. Ahora que lo tienes aquí,
puedes hacer la lógica. Acabo de hacer lógica sospechosa
basada en las entradas que
recibiste y la entrada que les
mostré entrada chicos. Tiene un concepto de nombre, y poco comienza
y termina, género, forma
salarial y top, inicio y fin y deber. Y pasé por, les dije chicos
que están usando
el constructor de criterios, el creador de criterios te
da todo lo que básicamente tienes en
tu consulta nativa entre y los me gusta. También podrías comprobar que en su lugar son mejores o
Las otras cosas. Así que ya ves, hay entre, no
hay ninguna matriz,
concat, cruce, datos de tiempo
actuales Como todo lo que probablemente
esperas dentro de una base de datos. Allí
existen funciones de Leven. Entonces, si revisas, creo
que es una función aquí, ¿verdad? Sí, función.
Función de compacidad, mayor o igual a Así que piensa en cualquier cosa. Solo necesitas
pensar en lo que sea que hayas escrito en
tu consulta nativa. Los chicos de JP o los chicos altos de
Barnett han intentado tanto como
sea posible poner muchos detalles en esto y JP simplemente aprovechó para
usar la especificación JPA Entonces esta especificación GPS hace muchas
cosas geniales para ti, ¿ verdad? Un montón de cosas geniales. Así que sólo piénsalo adentro.
Ves que hay algunos, ¿verdad? Tenemos prácticamente
todo, ¿verdad? Entonces no puedo explicarlo lo suficiente, sino solo mostrar solo
una simple pieza de ella para que sepas cómo
funciona bellamente. Entonces después de crear
esto, separé cada uno de para que nuestra lógica
sea diferente. La razón lógica de esto, de la
razón lógica de esto, luego reuniéndola
en un sospechoso, no
estoy pasando en estos
detalles. Déjame dividirlo otra vez. Después de hacer esto,
¿qué hicimos realmente sencillo? Luego pasé y estoy validando a cada uno de los hombres
chicos. Esto no es caro. Recuerda, el BGO de
esto es constante. Para Si check, la O grande es constante,
siempre es constante. Entonces estás seguro de que
no estás agotando la memoria. Esto es bastante genial porque
el BGO es constante. Por eso puedo hacer esto
y estoy fallando rápido. ¿Puedo repasar por todo
este detalle? Si esto falla, no se
molesta en entrar en esto. Esto siente que no
implementa toda esta lógica. Entonces veis que esto funciona
bastante, chicos. Entonces después de separarlo, ahora hemos podido hacer esto. Ahora he pasado por este
paso he pasado paso a paso para que no
me falte punto. Estoy seguro que ahora sabes cómo
encadenar la especificación. Estoy usando y podrías escribir esto en un solo método
y tener todo en. Pero no me gusta hacer
eso, como se podría decir, el punto de especificaciones gana algo, luego lo encadena de nuevo, punto gana algo,
ese gana algo. Podrías hacer esto,
luego
lo encadenas de nuevo, ganas algo. La gente escribe código así
está bien. Esto está bien. Hasta ahora, estás seguro de
que los detalles que estás transmitiendo están disponibles, o has hecho alguna
forma de validación en. Por eso lo acabo de dividir. Algunos habrían
preferido escribir su especificación en
detalles separados y traerla. Pero por eso lo
hice por separado aquí y escribí mi
especificación por separado, y después de eso, estoy empezando. Podrías cambiarlo
así. Hombre, no tienes un lo, tienes todo. Entonces podrías hacer esto, ¿verdad? Entonces estás diciendo otro si el no funciona, el puede funcionar. Entonces ves varios detalles
que realmente puedes cambiar, y tienes, y
tienes igual. Así que en realidad podrías usar estos tres detalles
para unirlo. Bien. Así que he podido explicar lo que hemos hecho hasta ahora. Por favor, repasa los
videos una vez más. No estás seguro y ves
cómo cambio las cosas paso a paso. Lo puse fuera de
esta parte de empleado. Y cuando vaya esto, realmente quiero
construir mi param. Entonces este param me va a dar un conjunto de especificaciones como pueden ver Especificación, que están
validando cada entrada, ¿verdad? Cada feudo dentro de esta entrada. Voy a repetir de nuevo,
cada pocos imputes es validado en realidad y
devolvemos una especificación Y especificación
es lo que devuelve esto y cada uno de ellos vemos validando por
entrar y crear todo
esto para cada uno de ellos, reflejamos cada uno de
ellos, e intentaremos alguna
validación de mezcla para ver
si existe o no existe Sólo estamos comprobando comparando
y a ver si funciona. Ahora que hemos hecho esto,
¿qué concuerda esto?
Ves estos partidos. Si revisan esto, ¿ esta suma se relaciona con si revisas especificación de
Control P o Comando P y así ahora voy
a mostrar cómo especificar sit es bastante simple, chicos. Con esto a, sólo voy a ser tono, exactamente lo mismo. Quiero decir regreso simple,
esto, entonces voy a
pasar en mis resultados. Pasar mis resultados,
eso es conseguirlo y voy a pasar mi entorno de
obtención de datos Esto es prácticamente todo, chicos. Esto es más o menos así.
No tenemos ningún error, ¿verdad? No, no tenemos ningún error. Creo que hemos terminado con
la implementación de esto si vas adentro, tenemos esto ordenado. Bien chicos, creo que
es hora de probar, ¿verdad? Vamos a probarlo y vamos a
demostrar que esto está
funcionando, ¿verdad? L solo pasa algunos detalles a esta búsqueda de IMPs como si funcionara, y luego podemos pasar
al siguiente video porque ahora que hemos hecho lo
codificé todo, y esto en realidad se está
moviendo bastante genial Lo que voy a hacer,
voy a iniciar mi base de datos. Recuerden, solemos
compilar como el compositor, quise decir, voy
a poner en marcha mi base de datos. Voy a seguir adelante para traer
a colación Docker. Docker básicamente se inicia. Entonces mi estibador está funcionando.
Esto se pone en marcha. Seamos espectáculo. Bien, aún no
está disponible para
recibir conexiones. Voy a esperarlo.
Bien, esperémoslo. Impresionante. El sistema de base está
listo para
aceptar la conexión. Con eso, puedo iniciar
mi aplicación. Acabo de iniciar la
aplicación. Todo bien. Y ojalá
no consigamos ningún error. Entonces entonces podemos entrar en Ota
para poner en marcha las cosas de verdad. Muy bien chicos.
Esto está subiendo, subiendo esto se
acerca. A ver. A errores? Bien, entonces
hay una flecha. Entonces la flecha, veamos de dónde viene
la flecha. Entonces déjame ver esto. Entonces dice externalizar conexión. S el error chicos conexión. Aquí me perdí la C. La conexión de
externalización del tipo de campo no
está presente. Aquí me
perdí la C. Ese es un buen hallazgo.
Ese es un buen hallazgo rápido. Yo sólo voy a entrar y veamos dónde
cometemos ese error. Déjame ir a mi gráfica QL, mi gráfica QL, mi gráfica QL Comparemos mi gráfica
QL. La directiva. Vamos a registrarnos. Vamos a revisar
mi entidad, subcontratar Vamos. Es la consulta. Aquí. Como conexión. La conexión de origen era
muy del mismo nombre. Recuerda, también en realidad crea el borde en
la página para nosotros. Eso es básicamente. Ahora
esto ha sido violado. Ya no está disponible. Entonces
vamos a hacer, muy sencillo. Voy a entrar
voy a entrar aquí. Recuerden, esto en realidad sería timeout porque esto no
va a funcionar más bien, quejarse porque necesitamos
recompilar por eso estoy haciendo esto Bien. Entonces, finalmente, este tipo, bien, porque está
tratando de igualar esto para tener
exactamente ese mismo nombre. Yo borro esto. Entonces
usaré Mp moviendo compilar. A ver. ¿
Tienes algún error? Bien. A ver. No,
no tenemos ningún error. Entonces, volvamos a ejecutar esto. Ojalá,
esta vez no
obtengamos ningún error , no
obtenemos ningún error, entonces realmente podemos volver en el siguiente video y
comenzar esta cosa. Déjame ver. ¿Hay algún error? Bien. Date prisa. A ver. Impresionante. Esto se ha puesto en
marcha por completo, fue capaz de localizar
esto ahí. ¿Puedes ver? Por el error,
lo bueno es que pudiste demostrar que eres capaz de
probarte a ti mismo que esta USC PAC ahora Eres capaz de
probarte a ti mismo que esto era cableado automáticamente. Pero porque cometí un error
con la C aquí, nos lo dijo. Seguro que eso es prueba
suficiente
para que veas que reconoce esto. Se trata de chicos bastante chulos. Voy a detenerlo.
Voy a volver. Voy a liberar todo esto para
que podamos ponerlo en
marcha y luego probarlo. Los veo chicos en el siguiente video.
87. Paginación, parte 11: Oigan, chicos, genial
tenerlos de vuelta. Ustedes han sido muy increíbles. De hecho me has
metido. Y esto es bastante impresionante chicos, ustedes son
desarrolladores increíbles, programadores increíbles De hecho, he podido
pasar por esto y estoy
seguro de que vas a hacer cosas
increíbles y construir sobre
todo lo que he hecho hasta ahora. Bien. Entonces ahora que esto es bastante asombroso y lo he
podido hacer, te
dije que
no iba a usar esto para nada, y si, no lo
voy a usar. Y veamos si
funciona. Voy a pasarlo, vamos a cambiar las cosas,
vamos
a estar seguros de que
guau esto funciona incluso sin usar esto
porque internamente, esto se ha hecho por nosotros. Sí, claro, así que
vamos a meternos en ello. Lo que voy a hacer,
voy a sacar a colación ta. Voy a sacar a
colación. Recuerden, chicos, realidad
he ido a crear. Voy a crear algunos detalles para nosotros con los que vamos
a estar probando. En realidad vas
por esta parte
o esto es paginación, cty parte para Bien. Esto es una parte de la
paginación que creé, vamos a explorarla un poco No estoy usando la paginación de
empleados este momento. No lo
voy a usar. En realidad preocupado por
la paginación externalizada. Puedes ver que estoy
usando de la misma manera, la
misma manera que he estado
haciendo esto pasando una variable y mi nombre de variable es lo que para que puedas mirarlo con cuidado. Entonces no hay mucho espacio. Voy a tener cuidado lo
llamo imput dos,
primero, último, después, y antes Si lo miras,
hay un primero, hay un antes,
hay un último, hay un después, genial. Entonces Insumos, mira esto,
hay un Imput dos. Este Impute dos corresponde con esto y coincide con
nuestro subcontratar Ves que coincide con
nuestro subcontratar. OB inicio, B, género, salario de sueldo
a borde y esto. ¿Qué es el deber? No voy a pasar el
deber. Vamos a comprobarlo. Vamos a comprobarlo.
Chicos. Vamos a darle a esto. Veamos lo que
acabamos de tener aquí solo paso en algunos detalles extra. A ver si somos capaces de
hacer esto. databas inicio debe
ser a partir de 1960, y debe ser 1998, masculino debe tener
este rango salarial, y este debe ser
entre los 23 y 30 años A ver. Qué detalles. Así que
mira a estos tipos. Verás, este Coso antes y después se generará
automáticamente para ti. Debe ser auto generado. Así que se supone que debes
entrar y recogerlo. Se supone que debes entrar y
recogerlo para decir, Bien, quiero, voy a elegir esta gama de esta gama y voy
a pasar por ella. Entonces lo que voy a hacer, no
tengo las ventas. Voy a comenzar
a sacarlo. Por lo que no puedes comentar aquí. Yo sólo voy
a quitar esto. Voy a quitar esto.
Sólo voy a llamar a esto. Sólo llamemos a los diez primeros. Primero diez, estos son
los chicos de belleza. Puedes quitar
lo que quieras. Solo busquemos
y solo llamemos a esto. Bien. Creo que estamos recibiendo un error es
que no pude buscar, y veamos de dónde
viene mi error . Vamos a comprobar esto. Imagínese, voy a
iniciar la aplicación. Entonces ustedes ponen en
marcha la aplicación. Empecemos con la aplicación.
Entonces lo puse en marcha. Creo que después de
comentar
comenté, no logré poner en
marcha la aplicación. Esto es para arriba, golpea esto
otra vez. Dije, increíble. Mira a estos tipos.
Esto es hermoso. Esto realmente hermoso. Verás, para los primeros datos
que estás recogiendo, Davis dice iniciar
Cs y terminar Coso. Ves que cada uno de ellos tiene una
ventaja y todos tienen un Cs. Recuerda que te dije
dentro de un subconjunto grande, necesitas escoger el porque
quieres empezar y terminar con. Lo que voy a hacer,
voy a entrar aquí y traer de vuelta todos esos detalles
que eliminé. Oh, chico, ¿qué hice
aquí? Creo que en realidad. Es una buena manera.
Puedes hacerlo aquí atrás, voy a cerrar
esto y traerlo de vuelta. Eso me da
todo lo que necesitaba. Mis resultados, voy
a quitar esto otra vez. Voy a quitar esto.
Va a quitar el primero. Dejar de fumar a través de los primeros diez.
Rápido a través de los primeros diez. Vamos a golpear esto de nuevo y
ese va a ser este tipo Bien. Lo siento, no es la
cuerda del valle. Vamos a quitar esto. Todo bien. Esto se puede ver. Hagamos esto.
Voy a elegir a este tipo. Voy a traer
todo esto de nuevo. Voy a ir rápido de entre esto solo en esto y voy a ir
hasta el final y luego elegir esto. Verás, estoy fijando
mi inicio y fin. Yo soy el que define
las cosas ahora, tengo esto. Entonces tengo, llamémoslo. Quiero los tres primeros. Yo
sólo quiero los tres primeros. No quiero cosas que ver
con último hagámoslo. No hay nada.
No tenemos los tres primeros, no
tenemos las.
Voy a regresar. Voy a
volver a entrar. Voy a decir así que voy
a volver a entrar. Déjame quitarle
esto y veamos. Quiero estos detalles. Este detalle no me está
dando nada. Ahora, quiero que ustedes
comparen mientras hago esto. Voy a sacar esto otra vez.
Voy a sacar esto otra vez. Yo solo dirijo esto tal como es. Lo siento esta es la cuerda del valle debido a esta llegada final. Ya veo, estoy diciendo
dame los cuatro primeros,
darme uno, dos, tres, es honrar a estos últimos tres
antes de estos cuatro primeros Si llamo a esto cinco, uno, dos, tres, cuatro, uno, dos, uno, dos, tres, cuatro, ¿verdad? ¿Se han dado cuenta de algo,
chicos? Esto es bastante tedioso Necesitas buscar la cosa, tienes que esperar a que vuelva la
costa
antes de empezar a escoger
la cosa, ¿verdad? Yo solo quería
mostrarles que así es como tendrías las cosas. No se puede conocer el
posavasos de antemano. Nunca se puede saber. Yo me ayudo
solo llamaré a esto diez, solo llamaré a este diez,
solo lo llamaremos 20 solo
para darnos más datos. Voy a llamar a esto. En la cuerda del valle,
quito esto. Tengo 20 aquí dentro.
Genial tener esto. Ahora voy a
sacar a colación mi oso mi primer y último antes y después. Entonces escogeré esto aquí. Agrega entonces cos creo que
esto cos, Agrega esto en. Déjame consultar de nuevo. Yo saqué
esto. Yo quiero esto. ¿Me perdí algo
aquí? Déjame mover esto. Antes de esto. Antes de este significado este es el primero antes de esto. Realmente no hay nada antes porque
son los primeros cuatro esto no es nada antes porque
consulto la primera cita que recuerdo, dejé el primer teatro. Por eso es tener
esto. Y si hago esto, déjame tomar esto. Debe haber datos
después de esto creer. Vamos rápido a esto.
Veamos esto. ¿Hay algún dato después de esto? ¿Cuál es el total de datos?
Creo que me interesa. Veamos cuál es el
total de datos aquí? Voy a quitar todo
esto. ¿Cuántos datos tenemos para este criterio? Yo tengo uno. Tengo
uno, dos, tres, cuatro, cinco, seis, siete, ocho, nueve, diez, 11, 12, 13, 14. Tengo 14, alrededor de
14. Déjame entrar. Vamos a quitar a este tipo. los tres últimos.
Quiero los tres últimos. Tengo algo. Entonces
quiero los cuatro primeros. Todo bien. Esto está bien. No quiero ninguno
quiero los tres primeros. Yo sólo quiero los últimos diez.
Dame los últimos diez. Entonces puedo agregar en estos
detalles. Dame los últimos diez. Este es el último diez. El último diez, uno, dos, tres, cuatro, cinco, seis ,
siete, ocho, siete
hasta diez, nos
da las primeras
colas que tiene. Esta es la primera.
Mira primero al Coso. Ves que coincide con esto.
Entonces este termina el JK, ve todo el camino hasta el final,
ves que coincide con JK. Cocuerda con JK. ¿Y
si ahora elijo esto? Déjame traer esto de vuelta. Voy a decir,
dame este segundo. Yo no quiero antes, quiero después
quiero los tres últimos
después de este coso, ¿verdad? Eso es lo que
voy a hacer. los tres últimos después de este Coso. Últimos tres después de este Coso. Así se puede ver. Pero así
es como funciona, ¿verdad? Hay que ser muy cauteloso con
el Coso, ¿verdad? Entonces me estoy tomando mi tiempo
para explicar esto. Entonces no puedo agotar completamente esto. Entonces si elijo el primero, solo
hagamos este primero,
quiero los dos primeros
después de esta cosa. Los dos primeros después para que pueda cambiar quiero los
dos primeros después de esta cosa, ¿verdad? Así que estoy seguro de que ahora te estás acostumbrando
, ¿verdad? Hay que tener en cuenta
dónde está la cosa. C ya ves? Entonces esto funciona. Entonces,
chicos, ya ves, no
conoces la
cosa de antemano y usas la cosa para
determinar realmente las cosas para. Entonces es tu elección. Si quieres esto.
Esto es bastante genial. Voy a meter
esto. Entonces siendo el guión del cartero y
tu guión, ¿verdad? Los veré chicos
en el siguiente video.
88. Paginación, parte 12: Hola, chicos. Las desventajas, realmente no sabes
el número total de elementos que vas
a obtener si estás usando esto. Estoy revisando. Hay
que aprender qué co tamaño entre los cuales empiezo a usar alguna
lógica para definir esto. No lo sé de antemano. ¿Verdad? Si
se reinicia la aplicación, vas a obtener una nueva,
obtienes un nuevo conjunto de código Se genera para tu narración
automática. Realmente no me gusta este
enfoque, B no lo sabes. Ni siquiera
sabes cómo hacer consultas. Ni siquiera conoces
el elemento total. Algunas personas podrían
preferir este enfoque. No me gusta este
enfoque. Esto es personal. Es mi opinión
personal. No me gusta este enfoque,
que es lo que nos va a desplazar a los siguientes detalles. Los siguientes detalles, y
vamos a ver cómo funciona esto donde
tenemos el control total
de estas cosas que entran y decidir
cómo queremos que sea. Los chicos increíbles son
geniales. Todo bien. Ya he ah añadir en
el post manuscrito, así que si quieres usar cola
o el postmanscript,
por favor sé mi invitado, usa a cualquiera
que realmente prefiero Ahora que hemos hecho
esto, ahora expongo esto para que veas que
todo entra. Puedes estar seguro de
que obtiene los detalles. Como se podría decir, no
cambié los parámetros. ¿Estás seguro de que está funcionando? Bien, vamos a revisar
los parámetros. Tantos detalles que conseguimos aquí. Cambiemos y
esta es una hembra. Recuerda, todo lo que vamos
ahí es macho macho macho, cambiémoslo por hembra. Vamos a desechar esto.
Bien, veamos esto. Entonces no tengo
esto, voy a quitar todo esto porque esta
cosa podría no existir. Entonces solo quiero quave con
esto. Oh, lo siento, empleado. Lo siento, yo PML o se supone que debo
elegir esto. Cómo salsa Bien. Sí, para que veas, tienes prácticamente muchos
detalles, ¿verdad? Entonces si voy y agrego esto adentro, para que veas que cambia. Ahora, que esto llegue primero. Podrías hacer la misma
dinámica y cambiar Sart. Y el costo de
tres después de esto, cuatro antes de esto, podría empezar a
recoger así, ¿verdad? Entonces empiezas a cambiar
igual que hicimos en el último video. Sólo voy a
ajustar esto un poco. Sólo quiero mostrarte
que todo funciona. Bien, entonces vamos a quitar
estos dos detalles, ¿verdad? Para ver que funciona.
Vamos a darle a esto. ¿Podías ver?
Tenemos estos detalles. Si no especificas
tenemos H de dos, no
especificamos g y
tenemos todo esto, ¿verdad? Esta está siendo limitada
porque aquí definí esto. Vamos a entrar aquí.
Voy a quitar. Creo que me muevo aquí H, voy a quitar H.
Voy a quitar esto
primero y último. Entonces volvamos a consultar esto. Para que puedan ver, tengo
muchos más detalles. Porque lo trunca, aquí
todo es opcional,
que es lo asombroso Ambos implementamos chicos. Lo cual está bien. También podría
aumentar esto a tal vez 15050, esto a 150.
Llevemos esto a 120. Ojalá tengamos algunas cantidades
en el medio entonces, ¿verdad? Cien 50,000 mil mil. A ver, ¿tienes
algo? No, nosotros no. Déjame quitar esto. A
lo mejor conseguiremos algunos detalles. ¿Nosotros? No, nosotros no. No hay
criterios que coincidan con esto, así que tal vez tengamos que reducirlo. Déjame reducir esto 40
40,000. ¿Tenemos hombre? Tenemos algunos. Es un tres. Estoy seguro de que ustedes
ya entienden la idea central ahora de cómo funciona esto Te he podido mostrar
chicos primero antes del
último después de que la cosa funcione ahora ya
sabes cómo funcionan los detalles. Ahora bien, esto no es realmente
factura. No lo sé. Realmente no se puede decir
esto
programáticamente porque tantos detalles, excepto que quieres ignorarlo
totalmente Entonces todo lo que tienes que pasar son estos detalles sobre los que
tienes
control y
criterios de búsqueda entre ellos. No tienes que
molestarte por este cosoping y solo usar
esto solo. Esto es crítico. Pero la idea es que si haces esto y tienes
unos 100 datos, ¿cómo quieres por
dónde empezar, dónde devolverlos?
Cosas así. Quieres saber yo
quiero los primeros diez, la última prueba, tú quieres eso. Ahora, podrías
hacerlo haciendo caso omiso estos cursos y solo probablemente pasar los primeros diez
que se te ocurra Les mostré antes,
algo como esto, ¿verdad? Si haces esto, ¿verdad? No consigo ningún detalle.
No hay detalles existentes. Entonces cambiemos
esto a 40 40 mil. Bien, entonces tengo algunos detalles. Quiero decir, conducir, devolver
uno, dos, tres ,
cuatro, cinco, seis, siete,
ocho, nueve, diez. Entonces primero diez. Así que siempre
puedes hacer esto. Entonces la siguiente parada,
se podría decir, quiero Así que cuando lo
hagas Primeros diez, tienes que mirar
donde termina esto. Entonces eliges la parte
del motor de esto. Entonces entonces hay que poner
los otros bits, ¿verdad? Entonces tienes después. Entonces coloca después, ¿verdad? Quiero el primero el
después de este Coso. Recuerda que esto termina con un JK, así que tenemos otro Coso aquí. Entonces, ¿ves que esto
es ahora lo que EJ cinco? Esto es definitivamente antes de
ahí es donde se puede ver. Entonces si lo haces ves
ahora termina con JK. Esto es JK. Entonces
digamos el último. Diré el último antes último el último antes de esto, estoy seguro que esas deberían ser las cosas de
JK que vimos antes. Bytes. Creo que
no estoy muy segura. Después de esto antes,
antes debería antes, antes. Bytes antes de esto. S estamos de vuelta a ello.
Podrías simplemente jugar por ahí. Podría empezar a
entender el concepto, por favor mira los
videos para poder entender el concepto
de último primero, antes y después, en realidad he podido
deletrear esto. Sólo voy a volver al original que tengo. Por favor, juegue con esto,
asegúrese de entenderlo correctamente ,
y
lo hará, podrá
implementar realmente más cosa de código. Entonces he vuelto a entrar
en este video para explicar algunos detalles extra
como respecto a esto, ¿verdad? Porque quería que ustedes
entendieran bien el concepto. Entonces ahora que hemos hecho esto, ahora
es el momento de pasar ahora
a la paginación de empleados, que es mi favorita.
Podría ser tu favorito. Podría ser el favorito de
otra persona. Prefiero esto esto. Pero esto también es
bastante genial, ¿verdad? Porque la desventaja es que no se conoce el número total de elementos. No se puede decir. Excepto para eliminar todos estos y consultar todo lo que devuelve, pero te pones todo cargado y no creo
que eso sea realmente lo mejor. Excepto que empiezas a usar tal vez
cosas como primero diez, último esto, aquello, luego el primer turno para
darte los primeros diez. Entonces hay que
anotar el Coso que fue escrito y buscar
el siguiente turno después Entonces es esgramaticalmente posible. Podrías hacer eso, ¿verdad? Pero simplemente realmente
es demasiado trabajo. Veamos el segundo paso, segundo tipo de paginación, y luego podrás
decidir cuál es mejor Los veré chicos
en el siguiente video.
89. Paginación, parte 13: Oigan, chicos. Noté el extraño comportamiento con Cartero de la última
información que di Pensé que en realidad lo
corrigía, no
quiero que nadie se
equivoque y piense
que no está funcionando. He agregado una variable ahora, intenté hacer clic en esto. Esperaba que esto realmente
desaparecería para no ser resaltado, pero desafortunadamente se destacó. Lo que tienes que
hacer si estás usando Postman es que solo
tienes que sacar esto. Usando esto, entonces usted puede simplemente hacer clic y usted es capaz de
obtener sus datos, su respone realmente consentimiento Entonces no pudiste consultar como antes. Pensé que
en realidad debería mencionar esto para aquellos que
van a usar Postman, así que en realidad no
obtienes descubrimiento para pensar que las cosas no están funcionando Entonces te quitas las notas de
parte usando en este momento y usas
la otra, ¿verdad? Pensé que
en realidad debería compartir esto. Bien. Entonces con eso dicho,
entonces creo que luego continuar con la degenación de
empleados Bien, entonces voy
a detener el servidor. Voy a detener el servidor. Antes de comenzar,
en realidad voy a pausar rápidamente el video y verificar esto
y llamarlo en el primer paso, lo
llamaré
externalizar paginación Las otras partes serán la paginación del empleado
para que puedas ver los códigos que
agregamos en. Sólo un minuto. He entrado en agregar esto en. Yo lo llamo paginación,
gráfica estilo Queer. De hecho, puedo verlo en. Esto es a lo que me
refiero. Lo tengo adentro, hecho lo
he comprometido en. Voy a entrar y
comenzar los demás detalles. Ahora voy a terminar con esto, sólo
voy a quitar
las otras pestañas. Esos otros grifos, estamos
comenzando desde este punto. Creo que es bastante bueno.
Esto es bastante bueno. Ahora podemos proceder desde
donde duramos pasos. Voy a llamar a este
empleado Bing esto en Employeesurce service dot Empleado SEC Búsqueda de empleados. Passpputails, yo
pasando la página. Pasando la página,
pasando el tamaño. Pasando el tamaño, sin pasar los datos, obteniendo entornos. Esto ya está en conflicto con una búsqueda de empleados,
que es esta parte Pero lo bueno es que
en realidad podríamos usar un método
sobrecargado, realmente no
hay jamón Voy a entrar voy a crear otro conjunto de empleados
de un tipo. Voy a crear
este tipo que tenga todos estos detalles, funciona. Podrías llamarlo inicio de página de
empleado. Sólo voy a usar
un método sobrecargado. De hecho podría tener
esto funcionando para nosotros. Tenemos que hacer alguna validación antes de hacer las cosas principales. Cuales son las
validaciones voy a decir que página es igual a nula porque
recuerda que es posible, se pasa
un nulo
o alguien podría ponerse muy complicado con nosotros y
pasando una página negativa. Si page es nulo o es
negativo significa menos de uno, cualquiera que sea, y solo
vamos a ponerla por defecto a cero Entonces la página es igual a cero, ¿verdad? Así que básicamente deberíamos
coincidir con lo que hicimos aquí, número de
página y tamaño de pago. Pero el tamaño de la página también
debería ser tamaño o decir, si el tamaño es error, si el tamaño
es nulo o la página esto, solo
voy a
devolver la primera vez. Creo que esto funciona
¿verdad? Todo bien. Entonces vamos a tener esto. Entonces
vamos a obtener la dirección de nuestra página. Voy a decir pagable.
Paginable, paginable es igual a nuestra solicitud de página que somos diez para
pasar el tamaño de la página Ahora para este tipo, vamos a hacer que la página acepte que
esto sea cero, así
que va a ser cero. Pero recuerden, si esto no
es cero, recuerden, el momento en que están
pasando esto es posible ahí ahora
pasando un dato aquí, si éste no es mayor que uno. Ahora vamos a
verlo objetivamente. Si no pasan,
si pasan esto adentro,
si esto es nulo o
esto o menor que cero
o por defecto a cero No obstante, ¿y si es mayor? ¿Y si es mayor? Si
están pasando en cero, están pasando
en cero, todavía
cae dentro de este criterio, y estamos diciendo que
incumplieron a cero Pero si están pasando
en uno, recuerden, si están pasando en uno, JPA entiende que ese uno es cero Sé que entiendes
porque tiene un concepto de comenzar
cada página desde cero. Bueno, los clientes pueden pensar que la
página comenzará desde una. Es para decirles así. Supongamos que el
que supongamos es uno que están pasando y están empezando a
ser la primera página. Sólo tenemos que
restar uno para mí. Lo que voy a hacer
en vez de pasar esto, voy a pasar esto como uno solo. Sea cual sea el paso,
voy a asumir si es menor que cero o si
es negativo, hágalo uno. Sólo diré una página menos una. Espero que este concepto
realmente funcione chicos. Es decir, si es menor que
uno, lo voy por defecto a uno, si es mayor que uno,
usaré lo que sean
pero restaré uno porque
tenemos una página basada en Zio Espero que esto en realidad esté claro. Para ello, voy
a usar empleado. Empleado, empleado UUID. Estoy seguro que ustedes que ya entienden
por qué estoy haciendo esto. Creo que es hora
de que empecemos. Es hora de que
comencemos nuestros detalles. Voy a decir
pSearchNPSearch, ese mapa. Vamos a hacer algunos mapeos. Vamos a decir
búsqueda de P de
empleado, búsqueda de entrada de empleados, y
queremos retener esto. Entonces para que el empleado
busque el mapa, voy a decir empleado
APC empleado post punto Find O Find O, deberíamos tomar
al parecer una especificación. Voy a decir empleado. Es el mismo concepto chicos, consulta de búsqueda de
empleados. Consulta de investigación punto
Bard, empleado. Buscar params. Params de búsqueda de empleados, ¿verdad? Voy a pars en empleado
empleado búsqueda imputes, Estoy seguro de que entiende
este consejo. Hace de la misma
manera que lo hicimos para la consulta, la externalización, ¿verdad Entonces voy a
pasar en la paginable. Paso en el paginable. Entonces voy a
revisar a través de esto. Entonces voy a decir,
después de tener esto, voy a comprobar que
voy a tener esto. Ahora voy a revisar o de lo contrario. Si esto es lo voy
a decir o de lo contrario, porque está
ahí o no está ahí, voy a mostrar una excepción. En lugar de remolcar una excepción, podría simplemente obtener un valor predeterminado Entonces un defecto, sólo voy a
decir, ¿sabes qué? Si no está ahí, si
no tenemos la misma búsqueda p, solo deme el empleado
reposit dot find, y solo pasa mi pagable adentro Esto también funciona.
Sólo voy a conseguir esto, esto básicamente me va
a dar un lanzamiento. Me va a dar
una página de empleado. Página del empleado. Página del empleado. Y lo llamaré
página a los empleados. Bien. Entonces esto todo lo que
deberíamos estar esperando. Entonces este
deberíamos estar esperando. Regreso de memoria y opcional. Entonces para un opcional,
entonces para un opcional, podríamos decir esto opcional. Recuerda opcional
también tienen el concepto de else gets y
los likes, ¿verdad? Pero opcional, voy a decir si está presente,
dame esto. Si no está presente,
dame un default. En lugar de mostrar una excepción, sólo
voy a diciembre
hicimos esto aquí. Podrías haber
dicho, yo estoy presente para hacer esto, de lo contrario, nosotros hacemos esto, podríamos avis style, pero solo
te estoy mostrando otro estilo aquí. Aquí vamos a usar
otro estilo. Con eso, entonces
vamos a regresar. Creo que es hora de que
hoy devolvamos esto. Pero antes de que regresemos esto, también
hay algunos detalles que
tienes que pasar aquí. Eso lo hacemos en el siguiente video.
90. Paginación, parte 14: Oigan, chicos, genial
tenerlos de vuelta. Bien. Entonces antes de
entrar en implementar esto, ya
sabemos exactamente cómo
va a quedar, justo ya conscientes porque lo hemos hecho
para el subcontratar Así que vamos a completar esto rápidamente. Entonces ahora vamos a volver a la paginación de
empleados, a la paginación de
empleados Voy a devolver la paginación del
empleado establece la conexión, la conexión del empleado
, ¿verdad Porque voy a conseguir
una conexión de esto. Y la conexión
al parecer es solo una lista. Entonces vamos a decir Mw
simple lista de conexión, pasar la página probada
los empleados obtienen contenidos. El contenido
nos dará una lista de empleados. Entonces al parecer luego
pasarlo obtiene datos, obtienen datos recuperando
el entorno Entonces esto nos dará
el empleado de contenido. Entonces esto puede entrar en la conexión de los
empleados, ¿verdad? Entonces tenemos los
conceptos de conjuntos de puntos. Impresionante. Página.
Desea establecer el tamaño, el conjunto de elementos totales. Esa es la cosa genial chicos. Podríamos establecer los elementos totales. Podríamos establecer el
conjunto total de elementos totales. Ya ves, obtenemos el elemento total
de los elementos de la página. Esa es la diferencia
entre los otros chicos para que
podamos saber cómo
paginar, luego establecer página. Tenemos todos los regresando en
ese entonces regreso emplear paginación Entonces esta es la
diferencia, cierto, porque ahora podríamos
conocer los elementos totales antemano y podríamos saber cuántos elementos existen en
función del tamaño
que estamos estableciendo. Entonces, si estás fijando diez,
podrías tener 1,000, estás configurando 20 para que se
corten por la mitad, así que serán 500. Entonces esta es la diferencia, chicos. Es una diferencia. Ahora tenemos mejor
control sobre esto, ¿de acuerdo? Tienes un mejor
control sobre esto. Bien, así que hemos seguido adelante para implementar
todo lo que necesitábamos Así que vamos a
entrar y luego construir estas son las especificaciones de
búsqueda y búsqueda de nuestros empleados. Entonces ya sabes que va a seguir el mismo formato de ejercer
que este, ¿verdad? Va a seguir el formato
exa sme como este, ¿verdad? El formato Exactive Entonces para esto, ya sabes que
va a ser lo mismo y te he explicado este paso a
paso y último video. Entonces creo que debería llevar bastante
tiempo tener que repetir lo mismo porque vas a obtener
exactamente los mismos detalles. Así que deja pasar rápidamente el video
y tráelo, ¿verdad? Oigan, chicos. He ido
a traerlo. Trají el empleado si
especificaciones y consulta de empleado. Simplemente
hagamos rápidamente la comparación porque es exactamente
el mismo código. Ahora hagamos la comparación. Si lo miras,
tenemos el nombre, tenemos la fecha de nacimiento, tenemos el género, tenemos
el salario, y tenemos esto,
y tenemos todo lo que
viene del conjunto
la especificación utils
la especificación que es un contenido,
la primera parte que usamos Y el segundo en realidad
viene de si revisas. Esto se está utilizando entonces en la búsqueda de
empleados, ¿verdad? Entonces estás poniendo búsqueda de
empleados contiene fechas de
búsqueda de empleados entre. Lo mismo que hicimos
chicos, nada diferente. Estoy seguro de que esto
realmente se desarrolla. En realidad no quería
volver a hacer esto y verlos
ver exactamente cómo estoy codificando esto paso a
paso porque ya
lo hicimos en el último video
o en los videos anteriores. ¿Todo bien? Entonces entraré
en mi capa de servicio. Capa de servicio, y
luego cablear esto. Este es básicamente el
camino que me estoy perdiendo ahora. Luego entro y
luego lo conecté por cable. Esto al parecer es una consulta de búsqueda de
empleados. Eso realmente resuelve esto. Ya tenemos esto adentro
si vienes aquí, el UUID, voy a
traer esto también El UID, como pueden
ver, es solo esto. Voy en la lógica no cambia, la lógica
no cambia. Acabo de traer
los detalles exactos para que pudiéramos
ver cómo funcionaba realmente. Todo bien. Genial. No creas que en realidad código esto muy rápido.
Codificas muy rápido. Al parecer, mientras
desarrollaba el curso, la reparación que usé ya
tenía los mismos detalles ahí, así que me fue más fácil
traer. Pero ya sabes, no me gustaría aburrirlos chicos porque ustedes fueron muy pacientes conmigo por qué en realidad
traemos esto. Escribiéndolo paso a paso, ¿verdad? Entonces solo pienso que no
deberíamos repetir exactamente
lo mismo otra vez porque ustedes ya
tienen el concepto. Muchas gracias.
Podemos proceder. Ahora tenemos todo
traído. Ya he entrado para traer esto en
realidad. Recuerda, hicimos concepto
agregado el concepto de paginación de empleados
y la paginación,
si lo miras, paginación de
empleados
dentro de nuestra consulta, dentro de nuestra consulta Tener la paginación del empleado
que devuelve que toma int y tamaño y devuelve
la paginación del empleado, que tiene preocupación de página, tamaño, elementos
totales, y página total, que se casa o que
es exactamente lo que obtenemos de la página,
que es la primavera la página de dominio de datos de
primavera que nos da
exactamente los mismos detalles Solo estamos lanzando exactamente
estos mismos detalles. Con este giro hecho,
creo que es el momento. Podemos probar un poco. Voy a poner en
marcha la aplicación. Saca esto y
vamos a iniciar
la aplicación. Bien,
entonces se acerca. Se acerca la aplicación. Bien. Impresionante. Entonces la aplicación
comenzó con éxito. Vamos a AA. Todo bien. Entonces los mismos detalles. Ahora sólo me voy
a centrar en esto. Aquí ven la belleza, chicos. Pero vamos a tomarlo
en página y tamaño. Conocemos
los elementos totales de antemano porque la respuesta que
obtenemos la primera respuesta obtenemos nos da la página
total que nos
existe en función
del tamaño que metemos. Entonces con esto, sólo voy a
darle a esta primera guía.
Entonces vamos a darle. Impresionante. ¿Ves?
Tenemos un elemento total existente es 29 basado en el
parámetro que pasamos. Esto nos da una buena idea
en caso de que quieras
hacer la siguiente paginación y cómo
estructurar realmente las cosas Quiero más detalles. No quiero poner en rollo porque este papel podría
estar limitando las cosas. Elimino rollo, y
le pego de nuevo a esto. Verás, ahora tenemos 82. Podría decir que quiero
que sean diez de cada diez. Al parecer,
probablemente deberían ser diez. ¿Ves cuántos tenemos ahora? Ver ahora tenemos tamaño,
la tercera página es nueve. Cuando era 20, ¿cuál
era la página total? La página superior probablemente debería
ser aproximadamente la mitad, ¿ves? Al poner esto la página
superior es cinco. Bien, entonces creo que
entiendes el concepto, chicos, realidad no
quiero
repasar por todos los detalles, pero ahora ya ves cómo funciona. Entonces podría variar esto, elimino el papel que realmente
podrías
jugar con esto, jugar con esto,
quitar el papel. También podría decir, ¿sabes qué?, eliminar todos estos criterios. Pero esto va
a ser malos. Entonces, si vas
a quitar todo esto, no
voy a pasar nada, surge
stile Verás, tenemos 24.001, pero esto en realidad lo limita. Estamos seguros de que esto inmediatamente
limita así que vamos a tener entonces podemos empezar a
consultar a través, ¿verdad Entonces te estoy mostrando que
todo es opcional. Todo es opcional, ¿verdad? Podría decir, no quiero
esto. No quiero esto. Sólo quiero mujer, ¿
verdad? Este solo femenino. Verás, consígalo. Obtienes exactamente lo que pedimos
por todas las mujeres. Seguro que ahí tienes
el concepto. Bonita creo que esto
es bastante manejable. Manejable en el sentido de que
conocemos el
elemento total de antemano. No sé BC basado en
ningún criterio que estemos pasando. Estás pasando cualquier criterio, sabemos a lo que nos estamos
metiendo y
luego podemos usar esa información informada
para hacer lo que quiera. Ahora bien, algunos solo prefiero
usar un tamaño de página de cinco, el uno es salario
entre 30 mil y tal vez 100 100 100 mil vamos a buscarlo. Bien, entonces vemos que estos son
todos los detalles escritos. Entonces esto es bastante genial. Esto
es bonito, bastante genial. Entonces puedes usar esto para luego mostrar tu pantalla
y mostrar para la interfaz de usuario, el front-end para
mostrar lo que quieres. Muestro elemento total disponible porque esta es
información suficiente para ti. En base a cualquier consulta que
pases en la primera vez, vuelve con
el elemento total. Entonces puedes usar eso para
decir, Este es el número total de página en caso de que quieras ver
más detalles en la página, o puedes querer
ver 20 y pasar 20 y cuando
vuelvas a golpear esto y esto funciona. Ahora, sé que lo
mencioné para mí, esto es preferible
también les he demostrado chicos
que podrían lograr lo mismo con
estos primeros bits, que es para el subcontratar Te mostré que podrías usar lo mismo para
el subcontratar Pero solo eso recuperarás
el concepto de co fuente. Y ahora tienes
que estar
navegando por la cofuente de
principio a fin, pero seguro no sabes el número total de
elementos que existen. Eso no se puede determinar. Pero esto le da el
elemento total que existe, por lo que podrías saber cuántas
veces necesitas consultar. ¿Todo bien? Espero que esto
realmente converse a menudo. Entonces esto es todo el
riesgo para la paginación. Entonces te doy estrella, elige
cualquier estrella que quieras. Ahora, otra cosa que no hice, que es toda la
belleza de la paginación Podrías comentar
algunas cosas. Se podría decir,
no necesito el UUID. No necesito la identificación del empleado. No necesito el género,
no necesito fechas de nacimiento. Pero sin embargo,
cuando califique esto, solo dame este elemento, nombre, salario, rol, edad, y
si está activo. A ver. Y puede ver, eso es
exactamente lo que vemos, que es la funcionalidad
o ventaja
central central que GAF QL
ofrece sobre los demás Necesito mostrar esto
porque en realidad he pasado por mostrarte cómo funcionan
las dos paginaciones Necesito mostrarles que
esto sigue funcionando igual. Imagine un conjunto de datos rápido y grande. No quiero
fastidiar tu sistema, eliminar los detalles que no necesitas y solo
recuperar lo que necesites. T Los veré
en los próximos medios
91. ExceptionHandling, parte 1: Oigan, chicos, es bueno
tenerlos de vuelta. Justo en esta sección,
estaremos
hablando o implementando
excepciones, manejo de excepciones. Ese es el foco central de
esta sección en particular. Seguro que vas
a disfrutar de la misma manera. Disfruté creando este curso. Todo bien. Vamos a sumergirnos
. Vamos a sumergirnos. Lo que vamos a hacer para preceder
realmente a esto, quiero crear
algunas excepciones Vamos a crear un paquete
llamado exception. Todo bien.
Voy a entrar y crear un paquete
llamado exception. Impresionante. Tienes un
paquete llamado exception, dentro vas a crear algunos detalles extra,
algunas excepciones. Vamos a tomar
en una excepción no encontrada. No se encontró ninguna excepción
como excepción personalizada. Entonces vamos a uh
voy a extender la excepción de
tiempo de ejecución. La excepción de tiempo de ejecución. Sigamos
adelante y anulemos. Vamos a anular solo dos detalles. Así que voy a decir
insertar método de anulación. Solo anulemos esto y anulemos Anulemos la
base y anulemos la cadena. Creo que esto funciona.
Bien. Esto está bien. Sigamos de nuevo e implementemos
también la excepción de
proceso. Vamos a tener una excepción
llamada excepción de proceso. Más como excepción
que ocurre dentro un proceso también tenemos
esto que está bien. Creo que deberías
seguir adelante y también implementar. Intentemos implementar
intentemos implementar la excepción Acceso
denegado. Vamos a quedarnos con
esos tres por ahora. Excepción de acceso denegado. Evaluar la excepción nueve. Todo bien. Entonces ahora tenemos
unas excepciones personalizadas. Entonces con esto ahora, vamos ahora a entrar en todos los lugares donde hemos implementado
algunas excepciones y empecemos ahora a reemplazar. Sustituyamos cada una de
ellas con estas excepciones. Bien, entonces voy a revisar el servicio de dirección. ¿
Tenemos alguna excepción? No. Comprobemos el servicio
común. ¿Tenemos una
excepción? Oh, sí. Entonces aquí tenemos una excepción. Al parecer, estamos tratando encontrar mi identificación si
no está disponible, apostamos en no encontrado. Entonces, una excepción no encontrada, que en realidad hemos creado
una excepción no encontrada. ¿Bien? Ya ves, se
remonta a nuestros detalles todavía. Fresco. Nosotros tenemos esto. Comprobemos también. Aquí
estamos tratando de encontrar por nombre. Si el nombre no existe, vamos a usar la
misma excepción no encontrada. Esto funciona. Vamos a revisar. Acudir al servicio de la empresa. No tenemos una excepción
lanzada. Comprobemos aquí. No tenemos una
excepción lanzada. Conferencia al servicio de
detalle del empleado. Empecemos desde arriba. ¿Nosotros? Oh, sí, lo hacemos. Aquí dices aparentemente es una excepción de proceso
porque no encaja en
lo que esperas. Llamemos a esto una excepción
de proceso. Vamos a entrar. Si no, ¿qué más? ¿Tenemos una excepción? Ah, sí. Tenemos una
excepción aquí. Simplemente no lo encontré. Esta
será una excepción no encontrada. ¿Qué pasa con esto?
Esto ya existe, esto debería ser una excepción de
proceso. ¿Qué más? ¿Qué más? A ver. Aquí habrá una excepción no
encontrada. Sí, en realidad
estamos rastreando y cambiando todos los
detalles aquí
también será una excepción no encontrada. Genial, genial, genial, genial. Bien. Así que hemos seguido
adelante para cambiar realmente la mayoría de estos detalles,
lo cual es bastante genial. Comprobemos donde
tenemos convertidor um. Hicimos algunas cosas aquí, ¿verdad? Entonces aquí donde estamos lanzando
la excepción ilegal, entremos y lanzemos
podemos simplemente la excepción de proceso,
una excepción de proceso. Reemplazar excepción Neil, ¿verdad? Esto va a funcionar también.
Sí, así que estamos estandarizando todo para
usar ahora nuestras excepciones personalizadas Entonces ahora tenemos el control sobre él. Como en realidad
declaramos excepciones
personalizadas, vamos a atrapar
todas las excepciones. Bien, creo que esto
es genial por ahora. ¿Hay algún otro lugar?
Comprobemos la tabla de poblar. ¿Entrenamos una excepción
aquí? No, no lo hicimos. ¿Lo hicimos? No, no
entrenamos una excepción. Más bien, acabamos de cortar
toda la excepción. Estoy revisando mi T, la
MPA T, no lo creo. Aquí no tenemos ninguna
excepción. Bien, así que hola, chicos, en realidad
hemos podido hacer eso. Ahora vamos a probarlo.
Vamos a probarlo. Probemos la excepción sin manejar nada,
veamos cómo se ve. Voy a traer a mi Docker. Voy a traer a mi
Dockers Dockers acercándose. Después en la siguiente pieza de paso, vamos a comprobar con cuál
queremos probar. Bien, con que queremos
probar más bien. Esto crea empleado. Cuando estamos tratando de
crear empleado, esperamos que tengamos
una identificación de empleado, número de
departamento,
correo electrónico, se requiere rol. Uno de ellos debe estar disponible. Si está disponible, en realidad
lanzamos un error que
en realidad estamos tratando de pretar esto Esto es muy importante.
Vamos a usar esto. Vamos a hacer, voy a entrar voy
a usar
mi componer para comenzar en
el docker a menos que se demuestre que ha
comenzado con éxito Voy a entrar aquí para
comprobar si ha comenzado. Sí Dice listo para empezar a
aceptar conexión. Esto es genial. Esto chicos
bastante chulos. Voy a volver a esto está bien. Volveré al servicio. De hecho estoy usando esto está bien, comencemos
tu aplicación. Voy a iniciar
la aplicación. Bien, entonces estamos
iniciando la aplicación. Entonces voy a hacer una prueba, y vamos a ver exactamente
cómo surge esto. Entonces, ¿por qué publicar video en
parte en realidad aparece? Todo bien. Por lo que se ha puesto en
marcha con éxito. Bien, así que entremos. Entonces, cuando estamos tratando de crear, ¿qué esperamos aquí? Entonces dos detalles, ¿de acuerdo? Podemos probar con esto
lo que vas a hacer y también podemos probar con Vamos a
verificar los detalles. Si el ID de empleado
no es tarifa tratando actualizar una
dirección de identificación de empleado, y no se encuentra. La idea es solo mostrarte cómo saldrá
la excepción
si no se maneja adecuadamente, y vas a ver que no
es realmente bonita en absoluto. Entonces lo que voy a hacer Bien, así que volvamos
a nuestra colección. Así que voy a volver
a nuestra colección. Ahora estamos tratando de
crear empleado. Estamos tratando de crear
empleado, crear el empleado. Este es el nuevo empleado. Respetar a la
persona tiene un papel, tiene
lo que voy a hacer, voy a sacar esto,
voy a sacar esto. Dejémoslo en esto y probablemente solo pondré 11 aquí. La idea es sólo
simt una excepción. Intentemos crear este empleado eso es
lo que nos da. Bien, es un error del
servidor de Internet. Se puede ver, pero obtener error del servidor de
Internet, no
sabemos exactamente
qué pasó. Sólo estamos diciendo un error del servidor de
Internet porque básicamente no sabemos lo que hemos hecho
excepto para ahora ir a revisar los registros y esto
no es bonito para el usuario. ¿Ves? Se requiere el
rol del departamento de ID de correo electrónico. Esto es lo que esperamos ont
estamos viendo un error
del servidor de Internet. Esto no es lo suficientemente descriptivo. Significa que tenemos que
hacer algún trabajo extra. Necesitamos al menos mostrarle al cliente o los clientes lo
que están haciendo mal, y eso es exactamente lo que
queremos lograr. Probemos uno más.
Probemos uno más. Cuando estamos tratando de
actualizar la dirección, estamos tratando de actualizar la dirección
existente, ¿verdad? Solo volveré
y leeré sobre esto para que no
arruine mi colección. Estamos tratando de
actualizar la dirección. Actualizar dirección esperamos que este
ID de entidad esté disponible, así que solo voy a
estropearlo un poco. Aquí también voy a
estropearlo un poco. Intentemos actualizar una dirección
existente y
veamos qué pasa. Vamos a darle a esta flecha de servidor de
Internet. Verán, chicos, estamos recibiendo la flecha del servidor de
Internet. Intentamos dejar de trabajar
y actualizar temporalmente, solo
estamos obteniendo la flecha del servidor de
Internet. Ese es el básico que
obtienes. Eso es todo lo que obtienes. Si ves, ahora esto es
decir UUID picadura demasiado grande. Aquí estamos consiguiendo cadena
EID demasiado como, vamos a probar otra.
Vamos a reemplazar esto. Vamos a traer esto de vuelta
a la aleta normal, vamos a estropearlo un
poco. Vamos a estropearlo. Bien, vamos a darle a esto. Error interno del servidor. Estamos recibiendo un error
del servidor de Internet, veamos el tipo de
error es cierto. ¿Ves? Ajustar para con ID de
entidad no encontrada. Ajustar para empleado con
identificación, esto no encontrado. Debería haber sido un error apropiado. Estamos recibiendo un error
que no está bien. Voy a dejar esto
de la misma manera, vamos a probarlo de nuevo. Pero en esta ocasión,
implementemos ahora un manejo adecuado de
excepciones. Los veré chicos
en el siguiente video.
92. ExceptionHandling, parte 2: Oigan, chicos, es bueno
tenerlos de vuelta. Todo bien. Entonces
vamos a entrar ahora mismo para que implemente el manejo
adecuado de excepciones. Entonces vamos a hacer hay dos formas en las que podemos implementar el manejo de
excepciones. Podría ser moderno para
mí porque en realidad hay varias formas de hacer las cosas
en primavera. Te voy a mostrar dos maneras.
Déjame ponerlo de esa manera. Te mostraré dos formas de implementar realmente el manejo de
excepciones. Pero sin embargo, prefiero el segundo método porque
es más declarativo, ¿verdad? Es más decorativo. Yo uso la palabra declativo
porque pone las cosas en una perspectiva o
en un contexto particular Y eso lo vamos a
ver. En primer lugar, usemos la forma genérica, ¿verdad? Yo voy a crear
esto. Voy a llamar a esto. Voy a llamar a esto, solo llamo a
esto, ¿cómo debería llamarlo? Lo llamaré manejador de
excepciones. Vamos a llamarlo alterno. Quiero llamarlo manejador de
excepciones alternativo. Vamos a llamarlo manejador
Alternativo de Excepciones Alternativas. Número el nombre realmente no
importa, pero debería ser lo suficientemente
descriptivo. Debería ser lo suficientemente
descriptivo para decir exactamente lo que estás
tratando de lograr. Ahora con esto, se extendería. Extendería
el fetcher de datos. Excepción de búsqueda de datos. Excepción, adaptador de resolución.
Tienes que hacer esto. Creo que no
deletreé esto correctamente, así que solo lo deletrearé. Adelante y renombrar este
refactorial esta alternativa. Es por ello que es
necesario incorporar la excepción de la
característica de datos es sobre el adaptador y básicamente
lo convierte en un componente, tiene que ser visto como un haz. Ahora, entonces
anularemos algunos métodos. Vamos a traer esto
para que podamos anular. Ahora, como puede ver,
podemos anular dos métodos. Número uno, se puede ver
que está a la altura de soltero, genial. En segundo lugar, también podemos anular
es hasta múltiples errores. Estos son los dos
detalles que
realmente necesitas anular.
Estos dos detalles. Es hasta single ands
a múltiples errores. Ahora, yo haría esta nota. Esto toma los más altos precedentes, los
más altos precedentes. Por favor, tenga esto en cuenta. Si tienes precedex
pienso pre precedencia. Si tienes estos dos, implementando el
mismo tipo de error, tomaría esto primero
antes de asumir esto. Favor de avisar amablemente. Si tienes una flecha ya definida aquí que
esta está cogiendo una flecha y esta también
está atrapando la flecha,
esto tendrá prioridad Bien, pruébalo. Lo que voy a hacer,
voy a comenzar esto antes
que nada, para que veas cómo funciona Y en
realidad vamos a trabajar en esto. Entonces digo que voy a decir si
la excepción, ¿verdad? Instancia de ¿cuáles son las excepciones con que
estamos probando testnelia Vamos a confirmar. ¿No lo encontré? ¿Qué hay de aquí? Cualquier proceso, no se encontró ningún proceso.
Entonces usemos esos dos. Si se trata de una instancia de excepción de proceso, ¿
verdad? Entonces, ¿qué hacemos? Bien devolver una gráfica
QL ern error. Este es este tipo
lo que se espera. Vamos a devolver esto. Bien, ¿puedo darle
mucho más detalle? Cuáles son los detalles
que le puedes dar. Pero el regreso está en lugar
de este mensaje, voy a elegir la excepción. Diré que el punto de excepción
obtiene mensaje localizado. Eso nos dará el error
exacto que masticamos, Obtener mensaje localizado mensaje
localizado Entonces esto está bien. Entonces también podemos definir
algo llamado el tipo de error. El tipo de error podría
darnos el tipo de
error que código. Al parecer, fue
un mal pedido. Si tienes una excepción de proceso, supongamos que es un mal
registro porque es
posible que se trate básicamente de un error de
servidor de Internet. Pero voy a
guardarlo como una mala petición. Diré flecha. También tienes este tipo de error. Tipo, puntos mala solicitud, tipo de
error, solicitud mala. Esto viene de lo que necesito. Esto debería estar viniendo
de entonces la señal. Entonces debería venir
del marco de primavera, error. ¿Tipo? Sí. Sí. Lo necesitamos de
spring framework, Graph Que ejecución, tipo error. Puntos mal pedido. Eso es genial. Entonces podemos establecer el camino. La parte al parecer, ni siquiera
sé interpretar este camino, pero básicamente
nos dan la opción de interpretar
realmente
partes. Obtenemos ejecución. Obtener el paso de cution
infos get path. Yo solo te muestro un
camino claro. Entonces también podemos hacer el
concepto de ubicación. Ubicación, sólo hay que poner la misma ENV, que viene de este entorno de obtención de
datos,
chicos que viene de este entorno de obtención de
datos,
chicos. Viene de aquí. ENV, digamos
que eso se ve. Vamos a ir a la casa. Entonces vamos a
obtener la ubicación de origen. Esto está bien. Esto es genial. Hagamos lo mismo. Si esto es así de bien, entonces solo quiero
hacer un fallar rápido. Si no coincide con esto, no
debería pasar por él solo
debería saltarse ya. Hagamos esto también. Si sólo voy a traer esto en no. Entonces, en lugar de usar IL,
vamos a rellenar primero. Si no se encuentra, no se encuentra excepción
hará lo mismo. También es un mal pedido. Creo que esto
también está bien, ¿verdad? Estamos escogiendo el exacto. Entonces si no
coincide con nada, entonces devolvamos uno genérico. Nos volvemos algo genérico, no
podemos encontrar nada. No concuerda con nada,
que mach algo genérico. Esto sería esto, ¿verdad? Entonces podemos hacer
esta Sara interna porque no
coincide con nada, ¿verdad? Esto es bastante genial.
Comencemos con esta aplicación. Reiniciemos la aplicación. A medida que empezamos, la aplicación
ya que empezamos bastante genial. Bastante genial. Próximamente. ¿Se acerca esto? Genial. Esto
ha comenzado con éxito. Entremos de nuevo
y probemos esto. Voy a volver a crear
al empleado, crear al empleado, quitando los detalles que agregué antes. Los detalles que agregué antes, estos detalles porque
esperamos que esté ahí.
Voy a sacar esto. Voy a sacar esto.
Ahora vamos a darle otra vez. Como puedes ver, esto
es genial chicos. Ahora tenemos el error particular
que es ID de empleado, departamento,
rol de correo electrónico se requiere, que es exactamente lo que
estamos esperando. Si nos fijamos en esto, es exactamente lo
que estamos esperando aquí. Aquí, es exactamente
lo que esperamos. Se puede ver que esto
funciona bastante bien. Ahora la parte es solo la
parte del empleado aunque no
sé cómo
interpreta esto , pero está bien La clasificación
es una mala petición. Entonces puedes escoger
esto y empujar a tus clientes para que
en caso de que sean errores, les
des esta
definición o este esquema, ellos puedan mirarlo para
saber interpretar los errores. Normalmente, si no hay error, esta parte de error
siempre será nula. Los errores siempre serán
pero si hay una flecha, ya sea nula o
vacía matriz vacía. Pero si hay una flecha, al parecer obtienes estos
formatos. Bastante genial. Ahora hagamos lo
mismo. Para ID de entidad. Voy a decir entidad, no
voy a
cambiar nada. Lo que espero que diga es
el ID de entidad no encontrado, algo en esa línea.
Vamos a darle a esto otra vez. Puedes ver dirección o
empleado con DNI no encontrado. Se trata de chicos bastante chulos. Estoy seguro que ahora
ves cómo funciona. Ahora, menos común
en el siguiente video para implementar para
múltiples errores. Tenemos también para
múltiples errores. Te dije que hay
dos formas, que es una única resolver el
error único y el error múltiple. Los veré chicos
en el siguiente video.
93. ExceptionHandling, parte 3: Oigan, chicos, es bueno
tenerlos de vuelta. Todo bien. Ahora
hemos podido demostrar que esto está
funcionando como sospechado. Ahora, vamos a implementar
para múltiples. Quiero mostrarles que esto tiene más prioridad que esto Entonces voy a traer exactamente
el mismo error, derecho, exactamente la misma flecha.
¿Y qué voy a hacer? Voy a elegir esto
todo como es, ¿
verdad? Todo tal como es. Pero recuerde, esta
ahora se convierte en una lista mientras que ésta
devuelve un solo objeto. Entonces, lo que voy a
hacer no es difícil. Sólo voy a traer
esto y lo envolveré dentro de una lista lista punto off. Todo bien. Voy a
tener esto está bien. Esto igualmente, la lista punteó apagado. uso real esa es una de las cosas hermosas
del nivel Java, usas una lista de
por último, estas partes. Entonces presiona esto en
la lista punto off. Ahora bien, ¿cómo vemos
cuál tiene prioridad? La mejor manera de ver es
ejecutar en modo de depuración. Voy a ejecutar
esto en modo de depuración. Voy a colocar esto aquí. Voy a colocar esto aquí y voy a
colocar esto aquí. Al parecer son los dos errores, así que solo lo colocaré
y lo colocaré aquí. Colóquelo aquí, coloquemos aquí, y presionémoslo aquí. Presionémoslo aquí y
vamos a probarlo aquí. Verás, estoy presionando en esto. Veamos cuál
realmente tiene prioridad. Dije que esto va a
tener prioridad, y lo creo así Comencemos la aplicación
en el modo bug. Una vez que entra,
podemos ver cuál de ellos realmente
nos da exactamente lo
que estamos buscando. Estamos iniciando
la aplicación, manera que en realidad comenzó
con éxito. Oh, sí. Sigamos adelante y
golpeemos vamos a darle a esto. Comienza con el
último que probamos. Vamos a darle a esto. Bien,
ahora ya se puede ver. Si entras, puedes
ver que ignoró esta es una sola flecha e hizo de
ésta un precedente superior Si revisas la documentación,
ahí está escrita. He podido demostrar que
esto tiene mucha prioridad. Hagamos también por el otro. Hagamos por la otra, estas partes o vamos a crear. Veo que esto también
tiene prioridad. Espero que esto quede claro, chicos. A, esto es bastante genial.
Voy a liberarlo. Volveré a ajustar mi esquema porque mi hotel porque no
quiero perder los datos cuando
estoy compartiendo el guión, ¿de acuerdo? Bien, así que esto es genial, chicos. Esto es
bastante genial. Bien, así que he podido
demostrar que
realmente tienes podrías usar esto para realmente
disolver tu error Imagínese si tiene 20 errores. Entonces significa que
hay que estar comprobando la instancia de cada uno
de los errores personalizados. No creo que esté bien. Esto funciona bien. No
tiene ningún problema, ¿verdad? Pero creo que también hay una
mejor manera de lidiar con ello, que es lo que les voy a
mostrar en el siguiente video. Los veo chicos en el siguiente video.
94. ExceptionHandling, parte 4: Oigan, chicos, genial
tenerlos de vuelta, ¿verdad? Así que hemos podido mostrar una forma de
atrapar realmente nuestra excepción, que está extendiendo este adaptador zoa de excepción de
búsqueda de datos zoa de excepción de
búsqueda de Vaya, eso es un
bocado. Todo bien. Así que en realidad hemos
podido hacer eso, y esto funciona como
se esperaba. Bien. Entonces la otra opción o la
alternativa para hacer que eso funcione, necesitamos eliminar realmente
el componente aquí. Entonces esto ya no se
ve como un ben, ¿
verdad? Hay que
encomiar esto. Ya no se ve como una viga. Entonces ahora vamos a
explorar realmente las otras aperturas. Así que voy a llamar a este controlador de excepciones
globales porque eso es básicamente lo que quiero que sea un controlador de excepciones
globales,
un controlador de excepciones globales No hace falta que
hagas nada elegante, sólo
voy a
seguir el mismo patrón de primavera, que ya
sabes. Sólo voy a agregar
en consejo de controlador. En Asesoría del Contralor. Un consejo de controlador, increíble. Impresionante. Voy a tener
en consejo de controlador. Ahora, en esta ocasión, utilizará una
anotación llamada en GraphQL,
un controlador de excepciones GraphQL un Después pasando el tipo de
excepción que quieres atrapar. Verás, toma en una clase, toma en una clase que
extiende un triable Como puedes ver, todas nuestras clases, esto es extender un
tiempo único y verificar una vez, extender la excepción, excepción
es extender los agudos Entonces simplemente significa que
una excepción de proceso también
es un trob entre comillas Lo que vamos
a hacer aquí mismo, vamos a colocar nuestra
PSExeception, o Impresionante. Dices público, devuelven ese tipo, la flecha Graph Queer como
ya conocemos , flecha
Graph Queer. Luego también devolvemos nuestro entorno final
de obtención de datos. Recuerde, esto está disponible para lo que siempre está
disponible en contexto. Voy a llamar a este
proceso excepción. Esta es una descripción del
proceso bastante genial. Todo bien. Voy
a traer esto, luego voy a regresar
voy a regresar. Son solo los mismos
formatos, chicos, así que probablemente solo voy exactamente
el mismo
formato que esperar. Simplemente voy a hacer clic en
este formato aquí. Voy a entrar aquí y
sólo lo devuelvo directamente. Entonces aquí va a
ser llamemos a esto X, entonces x, mal pedido, y todo simplemente
sabe igual. la misma manera, solo
voy a hacer lo mismo por lo
mismo para
excepción excepción, ¿verdad? Tiene que ser reconocido.
La parte que espera. Esto tiene que ser
reconocido, ¿verdad? Excepción. Entonces Excepción, puede tener para que veas que el nombre está diciendo,
Oh, esto es diferente. Entonces para esto, voy a
cogerte no encontraste excepción. No es divertido excepción o clase. Espero que venga
de lo mismo. Sí, eso es correcto.
No es una excepción divertida. No va a ser
una excepción divertida. Esto está bien. Sólo va a parecer un
método sobrecargado, ¿de acuerdo? Esto es lo mismo, ¿verdad? Voy a dejar esto aquí. Entonces vamos a atrapar también. ¿Qué más podemos atrapar?
¿Qué más podemos atrapar? No podemos sentarnos
tenemos el error genérico,
cualquier error de tiempo de ejecución, ejecutar cualquier cosa que no se corte, vamos a atraparlo en la excepción de tiempo de
ejecución incorrecto,
una excepción de tiempo de ejecución, al parecer va a ser un error de servidor de
Internet. Entonces lo mismo, vamos a atrapar una excepción en sí. Excepción. Solo estoy mostrando las
diversas formas en las que podrías
personalizarlo según sea necesario. A estos también voy a llamar. Esto es básicamente
todo lo que necesitas hacer. Con esto, corramos
en el modo bug. Ejecutando el modo bug, va a colocar esto aquí o colocar esto aquí y se puede
ver que esto funciona igual. Esto es más contextual. Creo que este
lugar en realidad este se ve hermoso. Realmente no sale
fuera de lo que ya tú. ¿Correcto? Ves usar
exactamente el mismo formato. A diferencia de si está desarrollando un barco oscilante
tradicional, usaría un manejador de excepciones Quiero decir, el HTTP más bien.
Se utiliza el manejador de excepciones Aquí está utilizando un controlador de excepciones
GraphQL. Entremos y golpeemos
el mismo método. Voy a estropearlo también. Voy a estropearlo esta parte
, vamos a llamarlo. Como pueden ver, este
fue Cott Ooma sc. ¿Ves que esto funciona, chicos? Impresionante. Esto funciona solo
podría congelarlo. Si verificas, nos da la definición exacta.
Esto no se encuentra. De igual manera para los últimos bits. Los últimos pedacitos para el plan Nian, voy a sacar esto. Saquemos el departamento y vamos a darle a esto. Bien, puedes
ver que atrapa la excepción del proceso
que se mostró. Voy a liberarlo
y vemos correctamente, dice
que esto se adquiere. Todo bien. Hemos podido
probar esto y esto funciona maravillosamente.
Podrías entrar. Si vemos alguna otra excepción
ves que está cortada dentro la aplicación que no está contabilizada y quieres mostrar el mensaje
a tu cliente. Solo necesitas atrapar
esa excepción exacta. Vamos a estar agregando
seguridad agregando seguridad. Al parecer, algunos errores podrían ser arrojados en la capa de seguridad. También quiero mostrar algunos tal vez una mala
autenticación, mala credencial Solo necesitamos
entrar y solo agregar el tipo de clúster que se mostró y solo
resolverlo por ti. Esto es chicos bastante chulos, y eso es todo lo que
hay que manejar con excepción. No es
nada difícil. Básicamente obtienes solo necesitas definir
tu excepción personalizada. Usa este método, este método, que es el resultado a
un solo nivel si lo eliges, tienes que estar comprobando la
instancia de o
verificas los múltiples errores y
usar instancia de pero recuerda, el resultado a múltiples errores tiene más prioridad que esto O alternativamente,
no usas esto a pesar de todo, solo
usas el estilo HTTP de
primavera. Pero esta vez,
usas un dispositivo controlador y realmente traes un manejador de excepciones QL de
brecha de arte Eso es todo lo que hay
al manejo de excepciones. Los veré chicos
en el siguiente video.
95. Validación, parte 1: Oigan, chicos, es bueno
tenerlos de vuelta, ¿verdad? Es realmente increíble que
hayas regresado y
oigas realmente presenciar
esta sección. En esta sección, estaremos
hablando de validación. Derecha. Validación. Ahora lo sé virtualmente, mayoría de la gente habría
estado preguntando, ¿de acuerdo? Realmente me encanta graph Co. Pero el punto es,
¿puedes hacer alguna forma de validación
hiperida Es posible oh, sí, tenemos eso realmente
disponible para nosotros, y eso es lo que
discutimos en esta sección o implementando. Entonces, si iniciaste el
curso desde el principio, te
dije específicamente
por qué estoy usando Java 22. Y una de las razones básicas por las
que estoy usando Java 22 es porque quería que apoyara la validación
extendida de Graph co Java. Guau, tal bocado. Sólo tienes nombres largos. ¿Bien? Entonces,
¿cómo qué soporta esto? Como puedes ver, la última
versión sólo soporta Java 22. Ahora sé que Java 23 está
fuera ya que en este momento, realidad
estaba
grabando este video, pero aún no tienen
soporte para ello. Intenté usar Java 21. Me hubiera encantado
apegarme a la versión LTS. No obstante, descubrí que esto no estaba funcionando
como se pretendía, estoy trabajando como se pretendía. Vas a entrar y
traer esta dependencia y luego comenzar nuestro proceso de
validación. Impresionante. Bien,
chicos, entremos en ello. Lo primero que
vamos a hacer, voy a entrar y simplemente
aclarar esto. Toma esto. Después entraré en mi
PandXL mi Ponder XML. Voy a traer
voy a traer la
validación, la validación. Yo sólo refresco esto. Para quienes están bastante interesados en resolver
vulnerabilidades, esta vulnerabilidad
se disolvió como resultado. Solo necesitas moverte
a Creo que lo último
la última versión de primavera a partir de este momento es Springbok 335, ¿verdad Solo necesitas
pasar a esa versión y todo esto se habrá ido, ¿
verdad? Todo esto se habrá ido. Prácticamente podría
mostrarte ahora mismo. Este soy yo que chicos un
poco. De alcance. Pero quiero mostrar para aquellos que
en realidad están implementando un sistema empresarial
y eres muy particular sobre
las vulnerabilidades y quieres eliminarlo todo. Así es como resolverlo.
Una vez que colocas esto en 335, esto va cómo
resolver realmente todo. Y cuando
regreses,
verías que todos esos
errores se han ido. Esos errores han desaparecido. También podríamos trabajar con 335
y eso básicamente va a funcionar. Entonces, por favor, no se alarme. Sólo
te estoy enseñando cómo hacerlo. Voy a volver a
lo que ya usamos. ¿Verdad? Tres o tres o cuatro. Eso es con lo que
comencé un curso y sería genial terminar
realmente con eso. Yo querría
cambiar la versión, Nat y ella, bien, porque algo
en alguna parte podría funcionar. Entonces voy a sacar esto.
Voy a refrescar esto, y pueden ver que esto
realmente va a volver, todas
nuestras vulnerabilidades. Si realmente venimos,
en realidad está de vuelta. Todo bien. Así que vamos a
añadir el primer paso, que es la validación
extendida. Esto es bastante genial.
Así que ya hemos podido completar ese paso. Comprobemos la documentación y veamos qué hacemos en realidad. ¿Cómo se espera que
utilicemos esto? Bajemos. Lo primero que
tenemos que declarar, queremos tener algo que
se llame directiva. Recuerden, esto no debería
ser extraño para ustedes. Usamos la misma directiva
cuando estamos tratando hacer paginación. Vamos a entrar. Bien, así que vamos a
entrar en nuestra carpeta, esta carpeta de recursos, y vamos a revisar nuestra directiva. Recuerden, yo introduje esto donde estamos tratando de
llevar directiva, ¿verdad? Estamos tratando de hacer
paginación más bien, ¿verdad? La directiva de conexión At. Lo mismo que hay
que usar aquí ahora, hay varias
directivas aquí, ¿verdad? Varias directivas.
Entonces necesitas decidir cuál quieres
usar, solo tienes que agotarte. Como pueden ver,
hay una directiva. Hay una directiva, veamos. Hay una directiva para un máximo
decimal si eso es lo que
necesitas para un conjunto cae
para una media decimal, un dígito, al máximo, en la media, en error negativo
o negativo, no contenedor
vacío patrón vacío además esto es realmente cierto para
saber exactamente lo que necesitas. También está en blanco, ¿verdad?
También está en blanco. Entonces vas a
traer lo que necesites, y eso es lo que vas
a aplicar a tu sistema. Necesariamente no
necesitas de todo, ¿verdad? Simplemente elija exactamente lo que
necesita e impleméntelo. Te voy a enseñar cómo hacerlo
enseguida, ¿de acuerdo? Entonces esto ya está disponible. Agregué esto a la descripción. Entonces en caso de que quieras
ir ahí, ¿verdad? Así que en
realidad voy a entrar
ahora mismo y luego comenzar a agregar
todo lo que necesitamos en. Todo bien. Entonces entremos. Entonces la propina directa,
tienes la propina directa. Impresionante. Entonces ya tienes la
directiva, así que entremos y
traemos esto. Lo primero que
quiero traer, quiero traer directiva,
directiva llamada AX M a mí. Para el a mi,
tengo valor, ¿verdad? Tener un valor, que
va a estar en int y la tinta antes de que sea
cero significa el mínimo quiero ser cero entonces
también quiero el mensaje. Quiero darle
un mensaje personalizado. Debes poder declarar
tu mensaje, lo cual está bien. Cadena de mensaje, tiene que
seguir el mismo formato, chicos. No estoy generando esto,
ya está hecho en documentación. T solo ve a Admin.
Yo sólo voy a Min. Veo que Min T dice que
acabo de traer todo esto.
¿Esto es todo lo que necesitas para traer? Simplemente puede copiar
esto directamente, en lugar de simplemente escribir. Podría traer esto
, pero creo que deberían ser formatos mob. Sólo lo estoy formateando
de la manera adecuada. ¿Verdad? Ahora, dices que esto es
todo lo que necesitas hacer, ¿verdad? Esto es todo lo que necesitas hacer. Ahora bien, esto ya lo trae. Entonces cuando quieras usarlo, ves exactamente cómo
vas a aplicar. Así que entremos
y llevemos las otras
cosas que necesitamos. Todo bien.
Solo publiquemos el video, solo traigo a los
otros chicos. Todo bien. Entonces hagamos una más. Yo les voy a enseñar a ustedes
sus otras cosas. Simplemente publicaré rápidamente el video y traeré
las otras cosas que necesitamos. Este video no llega
a registrar. Todo bien. Entonces necesitamos para el tamaño, en realidad
podrías traer NN Va a ser un ocho, cero. Oh hombre, no me
gusta escribir, ¿verdad? Soy un desarrollador perezoso.
Desarrollador de Lesia en realidad implementa aplicaciones bastante
geniales así que no tengo que escribir. Esto es por talla, sólo
voy a traer esto en lo que necesito aquí. Voy a traer
esto. Voy a traer esto, traer esto. Entonces para MATT, luego
para enmascarar esto. Déjame pausar el video y
traer tus dorsales dia. Ustedes. Me metí y compré las otras
cosas con dian lo he estado necesitando no en blanco. Esto es solo esto.
Recuerden, chicos, lo
hice chiflados. Esto es una locura. En
realidad no tienes que almejar nada. Hay alguna documentación.
Mira el espacio en blanco. Veamos en blanco.
Blank dice directiva, no en blanco, este mensaje y
esto es exactamente lo mismo. Acabo de reformatear, es
exactamente lo mismo que necesitas. Este es el primer
paso que necesitamos. Recuerda, agregas
en la bomba dictML llevar la bomba directa sumando más bien la dependencia me refiero en la bomba dictMLG a
directiva, poner en directiva Directriz es lo mismo que tienes cuando en realidad, lo que tratamos de hacer pigination Ahora estamos haciendo lo mismo ahora estamos tratando de
hacer validación Con esto hecho, vamos a verte en el siguiente video y luego
continuar con este proceso. Los veré chicos
en el siguiente video.
96. Validación, parte 2: Oigan, chicos, genial
tenerlos de vuelta. Todo bien. Hemos entrado, hemos
agregado la dependencia. Compramos en los tipos
que usarás. Recuerda que muchos
de ellos por si hay algunos que aún quieras
usar, por favor tráigalos. Ahora bien, ¿cómo usamos esto? Esa es la siguiente pregunta.
¿Cómo usamos esto? Eso es lo que
vamos a abordar en este video. Todo bien. Ahora, antes de seguir
adelante para usar esto, hay algo muy importante a lo que debemos
prestar atención. Volvamos a
la documentación, paso a paso. Ir
a la cima. Dice, Si estás
usando botas de primavera,
veamos, hay un camino para springbot Si estás
usando botas de primavera,
entonces él dice, si estás
usando Graph Q DSL, entonces hablas algo de
inglés te dice que
deberías usar esto,
intenta usar esto, Deberías tratar de traer esto
y eso estaría bien. No necesitas molestarte por todo
esto, ¿verdad? Solo trae esto
solo cable esto, ¿
verdad? Y eso
estaría bien ahora. Por favor, preste mucha atención reglas de
validación, val nuevas reglas sobre estrategia de error de
validación,
no nulo, ¿verdad? Así que ten esto en mente, y se supone que debo
cablearlo como un cable de runt Ahora bien, si estuviste
bastante observador, te has dado cuenta de que
ya tenemos algo hecho así para
nuestro escalar extendido, y eso es a lo que vamos a ir
rápidamente Vayamos a nuestra configuración. Gap queer configure,
veo que ya tiene un configurador de cableado equivocado Solo vas a
entrar y solo traer estos detalles adicionales que realmente
se requieren, y eso es lo que
activamos o básicamente, eso es lo que ponemos en marcha,
hacemos validación activa. Eso es lo que
vamos a hacer bien. Entonces entramos ya aquí, luego entramos y
luego traemos los detalles. Ahora, en base a la biblioteca o a la dependencia que trajimos, ya está disponible
para decir validación. Esquema de validación de validación, cableado de esquema, cableado de
esquema es igual a nueva
validación, cableado de esquema. Entonces traigo esto en reglas
de validación. Así es como entra. Validw reglas, la barba, voy a decir validación
recuerda lo que
vimos en la
estrategia de validación, yo ern Entonces solo estamos viendo
lo mismo, nada diferente. Ahora que trajimos esto, esto es básicamente todo lo que necesitamos. Justo ahora
lo cableamos a esta parte. Voy a traer esto aquí. Yo sólo traeré esto
aquí. Yo sólo diré puntos. Cableado directo y
solo trae esto y eso sería
exactamente lo que necesitamos. Impresionante. Ves
esto es squa feliz Ahora hemos podido hacer esto, y esto ya es un.El siguiente paso para
nosotros es ahora
entrar y empezar a traer
los detalles que necesitamos. Para ello, para hacer
una nota de validación, no
sucede
dentro de nuestros objetos. Sucede dentro de nuestra
gráfica QL o nuestra gráfica QL. Entonces todas las reglas de validación que
están trayendo sucede dentro de nuestra gráfica QUS y eso es exactamente lo que
estamos obteniendo Todo bien. Entonces saltamos justo adentro. Entonces el primero así que quiero
apuntar es nuestra empresa. Recuerda, es la entrada donde estás validando son los puntos de
entrada, ¿verdad Por favor, tenlo en cuenta.
Son los puntos de entrada. ¿Y cuál es el
punto de entrada aquí? ¿El imputado? Recuerden, la imputa
es lo que entra aquí. Así que vamos a nuestra API. El incluse es lo que viene aquí. Entonces esto es lo que
se validará. Así que ten esto en mente. Entonces,
¿cómo se validaría? Para empleado, si estás
usando departamentos, esto será validado. Es simplemente de la misma
manera que tienes en tu HTTP tradicional de
primavera, ¿verdad? Para empleado, esta será una guía que será validada,
esta guía aquí. ¿Todo bien? Para dirección,
tenemos dirección también, debe ser la guía
que se validará. Así que por favor tenlo en cuenta. Entonces voy a cerrar todo. Bien, vamos a cerrar
todo a la derecha. Entonces uso el tintineo derecho,
cierro todas las tapas a la derecha. ¿Bien? Todo bien. Así que entremos y agreguemos
aquí nuestras validaciones. Ahora bien, la validación
es bastante sencilla. Todo lo que tengo que hacer, es. Recuerda que te dije que la coma es importante o no importante, lo que sea así que solo la
voy a quitar aquí Voy a decir en no negro. No quiero que el
nombre sea negro. Entonces ya ves que podría
poner un mensaje. Impresionante el mensaje estaría en com en Company Name
bien, déjame ver. Yo solo digo el nombre de la compañía. Nombre de la empresa.
Déjenme darle un espacio. Se requiere el nombre de la empresa, ¿verdad? Se requiere el nombre de la empresa. Entonces también usaré el tamaño en él. Yo quiero decidir. ¿Qué
talla quiero darle bien? Diré mínimo. El solo decir mínimo,
debería tener dos
caracteres, ¿verdad? Mínimo dos caracteres.
Entonces un mensaje. Podría ser el mayor tiempo posible. Entonces el mensaje voy a
decir nombre de la empresa. Comminme debe ser
mayor que digamos cuatro Digamos cuatro.
Digamos que debe ser mayor. Digamos cuatro.
Pongamos cinco aquí. Pongamos cinco aquí.
Antes de cinco años, estaban diciendo que la cosechadora
debe llegar alrededor de cuatro, esta obra debe ser mayor de cuatro. Obtener alrededor de cuatro serán cinco. Creo que esto funciona muy bien. Más de cuatro,
pongamos caracteres de palabra clave. Hagamos esto por esto. Entonces puedes poner tu
coma aquí. Esto funciona. Pon tu coma aquí. Entonces probablemente
elegiré
no usar cómics. Cualquiera que sea el trabajoSeverJ
elija no usarlo aquí. Entonces también voy a hacer
lo mismo aquí. Yo sólo voy a poner todo esto,
voy a usar lo mismo. No me gusta escribir demasiado. Copiarlo encima. Aquí
estará el número RC. Se requiere el número RC
para no estar en blanco. Entonces debería haber
un mínimo de cuatro. A pesar de que recuerdo seis, lo
pusimos dos, cuatro está bien. Digamos, el número RC debe
salir de cuatro personajes, estoy seguro de que alguien
ya está burbujeando Guau, esto también es posible aquí Sí, es posible. Voy a agregar lo mismo aquí, agregar lo mismo aquí. Tenga en cuenta que si
agrega su coma aquí, no cambia
nada porque ni
siquiera se reconoce en
primer lugar, ¿verdad Yo solo en realidad hago las cosas más descriptivas. Entonces,
por favor, tenga en cuenta eso. Puedes poner esto aquí,
probarlo para que funcione, ¿verdad? Lo probé mientras me
desarrollaba, así que confiaba en trabajar. Bien, así que aquí
vamos a decir oficina central. Se adquiere la oficina central,
S oficina central. Oficina central cuatro bien, ponte en cuatro personajes,
que puede ser así. Y por último, vamos a
validar esto. Diré que este es un país
País país se requiere. Un país quiere
que se haga cuatro personajes. Todo bien. Entonces, ¿qué
pasa con el tipo de negocio? Podrías hacer
algo como esto. Podrías entrar. ¿Hay
algo como no nulo? C, ¿es algo así como no
nulo? No no en blanco, ¿verdad? No en blanco tiene que
ver con cuerdas. Solo busca no nulo. No tenemos un no ahora. Es necesario aclarar alrededor para
ver cuál básicamente encaja. Podrías usar cosas
como patrón, ¿verdad? Podrías usar contenedor
tiene que ver con lista. Te dice lo que aplica eso. Verá que esto se aplica
a los objetos de entrada. Podría asegurar que
esto no Mt también podría funcionar porque se aplica
a las ideas de cuerdas. No creo que esto
vaya a funcionar porque
necesitamos algo tiene que
ver con los objetos. Por lo que esto se aplicará para no
objetar. Entonces esto está bien. El patrón solo se puede aplicar
a la cadena de forma idente. Entonces, por favor, sé muy sensible. Cuando intentas usarlo y estás viendo
esto, si no lo haces, solo
imaginarías que tu validación no
está funcionando, o porque
no le prestaste atención necesitas prestar atención
a lo que aplica. Wh aplica a eso
va a funcionar realmente. En realidad necesito
señalarlo. Esto es muy crucial chicos. Bien. Lo he hecho
por compañía, estos videos ya se
hacen demasiado largos. Dejemos de marcar
el siguiente video y sumar para los otros chicos. Los veré chicos
en el siguiente video.
97. Validación, parte 3: Oigan, chicos, genial
tenerlos de vuelta. A continuación, al siguiente
al que realmente quiero aplicar esto. Apliquemos a empleado. Vayamos a empleado empleado. Voy a aplicar
a empleado Impute. ¿Por qué usas estos
empleados Impute? Seamos muy claros. ¿Por qué
usas Employee Imputes Déjame verificar empleado
Imputar empleado Imputes. ¿Llegaste a usar
empleado Impute? Utilizamos putes de actualización, utilizamos la dirección imputes ¿Usaste alguna imputa de
empleado? Déjame estar seguro.
Comprobemos encasillamiento No, no utilizamos insumos de
empleados. Al parecer,
no quieres colocar nada aquí porque
si colocas esto, va a ser estricto
para tu paginación, así que no quieres
tener nada aquí Bien. Creo que podemos hacer
por los insumos de los empleados. Cuando estamos tratando de
crear, creo que esto sería genial, Esto sería genial. Vamos a entrar. Pongamos
las actualizaciones de los empleados. Sí, sé que usamos actualizaciones de
empleados. Voy a hacer esto
no en blanco y no en blanco. Te dije que si pones una
coma, no importa, así que sólo voy a
dejarla aquí porque muestra de qué otras formas
esto seguirá funcionando Digo identificación de empleado. Se requiere. Entonces para esto por sueldo, voy a usar
dígitos en cifras. Voy a poner el
mensaje, diría yo, salario no puede superar la longitud, diez, y máximo decimal cuatro. Explicaré lo
que eso significa en un poco Explica lo que eso significa. Bien. Voy a tener
aquí voy a tener aquí el entero. El entero será diez,
luego una fracción. Ahora bien, lo que esto significa es, te
traeré bota. Digamos que tienes esta cantidad. Cuando se cuenta esta cantidad, los dos son de longitud
deben ser uno, dos, tres, cuatro,
cinco, seis, siete Este es este es seis
y un dígito aquí es dos. Digo, no quiero que
un dígito supere los cuatro. Por eso tiene una
fracción de cuatro. La longitud de esto básicamente
debería ser de diez, ¿verdad? Entonces por eso si tienes
algo mayor que esto,
al parecer, ese es un salario de suma
mareado Significa que el salario es muy
muy caro, ¿verdad? Quiero decir, ese salario es
realmente una locura, ¿verdad? Entonces no queremos
usar eso, ¿verdad? Entonces imagina que tenemos uno, cero, cero, 00, eso es cinco, uno, dos, tres, cuatro, cinco. Al parecer, no será
un salario muy válido, ¿verdad? Todo bien. Probablemente si lo
conviertes a alguna moneda, sí, podría ser, pero
dejémoslo en esto. Bien. Uh, entonces tenemos insumos de
empleados. ¿Qué más podemos validar aquí? ¿Qué más podemos validar? Creo que solo lo
dejaré en esto para las entradas de búsqueda, entradas de búsqueda de
empleados. ¿Quiero validar esto? No creo que quiera
validar esto. Volvamos a nuestra AP. Cuando estamos creando, utilizamos el empleado subcontratado impute Cuando utilizamos imputas
subcontratadas por empleados, todos estos tipos dependen probablemente del
empleado Pero estamos seguros de que
cosas como el salario de género, estos son muy importantes. Sólo voy a poner
probablemente dos validaciones, el nombre y el salario, el nombre y
el salario.
Eso es lo que voy a hacer. Nombre y sueldo.
Voy a entrar aquí, lo que lo llamamos de nuevo es empleado subcontratar empleado subcontratado imputar Busquemos
imputes subcontratados por empleados. Empleado tercerizado. Empleado tercerizado imputa. ¿Lo tenemos en
un lugar genérico? Déjame comprobarlo. Lo reemplazarás, empleado subcontratado Yo salsa tales imputas. Esta es nuestra salsa. Nuestra salsa. Veamos, uh, Persona,
persona tiene persona,
empleado tiene esto. ¿Por qué te quedaste con esto? ¿Por qué
es difícil de encontrar? Creo que probablemente
debería poder encontrarla aquí. Esta es la consulta. Vayamos a la mutación,
creamos empleado. Este patrón tiene imputa,
genial, genial, genial. Es un independiente. Es
autónomo generar puse. Sólo voy a
colocar esto aquí, no
pongo en blanco aquí. No estoy en blanco. Voy a
poner en el mensaje. Diré que se requiere nombre. Hagamos para esto
también, yo uso un dígito. Mensaje, voy a poner el entero, pongamos diez, la fracción, pongamos cuatro, y el mensaje, veamos, solo voy a escoger
el mensaje del último. No me gusta tanto escribir. ¿Dónde lo coloqué? Yo
sólo escogeré esto aquí. Impresionante. Yo sólo reemplazaré esto. Esto funciona muy bien.
Ya agregué esto en. Recuerden, necesitamos construir esto, necesitamos reconstruirlo
ahora para que lo patee. Voy a entrar y
voy a comentar todo esto. Recuerda, porque yo
uso constantes de excavaciones. Y las constantes DGS no
sonreirán cuando no pueda encontrar esas constantes, Después eliminaré
la carpeta de destino, luego traeré esto de nuevo. Diré NBN compilar. Por lo que esto debería compilarse
sin ningún error. Una vez que lo haga,
entraré y traeré esto nuevo y les traeré de vuelta las cosas comentadas. Así que vamos a llamarlo. Impresionante. Entonces esto está de vuelta, así que
sólo voy a regresar, quitar esto entra
aquí, quita esto. Entra aquí, quita esto y
entrando aquí, quita esto. Y por último, entro aquí
y me quito esto. Bien. Entonces con esto hecho, creo que somos lo suficientemente buenos
para comenzar a probar. Voy a iniciar
la aplicación. La aplicación se
inicia con éxito. Y vuelve en
el siguiente video para
comenzar a probar porque
tenemos todo, todos nuestros detalles correctamente echados al lado y agregamos todo lo
que necesitamos agregar, y estamos bien para probar. Impresionante. Así que esto
en realidad está surgiendo. Sí, esto lo declaró con éxito,
y no hay ningún error. Los veré chicos
en el siguiente video.
98. Validación, parte 4: Oigan, chicos, genial
tenerlos de vuelta. Este es el momento en el que
nos hacemos la prueba, ¿de acuerdo? Aquí es donde obtenemos los tintes
de prueba. Todo bien. Entonces, lo que he hecho antes de
este video es que
entré para agregar también detalles
para las entradas de dirección. Entonces para las entradas de dirección,
también tenemos entradas de dirección, algunos detalles en porque
esto también es muy válido. Entonces, ¿qué voy a hacer bien? Entonces lo que voy a hacer
es que voy a detener esto y luego
intentar reconstruir de nuevo. Tan rápido, rápido, detén esto. Intenta reconstruir de nuevo.
Recuerda de la misma manera. Les estoy mostrando que en caso de que estén haciendo
lo mismo, saben exactamente cómo hacer
esto, ¿verdad? No, no esta A.
Borraré mi carpeta de destino. Todo bien. Después
reconstruyo compilar VN. Detén esto. Yo debería
ser compilar NVN Todo bien. Entonces mientras se acerca
esto, sólo
voy a seguir adelante y luego volver a esta parte y
empezar a comentar algunos Todo bien. Bien, bien.
Por lo comentado, comentado, comentado,
comentado, descomentado Lo genial es que ahora tenemos todo traído
para nosotros para que podamos probar
que tenemos dirección y los me gusta, dirección
y los me gusta. Entonces esto sigue siendo lo mismo, aquí no
cambié nada, los empleados siguen siendo los mismos, no
cambié nada, agregando más detalles a
la entrada
de dirección que también pudiéramos
probar las entradas de dirección. Bien, así que vamos a
probar a estos tipos. Bien. Entonces, lo que vamos
a hacer por la compañía, estamos tratando de crear compañía. Voy a
estropear esto y quitar esto. Voy a quitar esto
voy a quitar esto. Volvamos a validar. La validación para los estados de
la empresa, debe ser de al menos
cuatro, al menos cuatro. Voy a quitar esto.
Voy a hacer estos tres. Voy a hacer esto. Lo
que hago esto solo digo, M dos. Entonces voy a quitar esto
por completo. Vamos a darle a esto. ¿Qué obtenemos? ¿
Mi aplicación está arriba? No, la aplicación está arriba. Empecemos con la aplicación. La aplicación está
tratando de salir. Bien, entonces la
aplicación ya está arriba. Entonces volvamos a pegarle. Entonces golpeamos esto, boom. Se requiere país,
lo cual es muy cool. Se requiere nombre común,
lo cual es muy chulo. país debe ser rallado
en cuatro caracteres, lo cual es muy chulo.
¿Cuál es la otra parte? El número de Con C debe obtener
un cuatro caracteres. Número LC no puedes
ver si
notaste que no viste la
parte del número C no requerida, ¿verdad?
Eso no va a ver. Entonces, para probarlo, volvamos a agregar
todos estos detalles. Bien, así que sólo voy a poner aquí
solo dos personajes vamos a darle a esto. ¿Nos puede ver el número era
mayor que cuatro caracteres? Escojo exactamente la
misma validación, la
misma manera que
tienes la validación de banda. Y grandes obras chicos,
esto es bastante genial. Es bastante genial. ¿Cuál
es el siguiente paso? Pidamos dirección. Por dirección, lo mismo. Recuerda que agregamos
validación en el salario. Voy adelante para hacer esto más largo que diez. Vamos a darle a esto. Tratemos de crear
esto. El sueldo no puede superar el lente diez y marcar los
mismos cuatro y usted confirma, lo cual es bastante correcto. Esto es mayor a diez. Eso es un poco.
Vamos a reducir esto. Para los detalles del número. Déjame tratar de alargar
ahí. Vamos a darle a esto otra vez. ¿Podrías ver que el decimal máximo
aquí es mayor que diez, y por eso
estamos teniendo esta flecha Estoy seguro que esto es
muy claro chicos, así podemos ver que todas las
flechas están dando patadas Ahora bien, para la dirección imputa
para la dirección imputa nosotros
buttes ¿cuáles son las validaciones que
agregamos en la agregamos Sólo vamos a confirmar. El
ID de entidad no debe ser negro. Déjame eliminar ID de entidad. Aquí. Todo bien. Todo claro esto. Voy a quitar probablemente me voy a
dejar por aquí. Tres, me voy
a ir por aquí. Vamos a darle a esto. Se puede ver, también
recoge la validación. También recoge la
validación dentro de la lista. Esto funciona también chicos. Esta salsa de trabajo también
quería mostrarles
chicos ustedes ven tiimos
entre estos Y esto básicamente
funciona según se requiera. Bien, necesito
mostrarles que esto está funcionando
como se esperaba. Voy a entrar
y quitar esto
completamente eliminar
esto completamente, así que un día, vamos a darle. ¿Ves? Ciudad debe estar entre
cuatro a este personaje. Esto básicamente funciona, chicos. Les he enseñado a hacer validación y esto funciona muy bien. En realidad puedes extenderlo a los demás componentes
que tengas. Pero recuerda, solo puedes
agregarlo para tus entradas,
las entradas son tu parámetro. Básicamente, lo que haces como
un cuerpo de solicitud y los gustos las cosas que entran en tu sistema y ahí es donde
colocas tu validación. Espero que eso quede claro,
chicos, espero que eso sea muy, muy claro y esto ha
sido emocionante para ustedes. Lo mismo con ha
sido emocionante para mí. Adelante,
extiéndalo y
podrás ver realmente cosas
increíbles en
tu aplicación. Los veo chicos en el siguiente video.
99. Teoría de sockets web: Oigan, chicos, genial
tenerlos de vuelta. Todo bien. Entonces en esta sección,
pasaremos a los sockets web, ¿verdad? Entonces estoy mostrando este
diagrama en la pantalla solo para mostrar un poco de
lo que trata el socket web, y entremos rápidamente en él. Impresionante. Bien. Entonces en una aplicación HTP
tradicional, tienes un solicitante de HTP, que es tu cliente
hace una solicitud, y es por eso que
ves doble flecha Es decir, hacer una solicitud
y obtener una respuesta de vuelta. Hacer una solicitud y
obtener una respuesta. Básicamente, así es como funciona. Lo mismo para Graph care
hacemos nuestra petición, al parecer, usamos Postman, hacemos un post y los likes y en realidad
recuperamos las cosas, pero solo una cura en Graph, no
tenemos ese
concepto de post, para llegar a usar esta
mutación o una consulta, que ya explicamos
en sección anterior Pero necesito realmente
armar esto para
poder entender. Ahora, ¿y si? Queremos notificar a nuestros clientes sin que ellos hagan una solicitud. Queremos exponer
algún tipo de información para
que una vez que la información esté disponible, simplemente se la
transmitamos. Como muchos que realmente estén conectados a la aplicación
o estén escuchando en ese gráfico en particular puntos de
Kellen solo
obtendrían la notificación Un ejemplo típico para
que esto sea más claro
sería que realmente estás en un banco o dices una empresa o sitio web
roto de acciones, los
ves cambiando
la moneda,
la cantidad de moneda por tiempo, solo sigue actualizándose
en función de los precios del mercado de valores. Tienes eso realmente
pasando. Eso de alguna manera no está controlado por la
solicitud del cliente. Básicamente, solo están
liberando esa información y haciéndola actualizada o deberíamos
entrar en un salón bancario. Algunos de ellos sí tienen
todos estos medidor de pantalla que muestra el
cambio de moneda por tiempo. Lo mismo debería
considerar aquí, donde acabamos de publicar. Es un concepto de cancelación de suscripción de
publicación. Publicaremos y cuantas personas estén suscritas a ese
canal lo escucharán Otro ejemplo típico sería que estés sintonizado en una
estación de radio o canal de televisión. Si estás enfocado en ese
canal en ese momento, cualquier información que te estén
dando la recibirá. Por lo que no
depende de
que hagas que esas solicitudes solo estén disponibles
desde la aplicación. Lo mismo que
vamos a hacer aquí donde vamos a estar liberando algún conjunto
de información, uh y nuestros consumidores que
en realidad están suscritos
a nosotros solo lo
darán para obtener esa información. Entonces es un concepto
de que publiques la información y quien
sea suscriptor, en realidad
solo podrá leer esa información. Ahora bien, ¿cuál es el caso de uso? ¿Cuáles son los casos de uso típicos? Es caso de uso porque B, te has dado cuenta de que
los clientes solo están siendo creados en tu plataforma
sin la documentación adecuada, y quieres
informar, digamos un equipo, un equipo de regulación para poder
escrutar cada vez que se crea un
cliente Una buena manera es que en realidad podrías hacer una aplicación GAF Quel, proporcionar asegurar que el equipo de
regulación esté suscrito En el momento en que creas
un nuevo cliente, reciben una notificación, ¿verdad? Reciben una notificación,
como, Oye, se ha creado
un nuevo cliente, y podrían entrar
y simplemente verificar, ¿verdad? Entonces esa es una muy buena manera ver
realmente hacer eso. Otro ejemplo que
puedo pensar Pascua, hay alguna
información que quieres liberar regularmente de
tu aplicación, y los suscriptores quieren
realmente entrar o realmente creas un gráfico QL en realidad creas una aplicación GAF
QL para
probablemente una cervecería o para algún tipo de cliente,
mayorista, quieres que
tus minoristas
sepan que los productos están
disponibles para el
tomar. En el momento en que obtienes la mercancía, probablemente solo digas, Oye,
la mercancía está disponible. Simplemente lo empujas
y los datos que te
suscribí en su aplicación
solo serán notificados Eso es lo mismo que
ves en un teléfono móvil, solo aparece alguna notificación. Es como un empujón.
Probablemente deberías empujarles y quien esté suscrito usando esa aplicación solo
podrá recibirla Creo que
típicamente exclusivo. Ahora bien, ¿por qué tenemos algo llamado búfer de
contrapresión? Ahora hay formas típicas, hay varias
formas en las que podrías conectarte a un socket web. Pero esté utilizando algo llamado búfer de contrapresión. Ahora la razón por la que estamos usando
el búfer de contrapresión es porque nos da
un almacenamiento de memoria para poder almacenar el mensaje o el mensaje
que se está publicando Almacena en el estuche,
esto es muy importante. En el caso de
que no haya suscriptor, se guarda, podemos determinar
cuántos queremos guardar. Te mostraré en la
aplicación cómo podrías realmente aumentar el valor predeterminado o mostrarte cómo
aumentar el valor predeterminado. Pero sin embargo, esto es
básicamente lo que harás para
tener realmente
guardado el mensaje y quien
sea el suscriptor cada vez que una
persona se suscriba, libera toda la
información en absoluto Esto lo voy a demostrar. Vamos a dar a conocer varios datos, y aún no conectaríamos a
ningún suscriptor. Ves en el momento en
que te suscribes, solo lees todo. Sin embargo, en el momento en que
un nuevo suscriptor, digamos que ahora tenemos un suscriptor
existente y alguien más entra entonces
a la suscripción, ¿verdad? No vería información
previa. Verá los nuevos contenidos
que se están publicando. Sólo el primer suscriptor
verá todo lo que
se está publicando. Ese es el caso donde se están publicando
varias notificaciones o mensajes, pero no se suscribe a nadie, lo
enviará en búfer,
o una vez que una persona lo lea, vacía esta cola Bien, sin que se
diga, entremos en el código y tengamos
esto escrito. Bien, chicos, los
veré en el siguiente video.
100. Websocket, parte 1: Oigan, chicos, genial
tenerlos de vuelta. Todo bien. Con base en la
sección de teoría se basan en el video de teoría que tuvimos el
último video que era teoría. Ahora entremos en los detalles
prácticos. Ahora, ¿cómo empezamos? Para traer realmente
socket web a tu aplicación, lo primero es que
tienes que agregar una dependencia. Esto es muy crítico, chicos. Hay que agregar una
dependencia para que esto funcione y
¿cómo entra esto? Traer una dependencia. Trayendo una dependencia. Voy a ir a la sección de dependencia. Recuerdo que
mencioné la última vez, si quieres clari
por errores como este, cuando ves un error como
significa que hay una vulnerabilidad Solo necesitas
actualizar. Estoy seguro los springers siempre hacen
un seguimiento y son tan buenos Lleve un conector web de
arranque de arranque de resorte. Este es el socket web de
arranque tra Spingot. No necesitas
manejar la versión, probablemente
la versión será traída. Ahora bien, ¿cómo se relaciona esto? Porque mencioné
pedacitos de teoría. ¿Cómo se relaciona esto? Ahora,
tenemos mutación, ¿verdad? Tenemos cuavy. Este socket web
se relaciona con la suscripción. Si recuerdan vívidamente, chicos,
hablamos de suscripción Cuando miramos al auditor. Todos los tipos de datos
al principio desde el costo,
hablamos de esto, ¿verdad? Esto es suscripción
donde. Así que aquí es donde Websce realmente juega
el papel muy importante, Entonces también, si
revisas nuestra entidad, tenemos nuestra entidad que realmente suscribe
tienen esos datos. Ahora, seguimos adelante para luego
crear una ruta de suscripción. Ahora, recuerden que tenemos mutación, tenemos consulta, así que en realidad tenemos
que hacer eso. Todo bien. Entonces este es el
primer paso que tenemos que manejar. Bien, así que
lo siguiente que necesitamos realmente ahora tomar conocimiento es un
Bueno, realidad
no tengo esto Recuerda lo último que
hicimos por mutación y consulta, si no cambiamos el nombre, el nombre va a entrar en conflicto. Entonces voy a
venir aquí, solo
di que cambio esto a muestra. Voy a
cambiarlo a muestra, ¿no? Así que en realidad se alinea. Entonces no entra en conflicto
con lo que
vamos a usar. Ahora voy a crear. Después voy a crear una suscripción, suscripciones de
suscripción brafqls Gráfica QLS. Bien.
Muy bien, genial. Entonces tenemos esto ya agregado. Entonces este es el siguiente
paso que pensamos. Así que tomándolo paso a paso. Ahora bien, cuáles son las cosas en las que nos
vamos a centrar. Así que básicamente vamos a
estar centrándonos en crear nueva empresa se crea, estas son la
descripción que estoy usando. Cuando se crea una nueva empresa, cuando quieres
recibir una notificación y cuando
se crea un nuevo empleado , no
recibimos ninguna notificación. Creo que eso debería
ser suficiente. La idea es enseñar realmente
el concepto
para que tu uso llegue a donde necesitas notificar
a tu cliente sin que ellos necesariamente se
conecten, ¿verdad? Sin necesariamente
hacer solicitudes, quien esté realmente conectado en ese canal podrá
recibir notificación. ¿Todo bien? Así que en realidad
usamos Create company. Empresa rápida. Bien. Copia rápida. Todo bien. Yo básicamente estamos haciendo un DT de
empresa lo cual es importante, y también estamos tomando empleado de
Cuick, ¿verdad Empleado y vamos a
liberar empleado DTL. Recuerda, no puedes
liberar a la entidad, ¿verdad? Debe liberar un tipo
que defina su gráfica QL. Recuerda que tenemos una ruta de
mapa para convertir la entidad a la DTL.
Esto es genial chicos. Hemos podido realmente
lograr esta parte para ellos para crear realmente
hemos agregado la dependencia, hemos agregado esto en.
¿Cuál es el siguiente paso? El siguiente paso básicamente
es que necesitas
ir a tus recursos o
mejor dicho a tu aplicación, las propiedades la aplicación
de propiedades, ¿verdad? Necesito definir un concepto. Ahora bien, estos chicos, recuerden que los
separé aquí
por las cosas que realmente
vas a usar para cobonts porque
esto es un También tengo estas pruebas
por defecto, ¿verdad? Si miras esto con claridad,
no te mezcles esto. No estás usando un perfil local o usando un perfil local. Tenga en cuenta que si no quiere
hacer esto, esta es una actualización. Si no quieres
hacer perfil Spring local, solo puedes agregarlo aquí. Esto es lo mismo
aquí. Este perfil lo
hará por
ti automáticamente. Entonces solo agregas perfil
y eso va a hacer eso. Bob sin embargo, la
razón por la que fui por esta ruta de perfil primaveral Local es porque no la
definí aquí. Entonces esto se cargaría
automáticamente como local, ¿verdad? Pero si no
definí esto en absoluto, necesitas realmente por defecto, crear una variable de entorno y eso básicamente entrará en acción, pero la estoy
controlando manualmente para
que en nuestro archivo cubant,
se junte Estoy seguro de que lo consigues justo y en realidad lo verás venir. Lo siguiente que
vas a hacer para GraphQL, tenemos que traer realmente, tenemos que decirle a la aplicación donde queremos escuchar Estar escuchando en websircuts Estoy listando en el
sitio web llamado paths En esta ocasión, solo
quiero usar el valor por defecto. Estoy seguro de que esto es
por defecto solo confirme. Trayectoria. Bien, así que
estas son las almohadillas. No hay ningún defecto.
Utilice la suscripción. Nos vamos a apegar a
la suscripción predeterminada. Vamos a agregar
esto. vamos a usar
una suscripción. Esto en realidad juega
un papel importante. Estoy seguro de que esto es
genial, chicos. Entonces vas a
cambiar esto, y este es el camino que
vamos a usar, ¿verdad? Bastante genial. Bastante
genial, chicos. Todo bien. Entonces esto es así que en realidad hemos
tocado otro aspecto, la dependencia, hemos
agregado en el tipo. Hemos añadido en esta parte
vamos a escuchar. Entonces, cuando iniciemos
la aplicación, aquí es donde
estaremos escuchando para realmente hacer esa actualización. Bien, entonces creo que ese es
un buen progreso desde mi parte. Lo siguiente en lo que tenemos que
enfocarnos, ¿verdad? En lo siguiente en lo
que debemos enfocarnos, vamos a la
empresa Creates, ¿verdad? Vayamos a la compañía crea y en realidad detengamos la etiqueta. De hecho, vamos a crear el
esqueleto que necesitamos. Recuerda, antes de
hacer eso, necesitamos construir esto para
que esto pueda conectarse, ¿
verdad? Esto se puede cablear. De lo contrario, el gen de código
podrá construir realmente esto. Recuerden el concepto que les
mencioné a ustedes
que en realidad comentan constantes indigosas que
están usando no falla Por eso en realidad estoy
comentando esto. Entraré o eliminaré
mi carpeta de destino. Entonces voy a ejecutar V y comparar eso
básicamente debería pasar por. Eso está pasando.
Esto está hecho. Yo publico el video solo
tengo esto, esto está hecho. Puedes entrar y
traer esto de vuelta. Viniendo aquí. Está bien la escuela, así que tenemos este empaque,
y es realmente genial. Recuerda que agregamos dos detalles. Número uno, agregamos en compañía. Entonces esto sería en el
controlador de la empresa y
agregamos el empleado. Tho sería el controlador
empleado. Podrías decidir crear
un controlador diferente,
digamos, llamarlo controlador de
suscripción. Entonces, cualquiera que
funcione para ti, ¿de acuerdo? Eso es genial, ¿verdad? Entonces, básicamente entremos
y luego agreguemos esto. Así que en realidad nos
dirigiremos al controlador de la compañía
y realmente haremos esto. Voy a los controladores de la empresa
es controlador de la empresa. Ahora el controlador de la empresa y
luego crea el esqueleto. Contamos con mapeo de esquemas. Como prestar atención.
Tienes typename Un nombre de tipo
será constante DGS. Ahora bien, este debería ser del tipo de
suscripción porque uso suscripción. Es un tipo de
suscripción bastante genial. Entonces, ¿cuál es el nombre? Tenemos este campo, algunos utilizamos DGs constante suscripción
Dot Estás siguiendo el mismo
patrón de suscripción. Punto estoy seguro que lo adivinaste, crea compañía. Crear empresa. Bien, esto es
genial. Tenemos esto ya ala ahora vamos a traer esto en
realidad. Recuerda, estamos
listando al final de lo que estamos
listando commit DTU Porque estás listando
cometer DTU cantar algo llamado déjame rematarlo. Voy a tener más sentido aquí. Entonces lanzamos algo
llamado flujo, ¿verdad? Un flujo es un concepto en
una programación reactiva que permite
ala uno o más datos. Se puede liberar en más datos. Ahora bien, si quieres
liberar solo un dato, puedes usar un concepto
llamado mono concept llamado mono voy a usar un flux aquí porque al parecer, duramos solo un
objeto, pero por favor, puedes usar flux,
puedes usar Mono, ¿verdad? No me estoy metiendo en detalles
de programación reactiva, pero así es como lo
consigues, solo para mostrarte el concepto
de cómo funciona Webflux Entonces si llegamos a abrir
la definición, Esta es una cosa que me encanta hacer. Me gusta descompilar cuando no
entiendo como funciona
algo, descompilo para poder
ver como básicamente funciona Una vez descompilamos esto
y si verificas, si realmente
lees, ¿qué dice? Pero el mono. De hecho
, saqué esto, ¿verdad? Todo bien. El tipo de valor
de las fuentes de datos. Bien, así que vamos a entrar en los datos. Se trata de un h. El editor de flujo act
con operadores RX que emite de cero a n elementos, cero a N elementos, uno o muchos o de cero a muchos, en realidad
podría ser cero
o podría ser muchos También tienes el
concepto llamado mono. También podrías usar mono.
Mono es lo mismo, pero mono es solo de cero a
uno si lo miras. Si miras a
este tipo, dice, básico
reactivo que
más emite un ítem, es
decir, cero a uno Estoy seguro de que ese concepto
es claro chicos. Envuelva rápidamente este video. Vamos a terminar rápidamente
Shopper lo que estamos haciendo. Terminemos Shopper
nuestro stubbing o nuestra creación de esqueleto Recuerda empresa de leasing DTO al final del día empresa
DTO que tenemos crea No hace falta ningún argumento
porque al parecer, esto no
depende de los clientes. Depende de la
aplicación, nosotros la arrendamos. Yo sólo voy a devolver yo nulo. Bien, con esto, te
veré en el siguiente video.
101. Websocket, parte 2: Oigan, chicos, genial
tenerlos de vuelta. Bien, así que hemos sido
capaces de hacer esto, y lo que hemos
podido hacer es que
hemos sido capaces de detenerlo de
hecho. Se puede ver esto así que
ya lo ha encontrado, esto existe. Esto es exacto.
Entonces, si vas ahí, puedes ver que esto está bien. Entonces vayamos a la sección de empleados
y hagamos lo mismo. No me gusta
escribir mucho código. Te voy a detener
todo esto, ¿de acuerdo? Vamos a la sección de
empleados. Acabo de darle a esto la sección de
empleados. Bien, entonces este
es el empleado. Ahora lo que voy a hacer
es que voy a cambiar esto a palabras crear empleado. Crear empleado, cambiar
para crear empleado. Todo bien. Entonces ahora
si revisas esto, puedes ver que está apuntando
al segundo tipo. Entonces esa es la primera parte
que hay que
completar realmente ese bit. Bien, así que vayamos
a la implementación. Entonces vamos a hacer, voy a venir aquí y
voy a decir, dentro del mismo tipo, Bien, no
quiero perder ni un punto. Creo que es genial
mostrárselos chicos. La forma en que tenemos el
mapeo de mutaciones, podrías haber adivinado. Recuerda que te dije que hay otra manera de escribir
una alternativa. También tienes algo
llamado mapeo de suscripción. Por lo que esto también está disponible
en el mapeo de suscripción. Mapeo de suscripción.
Estos están disponibles, así que sé que tienes justo
lo que va a ser. Al parecer, echaremos de menos este primero y este tipo solo va a ser de valor yo solo trayendo
las constantes DGS, Esto cava constantes Se trata de chicos bastante chulos. Bien, así que también
podrías tener esto lo que prefieras el
tiempo que usen Sólo voy a
comenzar a salir. Así que vayamos dentro de un servicio de empresa. Lo que voy a hacer es que
voy a crear Empresa. Entonces dentro de la Compañía,
voy a
llamarlo punto Empresa DTO flux Empresa DTO flux. Sólo llámalo darle
empresa DTO flux. Creo que esto funciona.
Voy a entrar y luego crear esto.
Vamos a crearlo. He podido crear
un flujo DTO de la empresa. Ahora bien, ¿cómo funcionaría esto? ¿Cómo funcionaría esto? Seguro que ustedes tienen curiosidad por
saber cómo funcionaría esto. Cómo es este trabajo, tenemos que decir que queremos
tener la memoria. Queremos conservar la memoria una vez que se haya creado un nuevo ga. Recuerda que te dije el
diagrama que mostré antes,
esa daga, ese búfer de
contrapresión Tenemos que crearlo aquí
trayéndolo final. Una final. Tienes algo
llamado sincronismo. ¿Correcto? Lo primero que siempre voy a
aconsejar a la gente que realmente quiere saber exactamente
cómo realmente cosas nuevas, siempre trate de verificar
la documentación. Entonces este tipo toma un tipo, que sería una compañía
tipo DTO, entonces lo llamaré compañía Sync Llamémoslo
sincronización de compañía si sincronizo compañía. Sincronización de la empresa. Todo bien. Ver esto es di creado para nosotros. Esto es decir sincronizar
muchos multicast. Ahora bien, esta multidifusión
ya debería darte una idea, es
decir, para muchos suscriptores, vamos a comprobar la
definición. ¿Ves? Esto dice que Badcast señala
a múltiples suscriptores, por favor tenlo en cuenta Podrías usar
unicast. Esto sería para un solo suscriptor. Pero como queremos que
mucha gente se conecte, entra este tipo. Pero recuerda el concepto si entra
una persona al menos una persona, ambas, todo saldrá. Pero sin embargo, si
solo quieres una persona,
nos vendría bien esto. Ahora hay otros
conceptos que podríamos guardar en la memoria
dónde entra
realmente la nueva persona y queremos determinar qué partes
quieren entrar realmente, qué datos quieren liberar
la cantidad de datos. Pero no voy a
discutir eso aquí, ¿verdad? Claramente sugeriría que busques programación
reactiva, ¿
verdad? Springboards programación
reactiva Se llama Venus en Eudmi que realmente hace un buen trabajo al
explicar realmente la distancia Así que en realidad lo
recomendaría. Bien. Bien, entonces
tenemos a este tipo. Lo que pasaría es que cuando
creamos una nueva compañía aquí, necesitamos actualizar a este tipo. Creamos una nueva
empresa, diríamos, fregadero de
compañía Sincronización de compañía. Entonces intentamos emite. Ahora tal vez te estés
preguntando por qué estamos usando tri emit. Te
voy a mostrar. Esto ya se ha
hecho. Esto es realmente genial. Gracias por
completar. A ver. ¿Por qué probar emite? Prueba EI dice que tratamos de emitir intentar emitir no elemento generar
una señal ness. La idea es que es
psits intenta decir caso se le da una flecha a ros El valor emite no nulo. Compruebo que no sea nulo, al
menos un Mutron Yo digo trow unchecked excepción, los últimos resultados y las mentiras Quiero que ustedes
solo pasen por esto. Todo lo que estás diciendo es que hay
una función emite. En realidad se puede comprobar
que hay un emite, ¿verdad? Hay un emite siguiente, pero estamos usando el tri em para que en caso de que ocurra un error, también
podrías atrapar esa flecha. También podrías usar
el error tri emit en caso de que estés seguro de que básicamente
se producirá un error . Este básicamente funciona, recuerda que no es sincronizar muchos
multicast múltiples suscriptores entonces vamos a ver este búfer de
contrapresión Si nos fijamos en este búfer de
contrapresión, ¿qué dice? Entra a decir,
recuerda hasta Q, es
decir, puede ahorrar
hasta el tamaño
el tamaño que mencioné.
Este es el tamaño. Puedo ahorrar hasta este tamaño, guardar este lado, ¿pueden ver
los datos? ¿Puedo ahorrar 256? Puedo ahorrar 256. Podría establecer esta
propiedad para cambiarla. Probablemente podrías simplemente hacer
esto y cambiar su comportamiento. Podríamos decir, Oye, quiero
cambiar este comportamiento
cuando esto esté sucediendo. Puedo hacer una propiedad fija. Entonces hago una propiedad set set. Entonces voy a hacer set property,
y
puedo decir, no quiero que ahorre 256, quiero ahorrar 1,000. Entonces, en el momento en
que hagas esto, debería poder
ahorrar más, ¿verdad? Pero por favor ten en cuenta, si tienes un pequeño carnero y
no tienes mucho espacio,
apégate al predeterminado. Pero si sabes que quieres
poder quedarte más,
por favor, adelante y
siéntete libre de hacerlo. Siempre considere cuidadosamente
si está ejecutando una aplicación
distribuida, ejecutando una
aplicación distribuida, tenga
cuidado en cómo usa esto,
¿de acuerdo? Cuidado con la forma en que usas esto.
Bien, así que esto es genial. Bien, entonces he
podido mostrarle esto cómo establecer el valor en caso de que quiera
aumentar el búfer,
pero el búfer, el búfer de lista
es 256, ¿de acuerdo? Ahora, tal vez se esté preguntando
este búfer de lista. Por favor, es posible que desee
verificar esto claramente. Bien, esta
parte que mencioné,
mencioné que ves que dice solo reenvía
a un suscriptor, el elemento han sido
empujados a la sincronización después. Verás, esto era una
letra mayúscula para hacer realmente muy fuerte
esta declaración después de que el suscriptor se
haya suscrito, al
menos una persona
debe suscribirse Todos los elementos
han sido amortiguados debido al calentamiento de
contrapresión. Digo, digamos que en realidad
puedes contener datos de syste y
empujaste alrededor de 20, estás seguro de que
es el último sistema realmente
tienes en tu cola Esto es muy importante saberlo. Esto es muy, muy
importante de saber. ¿Correcto? No copias tanto y esperando que
todo se publique. Si quieres que todo
sea capturado, entonces tienes que aumentar el
tamaño del búfer usando el sistema que establece propiedad que acabo de
mostrarte antes. Si estás confundido, para encontrarlo, vuelve aquí búfer de
contrapresión, ¿verdad? Esta parte en particular de
aquí, este tipo, abre
este tipo esta propiedad aquí, tienes
que configurarla para insertarla
para poder recogerla de verdad Bien. Bien, así que creo que voy a poder cubrir esto, lo cual es bastante genial. Ahora, sigamos adelante y
completemos el servicio. Ahora que tenemos
realmente enviando esta sincronización podría estar guardando
la memoria este dado. Al parecer ya que estamos
aludiendo a Mat Cali de ella, así que no va
a
causarnos ningún problema de desempeño Probablemente
se va a someter a huella porque estamos seguros de que
habrá suscriptores. Aquí mismo, entonces
llamaré a ese Sync de la Compañía. Entonces llamo a esa sincronización
de compañía como flujo. Voy a volver a visitar As flux, así que solo libero todos los
datos que tiene un flujo Muy bien con esto, te
veré en el siguiente video.
102. Websocket, parte 3: Bien, así que sigamos adelante. bueno que
ustedes trabajen. Entonces sigamos adelante para terminar con el empleado. Crear parte de empleado.
Todavía me voy a apegar al servicio, y sólo voy a
hacer lo mismo. Digamos empleado como
empleado DTO, ¿verdad? Vamos solo empleado DPtoFlux. Aquí sólo vamos a ser consistentes. Entonces flujo, entonces lo crearé. Oh, esto se supone
que es empleado. Guau. Los males de
copiar y pegar Estoy seguro de que
ya se dieron cuenta, ¿verdad? Malos de copiar y pegar. Es el empleado DTO. Tenemos esto,
tenemos el tipo de
suscripción de empleado ,
Esto es increíble. ¿Bien? Así que vamos a reventar a este tipo. Todo bien. Hacemos lo mismo
que hicimos antes, solo entramos y creamos ese detalle
que realmente hicimos. Vamos a la cima
y creamos todo lo que necesitamos. Sincronización final privada punto Muchos va a tomar empleado DTO empleado DTO
aquí, luego Empleado fregadero Custer
empleado fregadero, ¿verdad? Equivale a los sumideros, las
muchas contrapresiones. Bien, entonces tenemos esto.
Es genial, chicos. Entonces cuando creamos un empleado, cuando creamos un empleado aquí, y creamos un empleado
o creamos un subcontratar, básicamente lo mismo, ¿verdad? Creamos un empleado y creamos un subcontratar, queremos notificar Queremos notificar. Oye, esto ha sido creado
con éxito. Entonces haz esto. No intentes y mit, ellos
traerán en el mapa que vendes y nosotros traemos en el mapa detalle empleado
y empleado persistido Entonces esto es genial.
Luego irán a nuestra implementación, llegamos al fregadero de empleados. Lee a los empleados como flujo. Bien, entonces eso básicamente
completa la implementación. Bien. Bien, esto básicamente completa
la implementación, así podemos entonces básicamente
seguir adelante y hacer que las cosas funcionen. Bien, así que es hora básicamente
de probar. Sí. Entonces traeré a colación la
bota que voy a usar, ¿de acuerdo? Así que trae un ti como jure. ¿Verdad? Traer t. genial.
Entonces después de sacar a colación. Entonces lo que voy a
hacer es
seguir adelante y crear múltiples
empresas, ¿verdad? Voy a crear
múltiples empresas, ¿verdad? Así que crea múltiples empresas y ya veremos cómo va a ser. Aún no conectaríamos
nada. Simplemente permitimos permanecer en la memoria. Entonces en el momento en que
conectes al suscriptor, veas que cyp obtendrá
todo de inmediato Luego volverán
a entonces crear lo siento, crean la empresa
luego volverán para luego crear la
compañía y nosotros volvemos, vemos leer primero el
valor, ¿de acuerdo? Entonces esto es bastante genial. Así que comencemos
tu solicitud. Voy a sacar a colación
mi instancia más oscura. En mi instancia de Doka para conseguir
realmente pasadores y rodantes. Entonces mientras eso se acerca, voy a hacer sólo un
poco de limpieza. Yo
sólo voy a aclarar esto. Eso es genial.
¿Este tipo está levantado? Bien. Sí, este tipo está levantado. Yo solo voy a ejecutar mi
componer recordar no es componer componer el amo. Lo enrollo para ponerlo
en marcha de verdad. Eso ha comenzado con éxito. Así que vamos a verificar si está disponible
para recibir conexiones. Sí, está listo para aceptar la
conexión. Así que bastante genial. Comienzo de la aplicación, se acerca
la
aplicación de la aplicación. Fresco. Entonces mientras
eso se acerca, solo
voy a entrar aquí
comentando solo entra aquí para ver cómo vamos a
estar interactuando con. Todo bien. Aquí es donde
estaremos creando una empresa, así que solo crea algún conjunto de empresas y solo mira
cómo entra realmente. La primera prueba es que queremos crear empresas, ¿verdad? Queremos crear empresas, y queremos
que se reciba. Eso es básicamente lo que
queremos hacer. hacer clic en comp Quiero
ver ser recibido. Entonces voy a cambiar esto. Llamemos a esto,
sólo voy a dejar esto. Yo sólo voy a llamar a este, así que solo haz un seguimiento. Entonces llamemos a esto RB. Esa es una empresa ficticia. Vamos a llamarlo RB Vsical. Bien. Pido disculpas por el ruido de fondo
si es posible que hayas escuchado alguno. Bien, con esto, creo que entonces
podemos proceder. Yo creo solo llámelo a este
RB como mencioné. Sólo voy a
cambiar esto un
poco para que podamos simplemente subrastrear. Voy a llamar a esto, digamos, un cinco, entonces
solo lo llamaré SS BV. Sólo para mantenerlo diferente. Sólo voy a dejar
esto como lo mismo, ¿verdad? Voy a dejar
esto como lo mismo, así que probablemente comencemos con 22, para que luego podamos rastrear desde ahí. Derecha. Todo bien.
Entonces tenemos esto. Nuestra aplicación ha comenzado
con éxito como puedes ver, vamos a crear algunos detalles. Quieres crear recuerda que no
nos hemos suscrito, no nos hemos suscrito
a ninguno de ellos en absoluto Entonces, si quieres
buscar la suscripción, cómo se hace, antes de que empecemos a crear
esto, veamos,
pero no nos conectaremos, no nos
conectaremos. Tenemos esto, si revisas, voy a poner esto
va a estar disponible. Vamos a
tener suscripción. Entonces como puedes ver,
tenemos suscripción. Esto básicamente cómo recordar
que estamos esperando Empresa GTO. Porque estás
esperando que la empresa DTU tenga estos detalles Entonces estos son detalles que
vas a estar recibiendo. Entonces, ¿cómo funciona realmente? Hay algo
muy importante. Hay que prestar atención
a que seguro está en el hotel. Pero si no le
prestas atención, tal
vez descubran
que esto no está funcionando como realmente se esperaba. Básicamente vas a Handler. Verás, vas a manejadores,
esto es muy importante. Ir a manejadores. Entonces
cuando llegues al manejador, tienes que especificar, ¿verdad Pones tu
URL de suscripción, que es esta. Esta es una
URL de suscripción, que es correcta. Tiene que ser WS, que
es web sockets, ¿verdad? Tienes esta configuración. Esto es muy correcto. Entonces
, por favor amable, sé esto. Voy a publicar
3 segundos aquí,
uno, dos, tres,
así que ya ves esto. Puedes publicar esto para
escribir esto con claridad. También voy a publicar
esto va a estar disponible en la descripción donde solo puedes
copiar y pegar. Entonces hay que configurar
esto para que sea web socket. Esto tiene que ser un socket web. Esto tiene que ser un socket web. Bien, sin embargo,
tiene que ser un socket web GQL. Si lo haces en socket web
normal, esto no funcionará. ¿Todo bien? Esto no va a funcionar. Lo
intenté un par de veces. Tiene que ser un socket web GAF QL. Entonces, cuando tienes
un socket web GAP, puedes asegurarte de
que las cosas
van a funcionar en consecuencia. Así que voy a
salvar esto, ¿verdad? Ya tienen esto
ya disponible. Vuelvo a ti otra vez,
vuelvo a ello otra vez, voy a Handler Handler, vaya al
socket web, ¿no? Zócalo Web GraphQL Ws. Este es el
que estás esperando, y eso debería ser
genial. Todo bien. Bien, así que ahora que
tenemos esto en realidad D, recuerda, no
voy a ejecutar esto todavía, así que solo voy a seguir
adelante y crear. Así que vamos a crear algunas empresas. Adelante y crea
esta empresa. Se crea esta empresa. Cambiemos esto a 23. Cambiémoslo a cinco. Entonces volvamos a pegarle. Bien, entonces tenemos algo
que en realidad es, básicamente manejamos
este error duplicado. Seguro que sabes exactamente
cómo manejar esto. Esta es una excepción duplicada que se mostrará dentro de
la aplicación. Básicamente, podría
simplemente una
excepción duplicada y atrapar la excepción
duplicada. ¿Así es tu nombre ahora? En nuestra excepción,
ven a excepción, crea una
excepción duplicada y muestra que estás capturando una
excepción duplicada de Hibernate Una vez que lo atrapes entonces
podrás interpretar
este error correctamente. Este error correctamente.
Ahora bien, el error que me viene aquí es decir que el
nombre ya existe. El concepto del nombre. Este
nombre 23 ya existe. Voy a usar el 25. Cambié esto a cinco,
vamos a darle a esto otra vez. Esto se codifica con éxito. Entonces vuelves a entrar, yo voy a llevar a este tipo a seis. Hagamos este seis. T debería ser el tercero.
Impresionante. Tenemos tres. Recuerda, aún no nos hemos
suscrito. Quiero decir, tres datos
quedarán en el búfer. Ahora sigamos adelante y vayamos a nuestra suscripción y
conectemos a esto. Comprueba que el servidor
esté en funcionamiento, así que esto no se está
conectando todavía. ¿Cuál debería ser el problema? Comprobemos esto de nuevo. Depuremos esto. Ya veremos. Bien, así que encontré el error. Entonces el error es que estamos
usando suscripción aquí. En tanto, estaba
esperando suscripciones. Entonces esa es una gran
diferencia, ¿verdad? Entonces, apegémonos a lo que tenemos. Creo que quiero
usar suscripciones. Entonces voy a usar ya que
ya he empujado algunos datos. Solo guardemos esto,
usemos esto. Entonces ese es el error. Entonces el nombre tiene que coincidir exactamente, ¿verdad? Sólo nombre. Yo uso la subcrición Estaba esperando suscripciones
por aquí, ¿verdad? Estaba esperando suscripciones
por aquí, ¿verdad? En realidad coloco suscripciones
por aquí, ¿verdad? Yo uso la suscripción,
y en realidad estaba usando la suscripción aquí,
así que esa es la razón por la que. Entonces ahora que los lugares
y esto
básicamente deberían funcionar. Entonces,
vamos a darle a esto otra vez. Impresionante. Bien, entonces ahora
tenemos algún cambio. Entonces estás diciendo que la suscripción
de tipo suscripción no existe, es indefinida. Entonces significa que esto tiene
que ver con un graph quo, así que necesitamos ver exactamente cuál es
el tema para ver
qué hemos cambiado. Entonces estamos esperando una
compañía creada y un empleado creado. ¿Ese es el mismo nombre que usamos? Vamos a confirmar. Bien, chicos, así que entraré rápidamente. Vamos a echar un vistazo a este tipo.
¿Qué estamos esperando? ¿Estamos utilizando Crear empresa? ¿Es un error? ¿En lugar
de compañía creada? Porque yo quería
que fuera pasado decenas deberían
crearse pero dijo
crea compañía. Este es el error.
Voy a cambiar esto. Comprobemos también por empleado. Los empleados también crean empleado. Así que arreglemos este error. Esto va a ser creado, y esto va a ser Crear. Bien, vamos a darle a esto otra vez. Vamos a darle a esto. Todo bien. También está diciendo, creador esta
parte aquí, arregla esta parte. Crear. Y este
otro bits crea. Ahora coincide. Ahora
vamos a darle a este tipo. Todo bien. Se puede ver que tenemos. Ya tenemos tres en la memoria. T ya se ha leído. Sigamos adelante y
empujemos otro más. Iré al tímido.
Vamos a empujar uno nuevo. Yo cody siete. Voy a
llamar a este siete para que
en realidad no entre en conflicto y voy a golpear su mayor
ahora, vamos a comprobar. ¿Podrías ver, uno,
dos, tres, cuatro? Esto en realidad está adentro, y
esto es chicos bastante geniales. Ya ves que la primera persona
pudo realmente video con ella. Si tienes ahora con
diferente suscriptor, el suscriptor de defensa
siempre será el nuevo. ¿Cómo lo sé?
Cancelemos esto. Mar He cancelado esto
vamos a conectarnos de nuevo. Vamos a conectar a este tipo. No encuentro nada. Vamos a impulsar una nueva compañía. Voy a llamar a este ocho. Volvamos aquí.
Llamemos a esto ocho. ¿Nos hemos suscrito? A ver, ¿nos suscribimos? No, no nos hemos suscrito. Ven aquí. Vamos a
empujar a este tipo. Eso se crea. No nos hemos suscrito, así que vamos a suscribirnos ¿Cuál es el error? cuál es el error.
Aquí hay un error. En realidad no es conectar. Bien, volvamos
al siguiente video para
arreglarlo porque este video se está
haciendo bastante largo, chicos. Nos vemos en el siguiente video.
103. Websocket, parte 4 con excepción de clave duplicada: Oigan, chicos, es bueno
tenerlos de vuelta. El error ocurrió porque detuve
abruptamente el servidor. Se suponía que yo no debía hacer eso. Así que abruptamente lo detuvo. Ahora solo me conecté y esto básicamente
está funcionando ahora. De hecho te lo he podido decir, cancelemos esto e
intentemos conectarnos de nuevo. ¿Ves? Esto
en realidad no va a entrar. Entonces voy a hacer es que
tengo que volver a conectar. El servidor ya no
honra al equest. Voy a entrar de
nuevo y
recrear rápidamente esto y
empecemos Todo bien. Esto ha
comenzado con éxito. Así que vamos a conectar de nuevo. Bien. ¿Podrías ver esto? Entonces esperaba que una vez que
tuvieras esa conexión, mantengas esa conexión encendida, ¿verdad? Entonces esto es bastante genial. Entonces solo tomemos un detalle más. Entraré y solo
crearé uno más. Ahora vemos que esto está funcionando, podemos hacer nueve y
vamos a crear esto. Todo bien. Entonces se crea esto. Tomemos una suscripción y nuestra suscripción lee los detalles. Bien, así que con esto hecho, sigamos adelante y
creamos nuestro departamento. Una vez que crees departamento, entonces podrás leer realmente
los detalles, ¿verdad? Porque recuerda,
sin departamento, no
podemos crear un empleado. Entonces, al crear nuestro departamento, vayamos a departamentos. Entonces iré a Departamento
iré a departamento. Ya existen
los departamentos, probablemente justo lo que ya
existe. Vamos con empleado. Vamos al empleador y
creamos un nuevo empleado. Simplemente enfocado en. Este empleado
ya existe, ¿verdad? Voy a llamar a esto 23. Voy a dejar la edad, voy a dejar esto, sólo
voy a cambiar la cantidad, probablemente 26. ¿Qué más podría ser
conflictivo? El ID. Cambiemos la identificación para que sea ocho. El número de departamento
dejará esto como es
porque ya existe. Vamos a crear este empleado. Vamos a crear el empleado. De esta manera de conectar a este tipo. Ya he conectado al empleado. Vamos a crear este empleado. El nombre tiene que ser más largo. Dice la lente que no puede
invocar lente de cuerda o nombre. El nombre es nulo. ¿Qué está pasando? Veamos esto otra vez. Bien. Así que hay
una identificación duplicada para esta identificación y número
de departamento. Recuerden, chicos, les mencioné cómo en realidad podrían hacer esto. Esto es muy sencillo de hacer. En caso de que estés teniendo
este error que
no se alcanza o
está siendo atendido La forma muy sencilla de hacerlo es
que se trata de una excepción duplicada. Es una excepción duplicada
porque viola la constante. Entonces es una excepción de
clave duplicada. La forma más fácil de hacerlo, no
quiero centrarme en eso en esta sección es
realmente entrar aquí, estallar su controlador global,
solo hacer lo mismo. Acabo de copiar esto. Lo
mismo, copiarlo aquí. Entonces busca una llave duplicada. Excepción de clave duplicada. Tienes una excepción de
clave duplicada. Esto viene de
Spring Framework DAO, excepción de clave
duplicada. Voy a coger una llave duplicada. Esto debería
manejar más o menos el caso, ¿verdad? Porque no estoy viendo la clave
exacta que se mostró aquí, pero estoy seguro de que es una excepción de clave
duplicada. Podríamos simplemente
reiniciar el servidor. Porque viene con
bastante frecuencia porque estás creando múltiples entidades
con los mismos detalles. Atrapemos eso rápidamente ya
no tengamos que pasar por
ese error. C correctamente y correctamente error de ir
bien. Vamos a entrar, vamos a tratar de
crear lo mismo. Bien, entonces no estoy captando
el error correcto aquí. Entonces, ¿cuál es el error
ahora? A ver. Así que la clave ya existe. Estoy teniendo excepción de
clave duplicada. No estoy captando la excepción
exacta. Eso es que estoy enfrentando este tema. Porque recuerda, si no
captas la excepción exacta, en
realidad estará usando
el error interno del servidor, que es bastante correcto. Entonces veamos ahora, pensemos veamos ¿qué
excepción debería ser? Deben ser duplicados clave, pero ¿cuál duplica ¿Cuál duplica la clave? ¿Estaba lanzando? Esta es
la excepción de clave duplicada. Esto definitivamente
no es de Snake yam. Esto es de spin Do Do pay excepción de clave
duplicada. Obtenemos la excepción clave. Vamos a echarle un vistazo. Excepción de
clave duplicada, ¿verdad? Entonces voy a colocar
un punto de interrupción aquí, así que voy a reiniciar
la aplicación Menos demostramos que si entra, realmente
somos capaces de
conseguirlo, ¿verdad? Esto viene muy a menudo, chicos sifi digresión pero en
realidad tenemos que manejar esto porque
esto es muy, muy clave, Hola chicos, con un poco de investigación, pude ver, no
es clave duplicada, más bien, es una excepción de
violación integradora de datos Entonces he podido
hacer lo mismo, así que reproduzco el error, así que vamos a darle a esto
la compañía ret. ¿Bien? Entonces ves que en
realidad se detiene aquí. Entonces podemos usar
una expresión. Luego podemos usar la expresión de
evaluación o evaluar la expresión para
luego traer la excepción. Consigamos
un mensaje localizado y llevemos esto. Bien, entonces esto es
lo que estamos teniendo. Tienes todos estos grandes jagons, ¿verdad? Estos grandes jagons. Entonces, ¿qué haremos en lugar de soltar
todo este detalle, verdad? Ingresa el detalle. Tenemos que
encontrar una manera de realmente. Entonces podrías formatear
esto para tener esto fuera. Lo que voy a
hacer, no quiero
mostrar todos esos detalles. Sólo voy a
decir, vamos a ver cuál es el mensaje realmente mojado
excepto o recibe mensaje. A ver, recibe mensaje. Obtiene mensaje. ¿
Qué escribe? Lo mismo. Yo sólo voy a decir creación de duplicados creación solo
decir creación duplicada creación de NTT Eso básicamente debería
funcionar. iniciamos la aplicación. Entonces cuando iniciamos
la aplicación, una vez que aparece,
luego la probamos nuevamente. Entonces
se inicia la aplicación. Entonces volvamos a darle a esto y
veamos cómo se desarrolla. Yo no vengo aquí
y luego le pego otra vez. Bien, esto va bien. Estoy en modo de depuración. Vamos a
liberar la depuración, vamos a comprobar. Bien, se puede ver, creación
duplicada de entidad. Entonces esto básicamente funciona ahora. Entonces por cada uno de ellos, voy a uplate enTIC creación de nt Entonces probablemente podrías
pasarlo, pasar el mensaje, y luego cinco formato es mejor para ellos para mostrar
la entidad exacta. Eso es algo que
luego puedes hacer desde los objetos. Bien, entonces ahora que
iniciamos la aplicación, volvamos al escenario
original, que es una suscripción. Así que aquí era donde
estábamos y estamos recibiendo algún error
mientras en realidad estamos creando la entidad, ¿verdad? Y estos videos
ya están llegando tanto tiempo, tenemos que
digerirlo rápidamente para resolver este error. Entonces volveremos en el siguiente
video para completar esto, bien. Nos vemos en el siguiente video.
104. Websocket, parte 5: Oigan, chicos, genial
tenerlos de vuelta. Todo bien. Entonces con esto, creo que luego
podemos proceder a luego suscribir a nuestro empleado y luego comenzar con excavaciones
en mi empleado, así que básicamente podríamos cubrir el terreno que teníamos antes ¿Bien? Entonces esto
ya está funcionando. Entonces déjame conectar la suscripción de
empleado. Esto está conectado. Vamos a
crear un nuevo empleado, solo para terminar esta sección. Yo diría, esto es genial. Llamemos a esto 25. Entonces vamos a dar la vuelta
a esto Vamos a codificar este nueve. Vamos a codificar esto Esto está bien. Uno, dos, tres, 45 está
bien. Vamos a codificar esto. Hagamos de esto un pasante. Pasante. Entonces sólo vamos a
tejear un poco la dirección Recuerde que la dirección
debe coincidir. Esto necesita el partido. Esta entidad, necesito decir necesita una
entidad de identificación de jugador de partido, necesito emparejar. Permítanme agregar una ditail más aquí. Déjenme
decir sólo uno, dos, tres. Nosotros solo decimos que esto está bien. Creo que esto está bien. Voy a facturar esto como uno, dos. Vamos a gotear esto. Bien, entonces tenemos
un ROI dice cadena que longitudes porque nombre es
nulo. Entonces, ¿dónde está el nombre? Creo que esto pasó
cuando estamos haciendo una validación. ¿Dónde está el nombre? ¿Qué nombre es realmente nulo? Déjame entrar. Y veamos, que en realidad es nulo. Esto dice, déjame jugar este registro a menos que esté seguro de que
hemos tomado la aleta. Vuelvo a arcilla esto.
Déjame cambiar esto a seis. Cambiemos esto a
70 y lo mismo,
cámbielo a 70, vamos a darle a
esto y veamos, ¿verdad? Bien, entonces dice que su nombre
es nulo, déjame comprobarlo. Al parecer, entonces aquí
hay una flecha. Hay una flecha que
se está mostrando diciendo que
el nombre es nulo, por lo que necesitamos realmente entrar en la aplicación para ver
exactamente qué es. Estoy seguro de que esto
probablemente
provendría de la validación
que establecimos, ¿verdad? La validación que establecemos anteriormente. Dice Cano invoca árbol esa longitud porque
el nombre es nulo Bien, entonces, ¿cuál de
los nombres es nulo? Entonces lo que voy a hacer es que
voy a
sacar rápidamente a mi empleado. Para la creación, cuando quiero
crear un empleado,
esto es lo que usamos. Voy a sacar esto a colación.
Voy a compartir esto escribe. Vamos a
comparar rápidamente todo lo que tenemos para estar seguros de que
todo es exacto. Entonces voy a
tener esto aquí. Este es nombre, fecha de
nacimiento, sexo, salario, luego dirección debajo de la cual
se encuentra pull, luego edad,
phon, nombre de la empresa, ID del empleado, número de
departamento, rollo de correo electrónico. Bien. Ahora vamos a revisar la dirección.
Verifiquemos tu dirección. Pero la direcciónponer,
vamos a comprobar. Esto es son simples, no
pasamos en UID, pasando NTC, calles,
ciudad, estados, legales Todo es crítico para mí. ¿De dónde viene el error? Vamos a revisar. Vamos
a revisar nuestro guión. Comprobemos nuestros scripts para creación de empleados. Ese es empleado DTO, ¿verdad? Así que vamos también.
Veamos esto. Bien, entonces este es
el tipo que entra. ¿Bien? Se adquiere el nombre. No se puede conocer el nombre.
Esto es correcto. Entonces este es el otro
tipo que lo juega. ¿Bien? Esto podría ser 4-10, que está cubierto, vamos a
revisar las entradas. Las entradas también para la dirección
apenas abastecen para todo esto. Bien, entonces es llamar a
string dot length en
algo en lo que
no estamos usando string dot. Entonces eso es lo que
prácticamente queremos observar ahora. Entonces, si compruebo el error para que
el error no sea realmente lo suficientemente
descriptivo para saber
exactamente qué se ha mostrado, entonces tenemos que hacer
un poco de depuración, ¿verdad Entonces lo que voy a hacer es que
voy a colocar puntos de ruptura en lugares, en
realidad voy a hacer eso Voy a publicar este video, averiguarlo y volver
a ustedes, ¿verdad Muy bien, chicos. De hecho, he podido averiguar de dónde viene
el problema. Entonces el problema básicamente
venía de cuando estamos mapeando el ajuste puesto a la entidad a la entidad de ajuste. Entonces este es el punto.
Ahora, en realidad estamos esperando Recuerda la parte que
realmente estamos recuperando la dirección
de la base de datos
o estamos mapeando Yo ya estaba haciendo
esto. Pero cuando estamos creando una nueva dirección, esto sería nulo y no se
puede usar un nulo. No se puede extraer un UUID
de Nulo. Ese es el tema. Ahora acabo de agregar este nulo. Si esto no es nulo, entonces esto realmente
funcionaría con precisión. Ese fue el error.
Entonces, como pueden ver, realidad
he podido
crear con éxito. Entonces, lo que haría
solo ukly concluir esta sección para que podamos
realmente terminar a tiempo Acabo de recibir suscripción. Sólo me suscribiré
a mi empleado. Bien, así que vamos a
eliminar estos puntos de interrupción. Estaba depurando, así que tenía eso. Bien, entonces al parecer, ya tiene listo adentro,
así que esa es la razón por la que. Para que puedan ver, porque
acabo de conectarme, trajo esto
automáticamente. Así que vamos a añadir uno más y vamos a completar esta sección. Entonces tenemos seis.
Simplemente llamamos a esto rojo 16. Entraré y solo cambiaré
la identificación y solo haré esto. Y vamos a despedir esta petición. Eliminemos todos estos
puntos de interrupción, ¿verdad? Todos estos puntos de interrupción se tienen. Quieres mover todos
estos puntos de interrupción. Aquí es donde realmente
emite, pero mueve todo. Esto se crea con éxito en la suscripción de
Chile y ver que la suscripción ya está ahí. Solo agreguemos un detalle más y veremos esto entrando y dx
concluirá esta sección. Bien, así que con esto
pasando, genial. Impresionante. Tú eres
uno, dos, tres. Bien, así que he podido mostrarte cómo funciona Webscare, así que en realidad
solo podrías emitir datos y que tus clientes o tu
cliente solo obtengan los datos Habrá un
suscriptor, un info. Quieres pasar
la notificación a tu app y a tu app, esta es la mejor manera de
manejarla, ¿verdad? Probablemente podría otra forma en la que básicamente podrías hacer esto. No tiene que
ser sobre la creación. Podrías tener solo un
punto final, crear un punto final, único punto final
que probablemente tengas control sobre el mensaje desde
el lado administrativo, pasar los datos al lado
administrativo, destinado a mayores solicitudes. Quien esté escuchando en ese canal solo lo
recibe directamente. Entonces tu front-end,
tu app móvil, todos en realidad
solo escuchan
esa sospecha en particular
y la arreglan. Todo bien. Y lo consiguen en realidad esto lo
que quería decir. Todo bien. Entonces con eso, lleguemos al
final de este video. Los veré chicos en
la siguiente sección. Te veré en el siguiente video.
105. Instrumentación parte 1: Oigan, chicos, genial
tenerlos aquí. Todo bien. Hasta ahora ha sido un
viaje increíble. Hemos mirado tanto
concepto en la gráfica QL, y hemos tocado
varios detalles La idea es
llevarte realmente de extremo a
extremo porque siempre
prometí que
siempre vas de extremo a extremo para que básicamente pudieras
iniciar un proyecto usando GraphQL e iniciarlo
hasta que seas capaz de
implementar en un servidor o una herramienta de orquestación de
Kubernet que básicamente pudieras
iniciar un proyecto usando
GraphQL e iniciarlo
hasta que seas capaz de
implementar en un servidor o una herramienta de orquestación de
Kubernet, ¿verdad?
Y ese es el objetivo. Bien. Todo bien. Entonces
en esta sección, estaremos viendo algo que se
llama instrumentación. Instrumentación. Ahora bien,
¿qué es la instrumentación? Ahora bien, tenga en cuenta que la
instrumentación simplemente significa que desea
controlar el tipo de datos o quiere
poner alguna medida de control para que su aplicación
probablemente pueda funcionar mejor. No quieres exponer
algún detalle sensible. Quieres asegurarte de que
quieres limitar a tus clientes no puedan
acceder a más algún número particular
de campos, ¿verdad? Quieres asegurarte de que con base en alguna lógica en la que hayas colocado, tus clientes no puedan
obtener realmente algunos detalles. Entonces todo se trata de
control, ¿verdad? Todo sobre el control. Así que entremos en Bien, entonces hay algunos
controles básicos que
ya nos están dados por
defecto en GraphQL Voy a entrar,
implementar esos básicos,
probarlos mouse, luego crear control
personalizado. Entonces eso es
lo que voy a hacer. Empecemos.
Lo primero que voy a hacer, lo primero
que voy
a hacer dentro de esta configuración, voy a crear
algo llamado config de
instrumentación. La
instrumentación de configuración de instrumentos se trata controlar cosas que realmente
quieres revelar, ¿verdad? Control inicial. Como de costumbre,
las configuraciones de instrumentación se enfrían. Entonces dejémosle
esa configuración. Nada diferente. Ahora, al parecer,
voy a traer una papelera, y voy a tener una papelera
realmente traída, ¿verdad? Sí. Entonces Bin entonces
traes instrumentación. Recuerda que cuando estás
definiendo una configuración, no
necesitas usar
la palabra clave public. Puede ser privado. No es
necesario usar una palabra clave public porque miembro va
a colocar en el COI La instrumentación es verdadera. Puede ser alguna instrumentación S, instrumentación,
la
instrumentación de lo que la estamos tomando va a estar viniendo de la instrumentación va
a estar viniendo de la gráfica instrumentación de ejecución KWL,
es muy bindfulGraph que
instrumentación es muy bindfulGraph Tenemos que el
primero que vamos
a ver se llama
instrumentación de rastreo. Llámalo rastreo.
Instrumentación. Ahora bien, lo que
hace la
instrumentación de rastreo es que le da
paso más contexto a su aplicación, ¿verdad? Da más contexto
a la aplicación. Creo que es la mejor manera
solo de mostrarlo. Entonces comencemos con la
aplicación, ¿verdad? Entonces, una vez que iniciemos
la aplicación, simplemente
configuraré rápidamente una gráfica que. Vayamos a cualquiera de
las lecturas que hemos hecho. Voy a ir a vamos a la hierba. Sección donde hacemos una consulta. Hicimos una consulta básica aquí. Esto es realmente genial. Vamos a
usar esto. Estamos a buscar. Traer vamos a buscar a buscar. Consulta básica. ¿Qué vamos a buscar juego por
ID de personal? Esto está bien. Esto se inicia
con éxito. Entonces, en un día normal, conoces exactamente todos los
aspectos. Ahora, vamos a darle a esto. Vamos a darle a esto Bien, entonces creo que esto ha cambiado. Entonces, vamos a traer la identificación. Vamos a traer una identificación que sea válida. Voy a ir en
empleado, obtener una identificación,
una identificación válida, una identificación válida,
identificación de empleado. Por lo que esta es una identificación de empleado válida. ¿Qué soy yo? Lo siento,
creo que en realidad lo presenté. Bien, entonces quiero elegir
una identificación de empleado válida. Entonces vamos a entrar en OTA. Aquí hay esta identificación de
empleado válida. Entonces bien. Entonces, incluso antes de hacer esto, ya se podían ver
todos estos detalles. Tienes detalles para la
versión de rastreo, esta hora comienza. Te da muchos
detalles, ¿verdad? Muchos de estos y estos
se convierten en variables, ¿verdad? Así que por favor
considere cuidadosamente si quiere usar esto, ¿verdad? Si es algo que crees que es necesario para que lo uses. Entonces, vamos a darle a esto otra vez. ¿Correcto? Ves que está agregando mucho más contexto para mostrarlo
para mostrar instrumentación, y esto contiene
muchos detalles. El tipo padre, la
etiqueta de retorno, el nombre del campo. Podrías necesitar alguna información, varios datos aquí. Puedes explorar esto agrega
muchos detalles aquí, ves al empleado
DTO, ves el género Ves el tipo de devolución,
ves el nombre del campo. Para cada uno de ellos,
cada uno de estos campos, cada uno de ellos tiene algún
detalle a especificar. Vayamos a buscar espuma. Si lo miras con atención, probablemente
encuentres diversión que necesitamos. Bien, esta es la dirección, el teléfono. Verás, teléfono, cadena. Te da detalle
de cada campo, ¿verdad? Así que por favor considera si es
algo que quieres agregar. Entonces eso es eso. Si no estás al tanto
de esto antes, lo que voy a hacer es que
voy a ir a la configuración. Comencemos con esto. Voy a comenzar
esto, ¿verdad? Elogie esto, reiniciemos su aplicación para que
pueda ver la diferencia, pueda ver la diferencia Mientras se acerca esto,
entremos rápidamente. Observe amablemente,
notará que en realidad se agregó
un campo
de esta extensión de vales, rastreo y
le da todos los detalles Creo que la aplicación
se inicia es exitosa. Vamos a
darle a esto otra vez. Ves la diferencia,
ve la diferencia. No hay
detalles adicionales. Eso te da información
sobre cada campo. Voy a traer esto. Si es algo que ha estado necesitando y queriendo
traer, así que considere usar instrumentación de
rastreo. Antes de iniciar
la aplicación, la siguiente la traemos. El siguiente que
traemos es algo llamado instrumentación
de complejidad de consulta MAX. Eso es un múltiplo, pero
voy a explicar lo que hace. También es una instrumentación, pero es un estado con
un nombre, Max query. El nombre tiene que ser
exactamente lo mismo. Consulta solo devuélvete esto. Bien. Ahora bien, lo que esto hace es limitar el número de campos que puede tener un cuerpo de
respuesta de consulta. Así que tenlo en cuenta, limita el número de campos
que puede tener
un cuerpo de respuesta de consulta. Entonces aquí mismo, voy a decir bien para este cuerpo de respuesta, hagamos tal vez cinco. Entonces vamos a hacer cinco. Entonces
estudiemos esta aplicación, ¿verdad? Estudiemos esta
aplicación y llamemos al punto final y
vas a ver que el
error va a ser. Te va a decir lo
máximo que espera, ¿verdad? Pero mientras tanto
en realidad estás permitiendo sólo cinco. Bien, entonces te decimos lo que estás pasando
y el maxonal está permitido. Bien, vamos a darle a esto. Ya ves, la
complejidad queer máxima superó 19. Tantos 19 es lo
que estamos esperando. El número de combustibles
que se estaba devolviendo es en realidad
mayor de lo que se espera. Entonces entremos y luego pongamos
esto a 19. 19 está esperando. 19 es lo que te liberamos el número
total de combustibles. Entonces, reiniciemos
esta aplicación. Y esto se acerca, ¿verdad? Así que recuerda, ¿qué es esto otra vez? Voy a poner aquí los
comentarios para que nos ayude a recordar. Entonces
este es un comentario. Entonces dice, limita el número de este tipo o el número de
fi un cuerpo de hijo de consulta puede ayudar nota agrego esta
instrumentación estresante la va a aumentar porque en un
día normal, vamos a observar esto Vamos a extender esto
y vamos a darle a esto. Ves que esto funciona.
Ahora vamos a contar. Vamos a contar a este tipo.
Entonces tenemos un uno, dos, tres, cuatro,
cinco, seis, siete. Este es uno, así que no se
cuenta el anidado. El siete, ocho, nueve, diez, 11, 12, 13, 14, 15, entonces se puede ver, cada uno de ellos
se puede contar 16, 17 ,
18, 19, tiene este
tipo, creo que tres. Él trae esto. Eso es lo que está contando
todo dentro. Pero ve esto como
uno, ve esto como uno. Ver esto tiene uno tiene uno, ve este nivel como uno. Si el conteo
no tiene sentido, probablemente
puedas
simplemente verificarlo, pero lo genial es que GAF care te
dirá lo que espera Se supone que es
este número estamos proporcionando un número que va mucho más allá de
lo esperado. W esto hecho,
los veré chicos en el siguiente video.
106. Instrumentación parte 2: Bien, así que
básicamente somos capaces de ver la consulta la complejidad de la
mascarada,
más bien, la
instrumentación de complejidad de enmascaramiento, y somos capaces de
determinar que esta es la Ahora bien, ¿dónde
entra esto? Tenga en cuenta amablemente. Si no quieres
revelar todos esos detalles, no
creo que quieras que tus clientes muestren
tu información de rastreo. Entonces no creo que
quieras hacer esto, pero solo quería que
supieras que existe, ¿verdad? Ahora, lo genial
es que si quitamos esto, juguemos un poco
con esto y pongamos esto a cinco, verías reducir
drásticamente Y entonces
te diré exactamente lo que deberías estar haciendo, ¿verdad? Digamos que tienes
varios campos e idealmente crees que tu cliente no
debería consultar más de
siete campos por vez. Podrías poner el límite
aquí. Esa es toda la idea. Podrías poner el límite.
Si llamas a esto, ya ves, estás esperando 19, pero
en realidad estamos lanzando cinco. En realidad estamos lanzando cinco. Necesitas poder decirles
realmente,
darles exactamente
lo que quieren. Yo les doy lo que
quieren, asegúrense de que
probablemente sean capaces de
consultar sólo lo que puedan. Aumentemos a diez. Reiniciemos esto de nuevo. Entonces estaremos iniciando
la aplicación. Creo que quiero eliminar
el objetivo para eso. No, solo
comencemos esto Vamos a poner en marcha esto. Veamos cómo se
desarrolla. Entonces esto se acerca. Todo bien. Entonces esto es genial. Ahora, llamemos a este tipo. Bien, entonces dice que todavía
esperas 19. Bien, así que sigamos
adelante y sumemos 19. Entonces 19 es lo que se espera. Agreguemos 19. Entonces
voy a ejecutar esto otra vez. Entonces, volvamos a ejecutar esto. Esto se acerca. Simplemente empuja
a través. Bien, eso funciona. Todo bien. Entonces, vamos
a poner en marcha esto. Bien, entonces digo esto primero 19. Vamos a contar a este tipo. Uno, dos, tres, cuatro, cinco, seis, siete, ocho, nueve, diez.
Creo que empiezo de nuevo. Vamos a contar este uno, dos, tres, cuatro, cinco,
seis, siete, ocho, nueve, diez, 11, 12, 13, 14, 15, 16, 17. Diez más el 219. Creo que ahí podría
haber un error. El rastreo no le agrega
complejidades. Creo que solo se
trata de la cantidad de campos que está mirando, ¿de acuerdo? Creo que es una omisión. Oh, eso es una
exageración de mi parte. Entonces el rastreo
no agrega nada, así que voy a seguir adelante y eliminar este comentario para que
no confunda a nadie Bien, entonces el número de, creo que hemos
podido
averiguar es exactamente el número
total, ¿verdad? Entonces 19. Por lo que esperan que el número
máximo total sea de 19. Entonces si estás diciendo, Oye, no
quiero dejar
más de siete, así que déjalos elegir exactamente
lo que quiere, entonces. Eso va a estar bien. Entonces, ¿cuál sería la mejor
manera de hacer esto? Para este tipo que están esperando, podrías
decirles, oye, quita no quiero que agregues un no quiero que
agregues nada que tenga que
ver con departamentos. Todo bien. Él es mío.
Aquí es donde estoy. Yo podría decir, limitar esto a 12. He quitado esto,
he quitado esto. Ahora tenemos probablemente un 17. Ahora tengo por
aquí, he dicho 16. Sí, vamos a tener 15. Ahora tenemos 15,
creo que podemos
probarlo y voy a poder
realmente conseguir el mensaje. Ponemos esto como 15. Comencemos la aplicación si eso realmente
coincide con precisión. Ese es el inicio.
Volvamos. En apenas un par de segundos,
eso habría comenzado. Creo que
empecé con éxito. Vamos a darle a esto otra vez.
Vamos a darle a esto otra vez. C no se queja
porque contamos uno, dos, tres, cuatro, cinco, seis, siete, ocho, nueve, diez, 11, 12, 13, 14, 15. ¿Estoy contando mal? Es
uno, dos, tres, cuatro, cinco, seis, siete, ocho, nueve, diez, 11, 12, 30, 40, 15. Eso es exacto.
Vamos a introducir esto nuevo y vamos a darle de
nuevo. Se podía ver. Esto realmente lo valida, no debe exceder No debo rebasar. Para que podamos proceder correctamente, voy a seguir adelante y
sólo decir el número máximo. Se nos espera. ¿Todo bien? Bien, entonces lo dejaré en
eso cualquiera que
encontremos con aumento. Entonces el siguiente del que
queremos hablar en instrumentación se llama instrumentación profundidad
de consulta máxima,
instrumentación profundidad de consulta
máxima. Entonces simplemente funciona algo similar a esto, pero
con una variación. Por lo que esta será
consulta max consulta Max. Profundidad máxima de consulta, instrumentación de
profundidad de mascarada. Entonces vamos a tener,
esto es lo que estoy esperando. Máscara ahora, ¿qué es la instrumentación de
profundidad mascud? Significa que hay una
serie de muertes. Podemos tener la
profundidad máxima que podamos tener. Veamos qué significa profundidad. Así que vamos a encomiar esto
de nuevo, ¿verdad? Reiniciemos la
aplicación, ¿verdad? Reiniciemos la mutación. Voy a establecer
esto a probablemente voy a establecer esto probablemente
nueve que volverán. Volveremos también,
pongamos esto siete. Pronto estará bien. Solo comencemos
la aplicación, luego empecemos
a ver qué es eso. Es entonces cuando empiezas a ir
dentro de un campo anidado. Cuando vas, cuál es el campo
mayor o el máximo
anidado que puedes tener Eso es básicamente lo que significa. Si vas ahora,
volvamos a ejecutar esto. Ahora bien, esto es anidado dos. Se ve que voy
en el siguiente paso dos, todos estos están en el mismo
carril, esto es anidado tres Todos estos están en el mismo
carril, este está anidado cuatro. El máximo que tiene es de cuatro.
El máximo aquí es de cuatro. Lo que voy a
hacer es reducir esto a tres. Vamos a
reducir esto a tres. No veo el máximo
que nos dice que
tengamos físicamente si vas a estar
usando ese detalle en particular. Dices que ese
tipo debería tener tres. Si le pegamos a esto Bien, así que revisemos de nuevo. Uno, uno, dos, creo que dices esto
como uno, uno, dos, tres. Creo que vamos a
probar esto. Vamos a probar esto. Vamos a balear esto como dos, a menos que
iniciemos la aplicación. Creo que eso empezó
, vamos a darle a esto y veamos el máximo de
muertes que tenemos aquí. Dice el máximo que es tres y
en realidad esperamos dos. El máximo que es
tres. Inspeccionemos correctamente y contemos
correctamente una vez más. Voy a entrar
y aumentar esto a
tres para que podamos ver cómo funciona
esto físicamente. Aumentemos nuestra
iniciamos esta aplicación, le permitimos una startup o post. Esto se pone en marcha.
Vamos a darle a esto. Bien, entonces tenemos uno, dos. Entonces tenemos uno, dos, tres. Bien, entonces son tres, uno, dos,
tres, la profundidad es tres,
uno, dos, tres. Entonces cuando tenemos
algo mayor, se
puede ver que
eso probablemente
sería un disuasivo para nosotros, Eso va a ser un disuasivo para nosotros. Ahora creo que entiendes lo que hace la
instrumentación matemática de profundidad Squami, ¿verdad Bien, entonces voy a dejar
esto como esto. Cuando realmente necesitamos
algo más
agregamos así que lo voy a
dejar a las siete que en caso de que
no encontremos ningún error para poder verificar
realmente los spots. Creo que entiendes
la complejidad. Entonces lo que voy a hacer es que
voy a simplemente poner
un comentario aquí. Voy a poner un comentario aquí. Este es un comentario que usé antes
en las pruebas. Traes el pytnin
por nombre de acompañamiento. Ahora, vamos a buscar el
pykn por nombre de acompañamiento. Creo que eso
probablemente debería explicar. Este es probablemente un buen detalle. Yo solo este comentario
para que este comentario pueda ser utilizado para
rastrear realmente para que sepas exactamente. En este caso, este
es uno, dos, tres ,
cuatro, estoy seguro que son cuatro, entonces los veré chicos
en el siguiente video.
107. Instrumentación parte 3: Oigan, chicos, genial
tenerlos de vuelta. Bien, entonces instrumentación, veamos
instrumentación personalizada. Instrumentación personalizada, básicamente se podría
ver esto como otra
forma de validación. Digamos que tiene alguna
validación que no
se puede atender a la vista
aparentemente hibernis
para atender la mayoría de
sus validaciones Hiberni para atender la mayoría
de sus validaciones. Pero digamos que para tus imputs, intentas realmente
hay una lógica personalizada que
quieres implementar que lógica
personalizada hibernar
no Digamos que la validación,
la validación de Hibernate, esa es una validación de
arranque de trampolín, realmente
no la
maneja y
quieres agregarle esa cosa
en particular Ahí es donde quieres usar
la instrumentación personalizada. Sigamos adelante y creamos algo llamado
instrumentación personalizada. Configuración de instrumentación. Solo te voy a mostrar una pareja
para que solo puedas hacerte la idea de cómo
funciona que pones expandirla. Eso es
lo que voy a hacer. Al parecer, lo laboramos con en la configuración. Ese es
el primer bit. Ahora, los
dos primeros si quieres crear instrumentación
personalizada, necesitas definir
algunas cosas. Al parecer, debe ser una instrumentación de instrumento,
eso es una instrumentación. Entonces al parecer
tiene que ser un sido? Entonces yo código es borde de paginación. Instrumentación. Ahora bien, este es el formato que sigue. Este es el formato así que
voy a traer enseguida. Entonces, por favor, siga
de cerca los formatos que va
a usar de inmediato. Vamos a tener algo
llamado pase de resultados. Ruta de resultados. La ruta de resultado es solo definir qué puntos finales de gráfico
desea apuntar realmente. Las rutas de resultados van a
tener llamar al empleado de Pagenate. Ese es el que realmente queremos verificar
contra empleado,
entonces eso será igual
a rutas de
resultados, paso de punto, luego traemos en esta
guía hacia adelante slash plus,
vamos a usar un DGs constantes, constantes DGs, consulta de
punto, así, ¿a
qué nos dirigimos o apuntamos a la paginación o apuntamos a la paginación Así que ten esto en mente.
Así es como funciona. Entonces esta es la parte a la
que se dirige para esta instrumentación de la edad de la página. Creo que no
deletreé esto correctamente. Déjame factorial. Así que sea una
S y una S falta aquí. ¿Bien? Ahora bien, esta es
la primera parte. Ahora el segundo bit es que vamos a la
búsqueda neta algo llamado una simple validación pelada. Validación simple
de campo, validación. Voy a ser nuevo
esto, esto está bien. Tenemos
pensamientos de validación agregar regla. Entonces necesitamos agregar una regla. Entonces queremos que este tipo
vuelva a trabajar para
validar realmente en contra. Agregarán una regla aquí. Entonces la regla, ya ves, la regla es en realidad
una función bi. Así que vamos a crear una función bi para
realmente tener esto hecho. Una función B, entonces sólo
vamos a devolverla. Digamos regresar, devolver
nueva validación de campo, ¿de acuerdo? Así es básicamente como se hace. Entonces ahora agreguemos un rol. Entonces porque necesitamos
una biefunción, así que vamos a crear la Recuerda cómo lo llamas. Lo llamaré privado,
una función bi. Necesito una función bi. Una función B significa que tomas dos entradas o
me das una salida, una función, tomas una
entrada piensa que quieres salida. Una función Tri
lo mismo que podrías implementar. Creo que el máximo que
tienes es un Bye, pero sigues los mismos
patrones para crear un try un cuádruple, un penciple solo dependiendo de él, pero eso está más allá del alcance
de lo que estamos viendo Así que sólo para apegarse a una
B que se requiere. Ahora para la función Be, vas a tomar
en un campo argumentos. Campo derecho y argumentos, toma en validación de campo. No te preocupes, esto es estereotipado para que no tengas que memorizar
realmente Siempre solo ve a revisar
y tomar lo que necesites. Esta parte, y por último, nos
va a dar esta opción, que va a ser en
caso de que se produzca un error. En caso de que
ocurra un error, un opcional, se produce
un error, obtenemos un error QL gráfico
opcional Si ocurre un error, esperamos
que esto esté disponible. Voy a llamarlo
paginación, paginación borde. Entonces quiero que sea
más declarativo. Diré la edad de paginación. Déjame mover esta edad. Diré búsqueda de edad, regla
mayor a 17. Eso tiene sentido si pasas
algo menor a 17, vas a
tener más tarde de 18, vas a tener un error. El asesoramiento debe ser
un empleado debe ser mayor a ocho c
igual o mayor que 80. Esa es la idea. ¿Cómo funciona
esto? Tú devuelves esto. Vas a regresar recuerda estos son
los pocos estos son los argumentos que están
entrando, y este es el error. Se trata de 32 entradas porque una bifunción
siempre tomará en C y una U
y devolverá la R. A T que
es la primera que imputa R que está en segunda imput y ésta
es, que es Estamos esperando que estas son las dos cosas que se
requerirán ahora mismo. Entonces este tipo, estas son las entradas entonces
básicamente solo regresamos, y ahora queremos
devolver lo que necesitamos. Voy a decir
usemos un mapa una cadena de mapa, una cadena de mapa, luego objetos porque no
sabemos lo que devuelven. Entonces voy a decir
argumentos empleado, arg empleado, g empleado es igual Entonces voy a usar un campo argumentos, el campo el campo, debería
haber un pequeño después. Debe ser un campo pequeño porque todo lo que
usa los objetos. Yo pabled argumentos, luego
punto obtener argumentos valor. F argumentos. Eso está bien entonces. Punto Debe haber
un argumento punto get. Permítanme observar
esto un poco. Oh, lo siento. Creo que
me estoy perdiendo esto porque esto tiene que tener esto. Cerramos esto,
¿verdad? Cerramos esto. Entonces cerramos esto también. Oye, eso funciona. Bien,
entonces trae esto. Sé un mapa. Til mapa. Entonces obtiene argumentos. Bien, creo que me
falta algo. Yo debería ser argumentos de campo. Bien. Déjame observar esto. Claramente, ¿qué me falta? Oh, lo siento. Creo que este es
el error. ¿El error aquí? Al parecer, sí, necesito agregarlo porque
una función ¿verdad? Una función
necesita realmente suceder uso podría tomar un argumento. Bien, entonces tenemos que luego
campo obtener argumento, ¿verdad? Esto lo que estoy
buscando consigue argumento. Entonces, ¿qué argumentos
estamos buscando? Por favor en ratón muy cuidadoso. ¿Qué argumentos
buscas? Recuerda cuando estamos haciendo
una búsqueda de paginación, estamos pasando una imputa Esa es la imputa a la que voy a
apuntar aquí. Vamos a verlo. Paginación, paginación de
empleados
estamos apuntando a este tipo, apuntando a esto
porque quieres validar algún campo
dentro de este objeto, por favor juega observando
esto estamos Por eso estoy
apuntando a la búsqueda. Por eso voy
a tener dentro de esto. Podría simplemente escribir búsqueda pero me gusta usar mis constantes. Yo sólo diré constantes DGs. UGS Constance Dots Queb
paginación de empleados. Debe haber un empleado que la
paginación impute argumento. Verás, esto nos da búsqueda. Esto es un moueful, así que solo usa lo que sea
cómodo para ti, Me gusta usar la constante de excavaciones, pero ya ves que en última instancia
solo usa la búsqueda, que mapea exactamente
con esta esta búsqueda Todo bien. Entonces eso es genial. Entonces con eso, así que ahora
ayudé porque al
parecer es un objeto. Podría ser cualquier cosa así
que podría ser un objeto. ¿Bien? Entonces estos videos
ya se hacen muy largos, así que volvamos en el siguiente video para terminar esto de
verdad. Bien. Los veo
en el siguiente video.
108. Instrumentación parte 4: Muy bien, genial
tenerte por chicos. Bien, así que vamos a
completar esto. Entonces lo estoy dando paso a paso,
y es por eso que los videos que
se están volviendo bastante largos esta semana giran cada detalle para
que no te quieras perder
nada, ¿verdad? Para que siempre pudieras ver el video para entender
el concepto. Ahora, comencemos el DOB. Recuerda que pasamos en un DOB
arranca, voy a pasar en un DBN. Así que refresquemos nuestra memoria. Vamos allí DOB inicia un DOB N. Eso es a lo que
voy a estar Bien, así que volvamos. Por lo que las fechas locales,
Fechas locales Comienza la fecha de nacimiento. Comienza DOB, entonces voy a echarlo a unas
fechas locales, fechas locales Voy a sacar los argumentos. Voy a usar get o
default, G o defaults. misma manera, voy a
usar mis constantes de excavaciones,
me encantan estas constantes indigs Este tipo puntiea DOB. Recuerda que comienza el DOB. Si eso no está disponible,
mira el punto ahora. Hagamos lo mismo
para DOB end, DOB end. Voy a llamar a este fin de fecha de nacimiento. Todo bien. Bien, así que esto
es chicos bastante geniales. Ahora, vamos a conseguir la ventaja. Vamos a conseguir la ventaja.
Esto en realidad equivale a. Voy a conseguir la ventaja. Yo lo llamaré ge ge start,
vamos a llamarlo HA. Esto funciona. Entonces mírelo ahora. Llegaremos hasta aquí.
Bien, esto funciona. Esto fue mirarlo ahora, llegar aquí, así que lo estás restando. De la misma manera a gB. Ese será el fin del DOB para ser el
final del DOB. Seguro entiendes
lo que hay en esto poniendo ventaja, ¿
verdad? Sólo el borde. Edad actual
cuando usa DOB comienza, los bordes y DOB los bordes Esta es la lógica de que voy a
dar mi consentimiento. Diré si HA, si HA, diga si HA si HA es menor que 18 o HB, podría escribir
mejor validación. HB es menor a 18. Si esto es menor a
18, ¿qué quiero hacer? También devuelvo una opción r. Voy a usar un error opcional. Recuerde que devolvemos un error QL
en última instancia gráfica. Eso es lo que estamos
recibiendo ret. Voy a estar usando esto para devolver
la flecha gráfica, esta parte, usa a este
tipo cometamos error. Verás, cuando
cometes el error, finalmente
obtienes
el error QL del gráfico Así es como funciona.
Se usa esto, se crea un error de gráfico
al final del
cual se espera. Entonces voy a decir Él busca. Para inicio y fin deben ser mayores que mayores
o iguales a 18. Creo que esto funciona.
Esa es la primera parte. Entonces de lo contrario nt opcional, lo que significa que no hay error o código en absoluto. Básicamente, así es como funciona. Entonces entonces escojo esto
y luego lo conecto aquí. Entonces eso es todo. Entonces eso es
todo lo que necesitas hacer aquí. Así que entremos. Déjame
usar una palabra clave dis, ¿verdad? Esto esto. Entonces esto funciona. Entonces, reiniciemos esta
aplicación, ¿verdad? Así que ahora hemos agregado una instrumentación
personalizada, y la instrumentación personalizada
está mirando al borde. Entonces, si el borde nosotros pasivos, ya sea para el inicio o gen no es mayor
ni igual a 18, te va a llegar esta
flecha en particular que te arroje, ¿verdad? Entonces hagámoslo rápidamente
y veamos en acción. Entonces voy a ir
a mi paginación. Vamos a la paginación. Recuerda que un feliz están
disponibles para ti. La paginación ya
probó esto antes. Así que vamos a probar esto. Entonces solo voy a usar la
paginación. Hagamos esto. Entonces esto funciona porque ahora
tenemos datos válidos. Voy a escoger digamos que
esto es 2024 o digamos 2000, voy a decir 2020 aquí. Entonces 2020, vamos a pegarle a este tipo. Verlo clics en borde, búsqueda o inicio inicio o
fin es mayor que 18. Entonces esta es una mejor manera de escribir complejo si quieres escribir
una lógica compleja, ¿verdad? Para tu gráfica Q, podrías simplemente
colocarla y quieres validar contra
el alboroto de entrada Esta es una buena
manera de
hacerlo realmente para usar instrumentación,
quise decir. Entonces voy a escribir algo de lógica extra Aquí hay
algún error. Corregimos eso. Voy
a añadir algo de lógica extra. Entonces este es solo uno de tres.
Solo hagamos dos más, así que eso nos va a dar
un mejor sentido en caso de que
queramos en caso de que queramos explorar, así que solo quiero
darte más opción. Así que esta vez,
voy a hacer algo, digamos, vamos a hacer
una edad de 65 es decir en 65 años en cinco años, si tienes 65 en cinco años, eso significa que no podemos
contratarte, ¿verdad? Pero tomarlo como seguro a los
65 es la edad de jubilación. Pero dentro de cinco años,
si eres mayor, vas a tener 65 es decir, no
vas a estar trabajando para nosotros
más de 55 años, más de cinco años
quiero decir, no
queremos que te
queremos a largo plazo, quiere tener al
menos 60 años Sigamos adelante e implementemos
esa instrumentación. Sólo voy a copiar
esto y hacer ajustes. estos los
llamo recuperar te llamo lograr
Él validación. Instrumentación de validación de edad. Recuperar validación de edad, recuperar
instrumentación de validación de edad. Recupera la edad, esto funciona. ¿Cuál es el error aquí?
¿Por qué se queja Creo que no está
cargado correctamente. Esto está bien. ¿A
qué nos dirigimos? Recuerda, estaré apuntando cuando estemos creando un empleado. Esto es lógica. Cuando
estamos creando un empleado. Recuerde pregunta
debe ser mutación, puntos de
mutación crea empleado.
Esto a lo que estoy apuntando. Voy a llamar a este borde
llamarlo edad 65 en cinco años regla. Regla de cinco años. A éste lo
voy a llamar. Vamos a crear a este
tipo. Todo bien. Entonces esto ha sido creado para nosotros. Sólo voy a
mover esto a la cima. Bien, vamos a
mover esto a continuación, así que debería ser lo propio para nosotros. Bien, así que voy
a tener esto aquí. Muy bien, genial. Entonces,
vamos a crear esta regla. Entonces esta regla va
a ser bastante sencilla. Entonces, ¿cómo sería la regla? ¿Básicamente? Entonces esto probablemente solo robaría esto también el modificar. Bien, entonces, ¿qué necesitamos aquí? Ya trajimos esto ahora. Voy a conseguir miembro
por esto no es tal. Pero esto es mutación. Voy a estar usando mutación
y lo que necesitamos. Lo que necesitamos básicamente
es crear empleado. Punto de mutación crear empleado. Entonces hay un
crédito constante para nosotros. Así que crea empleado
empleado subcontratar. Eso es lo que estamos usando. Recuerda, empleado subcontratar.
Eso es lo que comprobamos. Estamos creando un empleado. Esta parte, ya ves,
empleado subcontrata. Esta es la parte a la que
realmente estás apuntando. ¿Todo bien? Así que la constante de DiGir
crea muchos detalles, de modo que solo aprovechándolo Entonces con eso en su lugar,
oh, eso está en su lugar. ¿Qué voy a hacer? Será tan sencillo como
comprobar la edad. Sólo voy a comprobar la edad que en realidad se imputó en, voy a comprobar por esto Sólo necesito uno. Creo que necesito todo esto. Sólo necesito uno.
Va a ser un mapa, al parecer. Pero lo voy a
conseguir como un int, lo voy a conseguir como un int. De ahí, llamémoslo
edad, edad, y la edad va a ser un entero,
porque es un entero. Argumentos empleado
consigue o default, el empleado subcontrató Recuerda, empleado
subcontratado imputa. Esa es la edad. Recuerda, estamos apuntando a la edad
dentro de este tipo. Si regresas aquí,
revisas esto, estás apuntando a esta ventaja, a
lo que estamos apuntando. Yo solo voy particularmente, si revisas esto correctamente, puedes ver y solo apuntando a edad solo puedes usar
el borde de la cuerda. Solo estoy usando las excavaciones
porque me encantan estos indigs. Cuando tengamos esta ventaja, sólo
voy a quitar toda esta lógica
y voy a decir si g más cinco es
mayor o igual a 65. Si son 65, voy
a decir que debes ser vamos a reescribir esto para decir, no
debes tener 65 ni más Cinco años o más en cinco
años. Cinco años. Bien, así que reiniciemos esto. Entonces con Q. Así que esa es
básicamente la regla
en realidad estaban colocando realmente
colocando aquí para este tipo. Entonces estamos reiniciando esto. Entonces, reiniciemos esta
aplicación, ¿verdad? Entonces mientras estudiamos
esta aplicación,
acudimos al empleado que dejó de fumar. Muy empleados nuestro objeto
objetivo aquí. Así que crea empleado, derecho. Así que trata de crear empleado. Esto es bastante genial, vamos a
apuntar a la edad. Esto es 2024. Digamos que ya tengo
60, ya tengo 60. Ya tengo 61 años. Dentro de
cinco años, al parecer, tendré 66 años. Voy a tener 66 años. Vamos a pegarle a este tipo. Verás, no debes tener 65 años ni más en
cinco años. Bien, chicos, los
veré en el siguiente video.
109. Instrumentación parte 5: Oigan, chicos, es bueno
tenerlos de vuelta. Bien, capaz de crear
dos instrumentación personalizada. Recuerda que esto es muy importante. Si quieres validar
los campos que están
entrando a tu
aplicación y no
puedes usar la normal no
puedes usar
la validación de hibernación normal
o probablemente la validación que agregamos en
que no está funcionando para
ti y necesitas algo con más lógica o lógica
más personalizada Este es tu bien
para chico. Esta es tu
instrumentación de buen chico. Todo bien. Por último,
implementemos uno más. Al parecer ha sido Hey, Ben, sólo
voy a
traer a este tipo. Yo sólo traeré esto. Ahora solo voy a
actualizar esto. Llamemos a esto instrumentación de
validación basada en salarios. Llámalo sueldo base sueldo base, instrumentación
de validación. Esto también se
dirigirá al objetivo de crear empleado el empleado
creat Ahora, voy a llamar a este salario debajo de la regla de los 50 mil. Sueldo por debajo de 50,000 regla cuatro pasante o salario inferior a
mil cuatro de cada diez Para las reglas de Pasante. No lo estoy haciendo
muy descriptivo con el nombre.
Vamos a crear esto. ¿Ya entiendes exactamente
cómo va a jugar esto? Dices que el salario para
Pasante debe estar por debajo de los 50 mil. Si no está por debajo de los 50 mil, vas a obtener una excepción. Déjame ir rápido
y robar esto y agregarlo aquí. Eso es genial. Ahora bien, recuerda que esto debería estar enfocándose en el empleado
creador. El empleado
subcontrató quiero decir porque estás creando
esto así que estamos usando Ahora, voy a
conseguir el sueldo. Aquí voy a estar recibiendo el salario, el salario es lo que
en gran decimal? El salario es decimal grande. El salario es decimal grande. Tenemos el salario,
que es un gran decimal. Entonces al mismo tiempo también, sueldo
C, vamos a cortar este
gran decimal, salario. Entonces ahora también
voy a conseguir el rollo. Yendo a conseguirlo roll
roll you roll roll. Voy a cortar este rollo. Cuál es el rollo ahora tipos Dyn. Entonces el cordón enrollable es rollo. Rollo. Ahora bien, ¿cómo funcionaría esto? Esto no necesita.
Él, esto está bien, asegúrate de que la custodia g está bien. Entonces este sería cero decimal
grande. Usemos el cero decimal grande. Esto sería cero decimal grande. B decimal cero. Esto es fila solo le va a
dar una regla por defecto de inten Esto es papel en diez Todo bien. Esto sería
si el salario es mayor. Déjame escribir aquí la
validación. Yo digo, Bien, creo que
puedo hacer esto. Puedo hacer una declaración,
no escribir demasiadas lógicas. Entonces voy a decir que el salario es mayor o comparar puntos. Recuerda, estás usando
grandes decimales para comparar. Punto comparado con el
valor decimal grande del valor de RSMa, bien, valor de entonces yo
pasando un doble 50,000 Esto es una coma 50.
Bien, eso ahí. Entonces, veamos, ¿qué es? ¿Cuál es el
valor esperado Vesima de esperar qué? Un largo, ¿verdad? Un largo. ¿Bien? Así es el pulmón que pasa. Entonces, si esto es
mayor que cero, al parecer, si este salario es mayor que
este es mayor que este. Sí, es mayor
que esté por debajo. Entonces creo que hay que
reducir esto a 4999. Lo entiendes chicos de la gist. Entonces
lo que estoy haciendo es 9999 Bien. Entonces esto es mayor que esto y rodar si tiene que ser Bien, estoy tratando de repensar
la lógica ahora el salario debe estar por debajo de
59 por intención, y rollo es intención Y el rol es igual al rol pero a la intención. Entonces esto es esto. Así que
solo voy a usar llegar aquí, así que no lo hacemos por defecto, ¿verdad? Entonces voy a hacer esto.
Voy a quitar esto. Bien, entonces esto es esto, ¿verdad? Vamos a encapsular
esto Muy bien. Entonces esto es mayor que esto
es mayor a 50 mil. Tiene a continuación. Entonces es mejor que
mayores iguales a 50,000 y es pasante Entonces vas a decir, oye, no
puedes ganar
tanto. Pasante Mira, no puedes ganar tanto. No se puede ganar
tanto como pasante. Bien. Entonces, iniciemos nuevo
la aplicación y
veamos si nuestra lógica
funciona como debería. Voy a entrar
antes de que esto empiece. Rápidamente, le
mostraremos a esta pasante. Vamos a darle 50 a esta persona. Guau, esto es 50,000, esto es 50 así que voy
a hacer esto solo 50,000. Mis 50 mil en los puntos. 50,000 en los puntos. Vamos a ver si ambas instrumentación realmente
van a entrar en acción. Yo tengo esto, esto se inicia. Vamos a crear esto. Bien, entonces esto es que voy
a reducir la edad. En realidad es usar
paridad, empiezo a caer. Vamos a darle a esto. Bien, creo que en realidad hemos
volado algo. Oh, sí. He volado
algo el sueldo es de 50. Bien, déjame ver la flecha. Entonces la flecha es
veamos la flecha. No se puede fundir la cuerda de cuerda
no se puede fundir para rodar. Es una cuerda para lanzar
una cuerda a tu rollo. No publ ya que en realidad
obtiene una cadena, esto obtiene una cadena,
lo cual está bien Esperamos que sea una cadena.
Entonces hagamos el trabajo. Rollo de cuerda, rollo de cuerda. Entonces colocaré esto aquí. Podemos hacer el rollo. Simplemente puedes hacer este nombre de
filas. Está bien. Decir punto igual señal caso, derecha la regla de paso. Bien, creo que esto
funciona. Esto funciona. Así que
en realidad hemos podido colocar esto y bien, esto entonces creo que tenemos que
cubrirlo uno más. Bien. Bien, entonces esto funciona. Ojalá, no obtengamos
ningún error si lo haces, vamos a depurarlo para ver en qué se está metiendo realmente. Bien, así que mientras
esto entra, hemos sido capaces de establecer realmente cuando en realidad establecer esto en
50,000, voy a establecer esto en 34. Entonces queremos ver
esa instrumentación realmente pateando. Entonces,
vamos a darle a este tipo. Entonces cuando golpeamos esto. terminar con este munch como
pasante, Entonces la instrumentación
está funcionando. Creo que ya sabe cómo funciona la
instrumentación. Así que Gap Que es tan,
tan impresionante, chicos. Para que pudieras tener
todo en un solo lugar, la validación, la
instrumentación para controlar la cosa. Esa es lógica compleja
tener las cosas hechas por ti. Todavía consigo que el poder
de la señal GAP sea
limitar lo que realmente viene
como inversiones, elija
algunas en particular. Bien. Con esto hecho, nos vemos el próximo uh
110. Pruebas parte 1: Oigan a todos, y
genial tenerlos de vuelta. Ahora en realidad has
entrado en una sección increíble, que se trata de pruebas, todo de pruebas,
todo de pruebas. Entonces este es básicamente uno de los fundamentos
de la programación Necesitas asegurarte de
que tus pruebas en línea con tu
aplicación, ¿verdad? Simplemente puedes escribir la
aplicación de la manera en que un desarrollador se
salvaguarda a
sí mismo es una verdadera prueba. Bien, así que vamos a meternos en ello. Así que vamos a
hacer esto un
poco interesante, ¿verdad? Entonces vamos a hacerlo
un poco interesante. Entonces lo vamos a hacer
es que en realidad vas
a tener las cosas funcionando
más como en una cronológica Vamos a verlo de esa manera de
manera cronológica para que
podamos ver realmente la
fecundidad de las pruebas ¿Cómo llegamos a la prueba de prueba? Empecemos. En las cosas en las que
nos vamos a centrar en las pruebas hoy vamos a
estar viendo esto. Voy a limpiar esto.
No me gusta el valor por defecto. Voy a
aclarar el valor por defecto. Entonces solo voy a crear
un paquete API acre llamado API porque vamos a estar probando desde el probablemente estaremos
haciendo una prueba de integración. Eso es en lo que nos estamos
enfocando, y eso es lo que vamos a hacer. Bien, entonces voy a llamar a
esta prueba de creación de entidad. Prueba de creación de entidad. Impresionante. Bien, entonces para la gráfica QO, para que puedas
probar con éxito, estas son las cosas que realmente
puedes traer Probablemente voy a traer un registro SLL para J solo para iniciar sesión Traes una
prueba de springbook, que es estándar. Fresco. Ahora para GraphQL, para que puedas
usar alguna de
la configuración automática de la configuración automática de Graph Q o algunas cosas
que se configuren para
ti para que
puedas probar Graph En particular,
es necesario traer en
Auto en Auto configurar
Auto Configurar grafico ko tester. Sally aviso auto Configurar
grafico Cuo tester. Esto es muy importante. Esto se basa en la
documentación oficial, ¿verdad? Entonces necesitas traer esto,
exploremos esto un
poco. ¿Todo bien? Esto es básicamente solo quedarse
la configuración automática y algunos otros detalles, ¿de acuerdo? Todo bien. Entonces esto es
lo que necesitas traer. Ahora, porque queremos
ejecutar nuestra prueba de manera
cronológica, voy a hacer uso
del método ordenador,
correcto, de una manera de ordenar
realmente nuestro metal Entonces queremos que nuestros métodos
funcionen en un orden particular, y por eso usé la
palabra cronológico, ¿verdad Y por eso voy a
traer un método de prueba Oer. Pero esto ya está
disponible en API de jubiter, jubiter de unidad
J, así que
voy a traer esto,
y esto va a
ser Podrías ordenar por clase, pero
yo quiero ordenar por método. Podrías tener un
par de clases, luego ordenar por ellas, pero yo
quiero ordenar por metal. Entonces, si estás ordenando
por clase, al parecer, necesitas asegurarte de tener orden una notación en tu clase, pero en este caso, lo estaremos
haciendo a través de la clase. Entonces ahora que tenemos esto,
quiero realmente
crear los esqueletos de lo que va a estar probando para que veas
cómo va a fluir En primer lugar, voy a
tener una empresa de creación. Hagamos equiparar comping
crear prueba de empresa. Ven a mí pruebas. Entonces al parecer hay
que tener una prueba, lo cual es muy importante. Entonces me gusta
dar disciplinar. A mí me gusta dar disciplina. Esto no es necesario, pero simplemente
me encanta hacer esto. Yo sólo digo, genial. Ven a mí. Salir de la prueba de la empresa.
Entonces al parecer, quiero darle
una orden, ¿verdad? Una orden, voy
a darle orden uno. Entonces este va a
ser el primer orden. Meer cuando estás creando un
aula ejecutando la prueba, no
necesitas ser
público porque al parecer, no se llama en ninguna parte,
así que puedes quitarte esto. Bien, entonces esto es lo primero que quieres
hacer. Quiere dejar de fumar Empresa. Después siguiente paso, quiero
crear departamento. Entonces esto correría en un orden
particular, ¿verdad? Bueno. Entonces esto va a ser 02. O los dos y yo
lo he adivinado, como usted lo adivinó, vamos a llamar a esto
crear departamentos prueba Actualicemos el nombre también. Prueba departamental. Impresionante.
Fresco. Ahora esto es genial. Ahora vamos también gato en
los esqueletos. ¿Recuerdas? Ahora esto va a
ser tres. Voy a llamar
a esto crear prueba de
empleado. Dejar la prueba de empleado. Todo bien. Voy a copiar esto.
Yo sólo reemplazaré los departamentos, ¿
verdad? Todo bien. Hemos renunciado a esto
y buen empleado. Esto va a correr entonces
vamos a buscar toda la compañía. Vamos a buscar toda la compañía. Vamos a buscar toda la compañía.
Yo hago este cuatro. Impresionante. Voy a llamar a esto
buscar toda compañía Obtener todas las pruebas de la compañía.
Esto es bastante genial. Entonces actualicemos esta
llamada esta empresa de búsqueda. Prueba de Fetch Company. Fresco. Por último, hagamos una más. Hagamos una más.
Voy a llamar a este empleado de fetch
con búsqueda de empresa Recuerda que tenemos un
método así. De hecho voy a
usar ese empleado con empresa nosotros prueba de búsqueda de empresa. Prueba de búsqueda, actualicemos esto va a ser el número cinco, esto se ejecutará en este orden en
particular. Espectáculo de una manera, toda la
idea es esta, ¿verdad? Mostramos de una manera que
creamos una empresa y esa empresa se usa
para crear un departamento y ese departamento se usa
para crear un empleado. Entonces podemos infectar a empresa
y empleado con compañía. Ahí es donde estamos
seguros de que todo dentro de nuestro sistema está
funcionando como debería. Tenemos esto. Esto es lo básico que necesitamos,
y esto es bastante genial. Tenemos esto. Vamos a
ir uno más. Vamos a simplemente
probablemente solo. Recuerda que hablamos bastante de
paginación. Vamos a tener
algo que se llama query. Prueba. Vamos a
trabajar con esto también. Llame a la prueba de consulta.
Al parecer va a tener la misma anotación. Trae esto. No
necesitamos pedir nada porque solo vamos a tener una
sola prueba, ¿verdad? No necesitamos esto para que
sea público quitar esto. Impresionante. Con esto hecho, entonces vamos a crear una prueba aquí. Vamos a llamarlo vacío.
Va a ser un vacío. Lo llamaré empleado
con prueba de búsqueda de empresa. Ves la diferencia en poco. Sé que el nombre se parece, vamos a ver
la diferencia. Bien. Muy bien,
esto es bastante genial. Vamos a anotarlo.
Anotemos esto también Voy a
llamarlo nombre para mostrar. Un nombre para mostrar. Vamos a darle a buscar empleado y compañía de
Fetch empleado y compañía de
Fetch Todo bien. Entonces, al parecer, no
queremos perdernos lo
importante por aquí, ¿verdad? Que es la prueba de artes. Bien. Así que esto va a ser
muy emocionante, chicos. Así que
en realidad hemos
podido traer todo el esqueleto
de lo que necesitamos. En la siguiente sección,
vamos a ver el siguiente detalle
importante. Los veré chicos
en el siguiente video.
111. Pruebas parte 2: Oigan, chicos, genial
tenerlos de vuelta. Justo en la última sección, pudimos detener
de hecho todas las pruebas que
estarán corriendo en esta sección y para hacer el levantamiento pesado
o vamos a traer en la guía siendo
el levantamiento pesado. igual manera tenemos plantillas de descanso de
prueba Cuando en realidad se prueban, también
hay algo
para la señal gráfica que podamos usar, que está en la documentación
oficial. Hay varias variantes
pero te voy a dar, te voy a mostrar la que
más vas a estar usando , que es gráfica. Prueba QL, grafica QL
tester impresionante. Este es el probador QL gráfico
que básicamente estás usando. Ahora, hay una nota clave que debes observar.
Hay una nota clave La nota clave es que hay que
tener en cuenta que esto llamaría
un script QL gráfico Porque pensar en esta
gráfica QL se trata los scripts que en realidad se convirtieron con el
gen code y los gustos Cuando intentas probar
commit esto será llamar a un script y revisar tus scripts y ejecutarlo contra la aplicación Graph
QL Creo que un ejemplo a medida que
avanzas nos mostrará una mejor
manera de hacerlo realmente. Creo que probablemente solo
quiero llamar a este. Déjame darle el nombre
HTTP, graphy o tester. Probablemente solo déjelo de esta manera. Me encanta de esta manera y
ves exactamente por qué
hice esto en la última
sección cuando estás haciendo, estamos tratando con seguridad. Pero esto no cambia
nada, ¿verdad? Entonces, ¿cómo se vería el
guión? Lo que debemos considerar es
que tenemos que entrar en un guión. En cripta comfy, ¿cuál
es el script que ejecutas? Eso será una mutación. Yo mutación llamábamos mutación, esto era un guión para ejecutar, ¿verdad? De hecho, golpeamos esto, ¿verdad? Crear empresa. Y cuando lo
llamamos desde afuera, esto es exactamente con lo que
interactuamos Llamamos a este tipo, la
mutación Create Company, interactuó con la aplicación
Graph cal Pude
producir este resultado. Entonces, para usar el probador de llamadas de Graph, tenga en cuenta, esto es con
lo que interactuará. Cómo lo estás llamando
realmente desde afuera. De la misma manera que
en realidad usas Mok NVC. La forma en que usas Mok NVC, ellos llamarán a la API HB como si la estuvieras llamando
desde un cliente la misma manera esto
mira a los clientes, van a estar
llamándolo desde afuera,
la forma de verse como diez,
llegando a la aplicación
y ejecutándola, ¿verdad? Entonces, con esto en mente y
teniendo esto en mente, sigamos adelante y
en realidad ejecutemos esto. El guión para ser
cortina tendrá este contenido para crear empresa. Bien, ¿cómo se vería
esto? Bien. Entonces dentro de nuestra prueba, voy a seguir adelante
y crear la carpeta. Voy a crear la
carpeta en nuestros recursos. Al parecer, necesitamos tener
una carpeta de recursos, ¿verdad? Y dentro de nuestro pliegue de recursos, voy a llamar a estos
recursos, recursos. Fresco. Tan listo tener
esto disponible para Rs carpeta de recursos y
dentro de carpeta de recursos, voy a llamar al directorio
graph QL test, graph Prueba gráfica QL, carpeta de
prueba gráfica Q. Todo bien. Sigamos adelante y después
tengamos la compañía Creates. Ahora. Esta es otra
diferencia, chicos. Voy a mencionar esto de
nuevo muy, muy crítico. Cuando estamos creando
la aplicación, estamos usando QL de gráfico de puntos En la documentación oficial,
lo que observé, cuando estás escribiendo tu prueba, tiene
que ser, vamos a darte el
nombre aleatorio crea empresa. Prueba de empresa Quid, ¿verdad? Entonces será gráfica QL. Tenga en cuenta esto. No
tienes una S. No hay S. El problema es que no lo va a
encontrar, ¿verdad? Tiene que ser
gráfico de puntos QL, ¿verdad? Lo he intentado un par de veces. Descubrí que
intenté agregar la S, pero fue darme algún error
raro, ¿verdad? Entonces volví a buscar en la
documentación oficial. Vi que observé
que no requiere una S. Entonces así
es como se verá. Ahora ya podemos entrar. No necesitamos hacer
nada, no mucho. Sólo voy a
copiar esto tal como está. Yo tal como es. Yo no cambio nada.
Sólo voy a pegarlo aquí. Así que esto es exactamente lo
que estamos llamando, ¿verdad? Entonces, si controlo haga clic en
esto, ¿lo ve? Fue capaz de encontrar esto. ¿Ves la belleza?
Volveré a esto otra vez. Si controlas clic
o comando, clic, si no es un MAC, ves
que fue capaz de encontrarlo. Entonces significa que es
capaz de saber que esto es exactamente lo que
vas a estar llamando. ¿Todo bien? Entonces espero que
esto quede claro, chicos. Voy a volver a pasar por ello
para hacernos entender. Lo número uno que
debes considerar es que necesitas traer en
esta gráfica Kio tester, que sería capaz de
llamar al guión, ¿verdad? Los guiones, es un cliente, así que en realidad está conectado más como desde fuera, ¿verdad? Lo segundo que hay que
observar es que cuando estás ejecutando una prueba GAP QL, termina con puntos
GA QL, no GA QL El guión termina con
una gráfica QL, no G QS. Eso es lo segundo a tener en cuenta. Lo tercero a considerar es la misma manera que
lo llamas desde afuera. De la misma manera que lo llamas
desde afuera. Sólo lo estoy colocando aquí, así es como
voy a hacer mi prueba. Cuando haces clic en Control o
comando, ves, fue capaz de coincidir con esto.
Se trata de chicos bastante chulos. Esto es realmente genial. De hecho, hemos
podido hacer esto. Hagamos lo mismo con el departamento
creativo. Hagamos lo mismo para
crear departamento. Voy a seguir adelante y
crear otro, llamarlo, sale Department
Tests punto
GraphQL Bien. Entonces tengo el
departamento de la misma manera, vas a departamentos, copia al mismo tipo, y yo lo
traeré y lo golpearé Bien, entonces vamos a hacer clic de Comando. Impresionante. Ves esto en realidad llamado Esto realmente
funciona muy bien. Siguiente personal, voy a demandar
crea pruebas de empleados. Voy a llamarlo crea
Empleado prueba punto GQL. Recuerda, no hay GA QL. Entraré y
luego recogeré esto,
empleado, escogeré al gran
empleado y golpeé a un equipo. Ese es el
clic de comando. Ves que esto realmente
coincide con precisión. Entonces lo siguiente que
vamos a estar probando, que será fetch Iba a ser empleado con empresa Ven
pruebas grafico QL Todo bien. Si notas
la gráfica emperador QL, ya
tenemos eso ya Sí, gráfico de empleados
Q, búsqueda de empresa. Creo que me falta una palabra clave. Búsqueda de empresa. Quiero
ser consistente. Todo bien. Esto básicamente contiene este detalle.
Vamos a explorar. Cuando acudas a
empleado empleado, vayamos a consultar
la consulta básica. Pasemos a la consulta básica. Tenemos esto en alguna parte, así que déjame entrar, sacar esto y
ves debajo de lo común, común que probamos, lo que realmente demostró que
tenemos al empleado con compañía, empleado
con compañía. Así que en realidad podríamos
comparar eso. Entonces para un repaso, bajo el controlador común, recuerda que creamos este
empleado We company search Este es el contra el que estamos
probando. Todo bien. De hecho hemos podido tener eso, y si lo miras, esta es la firma que
tenemos . Mira esta firma. Tenemos estos
fragmentos entrando, por favor esta es la preferencia de tipo. Tenemos que
bajar, nosotros ja esto, y eso es exactamente contra lo que
realmente estamos probando. Si miras esto, si
hiciste clic de comando, puedes ver que fue
capaz de localizarlo. Bien con esto
dicho, los veo chicos en el siguiente video.
112. Pruebas parte 3: Oigan, chicos, genial
tenerlos de vuelta. Bien, así que continuemos
desde donde empezamos. Hemos sido capaces de
crear cuatro, ¿verdad? ¿Recuerdas cuántos tenemos? Tenemos cinco aquí, ¿verdad? Ella es uno, dos, tres, cuatro, cinco, y la
última, ella es la consulta. Así que vamos a crear los dos últimos. Entonces el siguiente que sigo es
buscar toda la compañía, ¿verdad? Así que vamos a comparar.
Entonces, ¿ya hizo esto? Bien, creo que esto
incluso vino antes de esto. En fin, funciona. Entonces solo en realidad tenemos
las mismas cosas que
traemos O, la ortografía está mal Trae toda la compañía. Gráfica de pruebas QL. Recuerda, no hay S. Si la miras,
va a ser una consulta. Es de la misma manera
esta es una consulta, va a ser una consulta. Mira, lo estoy igualando exactamente.
Vamos a hacer clic en el comando. Se puede ver que coincide
correctamente, lo cual es bastante genial. Es bastante genial,
chicos. Entonces finalmente, vamos a tener el último que viene. Que va a ser el gráfico de
pruebas de
paginación de paginación QL llenado masivo es incorrecto.
Hagamos una gráfica factorial, Q, esto básicamente
en realidad va a tener esto. Todo bien. Esto tenemos esto. Yo sólo voy a estar probando
contra estos elementos. Voy a probar contra la página, tamaño, la página y el elemento. Básicamente, esto es
lo que se esperará. Hago un clic de comando,
coincide con esto. Esto es si lo miras
críticamente, yo solo lo importa. Por eso parece
como si estuviera zipping, pero no es diferente Revisamos la paginación. Revisa la paginación, tenemos esto, esto básicamente coincidirá.
Esto lo estamos trayendo. No voy a probar de nuevo esto. Todo bien. Se trata de chicos
bastante chulos. Hemos sido capaces de
lograr realmente crear todo, todos los scripts a usar. Ahora, veamos cómo encaja. Presiona primero,
vamos y reit.com. Voy a entrar. Todo bien. Ahora para la empresa,
¿cómo procedemos? En realidad crear esto es
en realidad chicos bastante simples. Es bastante simple.
Vamos a hacer, entremos, entremos en ello. Ahora, vamos a hacer esto nuestro
comprobador HT Graffy nombre del documento, nombre documentos contra el que
estás probando Ahora cual es el nombre del documento,
recuerda, haz nombre principal. Yo también deletreé.
Eso es factor. Seguro que algunos de ustedes
ya se dieron cuenta. Gracias, chicos, ya se
dieron cuenta, prueba de omping de espec. Bien. Es genial, ¿verdad? Entonces voy a hacer
una modificación más para hacerla más pongamos
alguna discrepancia, ¿verdad Vamos a etiquetar esta prueba. Bien, muestra que
en realidad estás pegando una prueba. No cambia nada,
recuerda solo un nombre. Solo quería lucir más reflexiva de lo
que estamos tratando de hacer. Crea la prueba de empleado, B ya se ha creado, vamos a hacerlo esto está bien y esto está bien. Está bien. Hagamos que se vea
con más detalle. Escojamos este nombre. Vamos a estar
necesitando este nombre. Nosotros documentamos el nombre,
mira eso cuidadosamente. El nombre de los documentos y
el nombre del documento es trabajo, el nombre del documento es Prueba. Entonces nos estamos refiriendo a
estos documentos, ¿verdad? Impresionante. Entonces tenemos
este documento, esto crea prueba de empresa, va a estar cuidando esto crea prueba de empresa. Recuerda, esta cosa es muy importante y eso es debe coincidir. Es debe coincidir, ¿verdad? Entonces dicho eso,
eso es variable. Ahora bien, ¿cuál es la variable?
Si lo miras, la variable básicamente significa la variable básicamente
significa, ¿qué estamos pasando? Si nos fijamos en qué
estamos pasando? Estás pasando un objeto, un objeto de entrada de empresa
, ¿verdad Un objeto de entradas de monedas,
que coincidiría con esto. Recuerden que teníamos esta variable,
este concepto de variable. Entonces tenemos que crear
una variable que coincida exactamente con esta
misma firma. Bien, así que ten esto en mente. Entonces esa es la misma variable. Esta variable tendrá exactamente
esta misma firma. Eso es lo que
traemos, eso es lo que estamos trayendo aquí, ¿
verdad? La variable. Y si tuvieras que mirar
esta firma correctamente, realidad esto es un mapa, ¿verdad? Entonces vamos a estar usando un mapa para traer esto realmente, ¿
verdad? Así que bastante genial. Así que acabemos con eso. Entonces volveremos y
¿cómo se llama un nombre de variable? Vamos a verlo. Un nombre vaable se llama ves
este nombre de variable Estoy pensando
exactamente lo mismo. Nueva empresa. Por favor voy a
prestar bastante atención, chicos. Esta nueva empresa. Entonces esta será nueva compañía. Sin el signo de dólar
porque eso es lo que usé, entonces estaré pasando
la variable, y después de eso, entonces
ejecutaría. Cuando ejecutaré,
y después de ejecutar, especificaré las partes, las partes principales. Ahora bien, estas partes corresponden, solo te
voy a mostrar en
un poco crea compañía. Por eso tengo que
distinguir. Por lo que estas partes
corresponden a tu API. Esto crea compañía, ¿verdad? La empresa crea.
Por lo que corresponde. Se ha estado buscando
esta brecha que endpoints ha creado compañía, y eso es lo que se corre contra Así que en realidad se ejecuta en contra de esto. Entonces voy a repasarlo otra vez. La prueba del nombre del documento debe coincidir con lo que tiene en
este nombre de documento. Documento como
prueba de empresa rets debe coincidir con esto. Este nombre de variable,
este nombre, ¿verdad? Este nombre debe coincidir con lo que tienes aquí
como nombre de variable. Y como saben, esta
empresa imputa, que es una variable que
siempre pasa por aquí, ¿verdad Este es un mapa, y eso debe coincidir con lo que realmente estás
pasando a esta variable. Por eso se ve aquí
la nueva coma. Y qué partes Wh GAF Que
caminos estamos esperando Recuerda GafKe no
tiene concepto de puntos finales, sino Entonces, ¿qué parte coincide? Vamos a nuestra API. Coincide con esto
donde está el commit. Su compañía,
coincide con esto, ¿verdad? Así que esto es genial, chicos. Así que ten esto en mente porque esto es muy,
muy importante, ¿verdad? Este concepto que acabo de explicar
en este video es muy importante para las pruebas
y así como
se puede evitar cualquier error futuro. Bien, entonces, ¿qué
esperamos recibir de vuelta? Recuerden, nosotros retrocedemos una entidad. ¿Todo iba a volver
con una respuesta de creación? Es una clase de respuesta a preguntas porque
la miramos críticamente, volvamos a nuestra empresa A.
¿Qué estamos regresando? Respuesta de creación. Entonces eso es exactamente lo que estamos esperando. Entonces, si miras esto,
tenías la clase de respuesta de creación. Ahora, con esto, puedo extraer
esto en una variable. Verás, esto fue
capaz de darme una entidad. Ahora bien, desde esta entidad, puedo decir, vamos a registrar. Vamos a iniciar sesión. Por eso,
vamos a registrar una entidad, ¿no? Pero en lugar de log,
voy a decir NtDotG. T dot llegar a darnos
una respuesta creian. ¿Puedes ver? Tdt get nos
da esto y
podemos tener eso Entonces puedo entonces afirmar, ¿verdad? Puedo afirmar. Podría decir aserción porque así es básicamente como
escribes tu prueba Aserciones puntean activos. Oh, esto es bastante impresionante. Esto ya
lo ha hecho, ¿verdad? Establecer activo pero prefiero usar. Entonces este es JBT P. Podrías
escribir esto usando HMQust. Básicamente usas Mqrest para decir, Oh, ¿qué hice
ahí? D País Z. así que en realidad podríamos
hacer aseveraciones, punto activos activos que,
derecho, esa entidad no es nula Así que estos
en realidad podría salir. Entonces este conjunto que esta es una cresta de mano. T
básicamente debería funcionar. Sí, muy seguro. Establezca eso, entonces solo colocaré
eso es una locura, no. Bien, entonces esto va
a ser aseveraciones. Y estas aseveraciones tienen
que venir de la hamcrust. Ves que esto
viene de Júpiter, pero me gusta usar corteza de
jamón, ¿verdad Entonces voy a
encomiar esto. Vamos a sacar esto. ¿Qué es la hamcrust?
Vamos a sacar esto. Entonces
los traigo uno por uno,
para que en realidad me pudiera
dar la corteza de jamón. A mí me
interesa más la corteza de jamón. ¿A ver qué trae? Sí, llama como J. Así que la corteza de
jamón como J. Eso es lo que estoy
buscando. Bien, entonces MetaROH esto Júpiter. Entonces vamos
a traer esto. Vamos a traer esto, exhibir. Sí, entonces la prueba,
sí. Todo bien. Entonces todo
se ha salido, y esto es bastante
genial. Todo bien. Así que vuelve en el siguiente video
para escribir la variable. Los veré chicos
en el siguiente video.
113. Pruebas parte 4: Oigan, chicos, es bueno
tenerlos de vuelta. Todo bien. En esta sección, básicamente menos completo lo que ya
iniciamos . Esa es
una parte variable. Ya te he
explicado el concepto de por qué esto necesita
ser crear comunidad, mira el último video si no
entiendes por qué. Entonces esta parte, ya te
expliqué por qué necesitas
usar nueva comunidad es una variable
nombre de coincidencia exactamente. Y el cuidado GAF te da palmaditas llamando. Quieres
llamarlo endpoints Para G care lo llamas caminos, esta parte debe coincidir
exactamente para que sepa qué punto final o
qué parte va a golpear. Y la respuesta es
exactamente lo que
esperas en esta parte, ¿verdad? Y esta es la parte
que la parte se crea viniendo y la respuesta es esta, y eso es lo que
coincide exactamente. Y una vez más,
vamos a repasarlo. Ya puedes ver vamos a repasarlo. Se puede ver que el
nombre de la variable es nueva empresa. Por eso tengo esto
y el nombre del documento es
quad CompiTest eso
es lo que en realidad Ya ves, CuoMpttest nueva empresa.
Todo bien. Completemos esto rápidamente. Yo más o menos quiero hacer
algunas aseveraciones extra. Creo que me pongo de lado para
cortar la variable. Entraré y diré sesiones
para decir aseveraciones. Sesiones desde el
core dots assets, assets que la entidad. Sí. La entidad se pone, ¿verdad? EntiTg punto obtener mensaje. Estoy seguro de que el mensaje, si realmente
funciona como esperamos, se supone que
el mensaje debe ser creado con éxito.
Comparemos eso. Vamos a estar muy seguros. Si entramos, ¿cuál es el mensaje en el
que estás escrito? Nombre de la empresa con este
creador exitoso. Entonces estamos seguros de que esto
contendrá creado
con éxito, ¿verdad? Entonces esto es bastante
genial. Todo bien. Y también, también podemos afirmar
que el punto consigue éxito, derecho de adivinar el éxito El punto es cierto, es cierto. Bien, entonces esta es
una muy buena prueba. Así que configuré acompañar o
crear con éxito. Bien, así que sigamos adelante
y probamos la variable. La variable será un mapa. Recuerda, podrían
ser varios objetos. Entonces podría ser un mapa de string, slash o debería
decir contra objetos Bien. Lo llamaré variable, variables, voy a usar. Ahora, prácticamente podría
en lugar de usarlo, solo
podría usar un mapa de
Gracias , Java por cortar esto. Sólo un mapa de solo
distribuir esto. Ahora ¿qué esperamos?
Esperando un nombre. Va a ser el nombre de una empresa. Voy a colocar esto aquí. Vas a ver como
vamos a traer esto pronto. Nombre de la empresa, ¿verdad? Necesitamos un número RC, que va a
ser un número RC. Necesitamos una oficina central. Va a ser la
oficina central. Necesitamos el país
país va
a ser el país y necesitamos el
tipo de negocio. Tipo de negocio. Ahora vamos a
tomar esto al azar. Va a ser valores de punto
tipo negocio. Recuerda que esto
nos dará una matriz, ¿verdad? Luego dentro de esta matriz, queremos realmente
elegir cualquier valor aleatorio. Aquí vamos a usar
algo bastante genial. Entonces con esto en mente, y pongo aquí
como mi variable, vamos a confirmar que
esto funciona con precisión. F revisa nuestra variable imputadora, ya ves, tenemos nombre, número C, oficina central, país
y tipo de negocio, y esto coincide exactamente, uno, dos, tres, cuatro, cinco Tenemos uno, dos,
tres, cuatro, cinco. Impresionante. Ahora que en realidad hemos
podido hacer esto. Ahora, tal vez se esté
preguntando por qué los uso. Estoy tratando de usar un nombre de
variable aquí. Recuerda, queremos que
todo funcione en orden, y si quieres que todo
funcione en orden, esto
es bastante genial. Tenemos que asegurarnos de que
tenemos que asegurarnos de que
somos capaces de guardar el contenido de la empresa en este tiempo de ejecución para que esté disponible para los departamentos
y lo que está disponible, el disponible para crear empleado para que pueda ejecutar
todo correctamente. Seguro que lo
entiendes un poco. Según ejemplo
en realidad va a hacer esta plaza. Esto debería ser variable
porque es solo una variable. ¿Bien? Por eso me
estaba quejando Tan variable, bien. Así que vamos a entrar.
Entonces vamos a hacer. Recuerda que tenemos un
concepto del farsante, que ya creaste,
correcto, en esta aplicación Ya lo externalizamos,
y lo colocaremos ahora config, así que está disponible, ¿verdad? El farsante ¿Qué teníamos? Es Pujet config, Faker,
¿verdad? Tenemos esto. Entonces cableando eso aquí, farsante, vamos a
estar usando esto mucho Ahora bien, para establecer esta variable para
que tengamos algo
que se ejecute antes de
cada una de las clases que imaginamos en esta es antes
de clase. Se llama antes que
todo en Júpiter. decir, antes de que se ejecuten cada una de
estas pruebas,
quiero que ejecutes esto. Esto es genial porque luego
puedes usar esto para guardar todas estas variables
y usarlas en todas partes. Vamos a saltar rápidamente
y hacer eso. Todo bien. Ahora para esta parte, voy a estar
necesitando el nombre de la compañía. Vamos a traer su va
a ser una estática. Por favor, asegúrese de
estática porque estática asegurará
que se mantenga igual. Estática. Bien. Entonces
también necesito el número C. Necesito el
número de patrón, el número HC, necesito la oficina central,
necesito el país. Así que vamos a ver las partes. El número de patrón, ¿verdad? Voy a tener el número C porque C, esto no coincide. Vamos a necesitar la oficina central. Vamos a necesitar Country. Bien, así que esto es
genial, chicos. Así que
en realidad hemos podido hacer que esto funcione, y ahora lo tenemos funcionando. Bien. Todo bien. Entonces ahora que tenemos esto, entonces podemos entrar. ¿Cómo se traduce esto aquí? Entonces se puede decir,
ahora, tenga en cuenta. Vamos a usar este
farsante más tarde, ¿verdad? Pero debido a que esto es una estática, estamos usando esto una notación,
y esto es estático. Así es como se puede definir. No se puede hacer que sea un no estático. Entonces significa que voy a estar definiendo mi farsante directamente
aquí, ¿verdad Lo estaré definiendo
directamente aquí. Voy a usar el
otro muy pronto. Entonces voy a decir que farsa una compañía
en Name, ¿de acuerdo? Esto es genial. Entonces el número C dice que el número
RC es igual, voy a decir RC, ¿verdad? Además de faker el número, voy a decir farsante, farsante Ese número,
voy al número. Entonces diré un número aleatorio. Sólo dame un número aleatorio. Número aleatorio entre
cuatro, entre cuatro. Eso debería ser cuatro y
debe ser estricto. Recuerda que
hablamos de esto cuando estamos haciendo la tabla de poblar De hecho podrías
ver ese video. Cuando llegues al
número, entonces
dirás que debe ser estricto,
debería ser cuatro. No queremos de cero a
41 a cuatro exactamente. Entonces para la oficina central, la oficina central, esto
es bastante simple. Decir dirección de los farsantes, dirección dirección completa es
una dirección completa que necesitamos, dirección
completa, entonces país aparentemente farsante o
país o nombre Impresionante. Entonces el número de departamento que vas
a usar más tarde, decimos este valor
de cadena de hacer un faker, número de
puntos, puntos Número aleatorio, ¿verdad? Entonces hagámoslo de seis
dígitos. Entonces dice verdad. ¿Todo bien? Esto es bastante genial. Bien, poder conseguir todo básicamente
aguja, esto está bien. Entonces para esto,
entonces podemos entrar a decir, farsante ver ahora estamos
usando el farsante
inyectamos puntos faker , al azar Puntos siguiente Int. Oh,
esto es bastante genial. Eso está hecho para que funcione para mí. Impresionante, increíble.
Impresionante. Gracias. Bien, entonces
veamos qué hicimos aquí. ¿Recuerdas cuántos
tenemos aquí? Tenemos tres, ¿verdad? Empezamos en un índice cero, así que está en el cero, uno, dos. Entonces si vuelves aquí,
estoy diciendo faca dot random next Int y luego lo estoy colocando en el medio, ¿verdad Entonces esto me daría
el lente es tres. La longitud es de tres,
y si nos fijamos en la definición de siguiente int, mira la definición de ins va en,
si nos fijamos en esto, más
o menos, esto es
más o menos estamos diciendo, Es valor entre cero inclusivo y valor especificado exclusivo. Seguro que nos darás cero, uno o dos, cero o uno o dos. Esto es más o menos lo
que necesitamos. Volvamos en este video
para probar esto. Los veo chicos en este video.
114. Pruebas Parte 5: Oigan, chicos, genial
tenerlos de vuelta. Bien, así que en
realidad hemos podido parar por compañía Entonces veamos cómo funciona.
Veamos cómo funciona. Entonces voy a seguir adelante
y traer mi estibador. Voy a traer a Docker. Y mientras traigo a Docker, voy a traer
esto, ¿verdad Voy a ejecutar
esto porque esto es básicamente lo que vamos
a estar corriendo, ¿verdad? Así que vamos a estar seguros de que nuestro
Docker se acerca o está arriba antes de que
luego mencionen esto. Bien, esto se acerca. Impresionante. Entonces esto está hecho. Entonces vamos a
estar ejecutando esto asegurarnos de que nuestra base de datos
esté funcionando, ¿verdad? Así podemos correr contra
la base de datos, Wy cool. Entonces tenemos eso. Ahora
lo siguiente que vas a hacer. Ahora la siguiente, la siguiente gran
pregunta es, ya sabes, porque esto es casi como un ambiente diferente en él, necesitamos que podamos
usar lo que tenemos aquí, lo
cual está bastante bien. Pero ahora quiero usar
otro perfil para
mostrarles a algunos de ustedes
que también podemos usar perfil en nuestra
carpeta de recursos en nuestra prueba. Voy a entrar aquí. Voy a llamar a esta
aplicación phen test punto Yamo. Estamos usando Yamo solo me
quedo con Yamo. Tenemos esto. Básicamente, esto es básicamente
solo traer los datos, traer nuestra conexión de base de datos,
conexión a base de datos. Puedes ver que aquí no tenemos ninguna conexión típica porque estamos usando
Docker componer, justo aquí, solo
voy a dejarlo caer ¿Correcto? Esta es la conexión
que vamos a estar usando chicos. Seguro que recuerdas
Servicer componer,
componer, secretos de TA, mi
usuario, luego GraphQL Y de la misma manera,
si nos fijamos en esto, tenemos usuario secreto, mi usuario, luego grafica curso QL Esto básicamente conectará. Esto es genial, chicos. Sí. Bien, así que esto
es genial, chicos. Y si tuvieras que verificar si tuvieras que verificar
las dependencias, ya ves que tenemos esta redacción
Docker Esto básicamente se salta
en las pruebas, ¿verdad? En realidad se salta en la prueba. Entonces no voy a
molestarme solo por esto
porque recuerden, final
voy a
estar llevándole esto a Cubertis y esto en
realidad no va a venir a jugar Así que vamos a continuar
una prueba de esta manera. Todo bien. Entonces esto
es bastante genial. Tenemos cosas ya
paradas. Yo está bien. Estamos probando contra este tipo. Quiero ver cómo funciona. Ahora, voy a
entrar voy a entrar, entonces vamos a correr a este tipo. Corro solo crea esto para mí. Bien. Así que mientras
está construyendo, ¿verdad? Probablemente me caí
porque tal vez no localice esto, pero solo quiero darle el
directo Vamos a darle, creo que quiero
correr todo. Bien, así que esperaba que
fallara. Yo quiero correr. No quiero ejecutar
esto de manera aislada. Quiero ejecutar la entidad treentity toda
la entidad de creación. Ahora para esta
entidad de creación, sí, para esta gran entidad,
quiero realmente colocar
una configuración. Sí, para esta gran entidad, vamos a darle un
perfil de resorte, prueba de perfil de resorte. Bien, estoy seguro de que
sabes por qué estoy haciendo esta prueba de
perfil de dioses de primavera, ¿verdad? ¿Y por qué estoy haciendo esto? Si miras esto,
si miras la
aplicación o Yama, ya
tenemos este
concepto de esto. Espero que esto
realmente llegue. Quería usar esta guía. Entonces, volvamos a ejecutar esto y
veamos cómo se desarrolla. Entonces esto está
entrando, y como puedes ver, mira esto cuidadosamente, lo
ves recogido perfil que es prueba y esto es
exactamente lo que estoy esperando. Impresionante. Como puede ver,
esto funciona con precisión. De hecho, guardo con precisión porque check in la base de datos. Desde luego no sé qué
escoge porque todo es un valor aleatorio, pero te puedo asegurar que esto funciona porque en realidad pagamos algunas sesiones aquí y puedes ver que aquí hay
una barra verde, lo que significa que esto
funciona con precisión. Estoy seguro de que ustedes
entienden lo que hice. Ejecuto toda la prueba desde aquí. Entonces entré a cambiar la configuración y mostrar
la configuración para esto está apuntando a probar
para que
realmente pudiera elegir esta configuración
en particular. Y como resultado, esto
realmente se ejecuta con éxito. Y porque no tenemos ninguna prueba entre
todos estos tipos, es por
eso que
en realidad todo pasó. Pero lo correcto
es realmente
colocar un fracaso.
Podríamos escribir una falla. Coloca una caída aquí. Coloquemos una
falla aquí, ¿verdad? Entonces esto asegura
que hasta que escribamos la prueba, esto debería fallar. Entonces voy a colocar esto, esto fallar, esto va a fallar. Ahora bien, esto es necesario
con el abordaje. Voy a dejar
esa otra. Bien, así que entremos
y escribamos esta prueba. Ahora, ya escribimos
la prueba para crear compañía, y el co acabado,
ahora tenemos todo seguro para que podamos usar
todo lo que está aquí. Entonces cuando crea, estás seguro de que
la siguiente ejecución es cre department porque
especificamos el orden Si miras esto detenidamente, cuál es mi ventana de ejecución,
puedes verlo recoger compañía, empleado de
departamento, o compañía ves
que está funcionando en el orden
exacto que necesitamos. Esa es una de las cosas
geniales o los predios de usar el orden Si no, si no
agregas el pedido, elegirá a cualquiera al azar, realidad lo
estamos sometiendo Ahora que hemos
podido hacer esto. Entonces sigamos adelante y después
escribamos la prueba para el departamento de
Kris El departamento rojo
básicamente solo sigue el mismo
ejemplo, sirve esto. La prueba HTTP Gufo. Impresionante. Verás, autocompletar un entender lo
que estoy buscando C prueba de departamento, el nombre
debe coincidir exactamente, ¿recuerdas? Variable de punto. Departamento nuevo.
Voy a quitar esto. Voy a definir
esto gracias a completar, luego dot ejecuta. Entonces el camino, recuerda que
el camino debe coincidir también. ¿Cuál es el camino? El camino que creo es crear departamento. Entonces entidad punto. La entidad es lo que recuerda la entidad para todo
para la ecuación es la creación, la
respuesta, la clase. Vamos a validar rápidamente esto
en realidad es exacto. Al ir aquí verifico
crea prueba de departamento. Solo voy a estar seguro de
elegir este Impresionante. Fresco. Entonces el
nombre de la variable es departamentos nuevos, que es nuevo, ya ves, esto pudo haber sido un error. Utilizamos nuevas deudas, que
son nuevos departamentos. Entonces usemos exactamente la
misma convención de nomenclatura, nuevas profundidades con así,
con signo de dólar Vamos a crear esto.
Entonces vayamos a la API. ¿Qué es la API? Ves
crea departamentos, crea departamento
y eso realmente coincide con lo que tenemos aquí. Todo bien. Eso es prácticamente
todo lo que tenemos que hacer. Entonces sigamos adelante
y creamos una variable. Para estas, potencialmente
tenemos dos variables, y vas
a ver al hijo Y. Pero déjame ver la
razón por qué en un poco. En primer lugar, vamos a
crear la variable. Ahora, vamos a entender. Vamos a tener una idea de lo
que realmente estamos creando. Vamos a entrar en nuestra API. Y vamos a comprobar nuestra empresa de
creación. Recuerda que esto es contra
lo que estás escribiendo. Necesitamos el nombre, número de departamento,
número de empresa C, nombre
correcto, número de departamento, nombre de
la empresa, número C, dirección. Aquí es donde vamos
a crear otra variable, luego división. Necesitamos división. Vamos
a entrar y hacer eso. En primer lugar,
vamos a tener un mapa, un mapa, una cadena, luego objetos,
lo cual es realmente genial. Yo lo llamaré variable,
mapa de, genial. Voy a decir que
vamos a tener que recordar un nombre que va
a ser el nombre de la empresa. Miembro. Entonces el siguiente paso es
qué número de departamento. Número de departamento, que es lo que trabajas contra el número de
departamento. Recuerda,
ya he ido adelante en realidad crear el número
de departamento aquí. ¿Bien? Impresionante. El
siguiente paso, número RC. El número RC ya está disponible
para nosotros. Ya creamos. Entonces tenemos división, división. División seguirá el ejemplo que ya hicimos para tipo
de negocio. Entonces para ser de la misma manera,
división división aquí, luego los valores,
entonces en realidad
luego colocamos aquí
el código falso Entonces, básicamente,
no necesitamos un nombre. Entonces esto es básicamente
lo que necesitamos, ¿verdad? Entonces tenemos lo aleatorio nos
dará la lente máxima, nos dará cero a lo que sea que sea
la lente máxima, la longitud máxima es inclusiva Entonces finalmente, tenemos dirección. Bien, entonces esta dirección, voy a llamarla dirección. Ahora bien, ¿de dónde viene esta
dirección? Vamos a averiguarlo en
el siguiente video.
115. Pruebas Parte 6: Oigan, chicos, genial
tenerlos de vuelta. Hemos sido capaces de crear
realmente la variable que vamos a necesitar. Para esto, sólo
voy a
colocarme aquí. Variable Impresionante. Entonces tener un símbolo.
Entonces entremos. Crea nuestra dirección.
Recuerda que nuestra dirección también
es una imputa que
es muy necesaria, que también será una cadena de
mapas de objetos Voy a colocar esto aquí.
Simplemente llame a esta dirección. Entonces solo cubro esto Bien. Bien, así que veamos
cómo se define nuestra dirección. Vayamos al departamento.
Vamos a revisar la variable. Entonces la dirección tiene ID de entidad, calles, ciudad, estado,
luego código postal. Bien, así que
hagámoslo rápidamente. Hagámoslo. Entonces vamos a tener así que
vamos a tener ID de entidad. Cuál es el ID de entidad, quiero decir, ID de
entidad,
lo adivinaste número de departamento ¿No tengo las calles? Estas calles las podemos sacar de calle porque vamos
a estar usando esto mucho. Entonces ciudad también estar recibiendo
de ciudad luego código postal. Código postal del que
venimos de entero porque
nos va a dar una cadena que está pasando. Vamos a pasar en código postal. Vamos a crear rápidamente
este detalle extra. Creo que nos falta
una cosa dice. Estados es muy importante. Estados, derecho. Bastante tenemos
todo lo que necesitamos aquí. Vamos a entrar aquí
y luego crearlo. Vamos a tener por aquí, ya
tenemos esto, así que
vamos a crear tipo de datos. Voy a tener estados
estáticos, genial. Después código postal estático. Código postal. Después estática. No, no necesito espuma. Calles. Entonces creo que esa es la ciudad. Ciudad estática. Solo
arreglemos esto un poco. Lugares aquí calles sólo
para el mismo modelo. Calles, donde estas calles ciudad estados calles
ciudad estados, luego código postal. Se trata de chicos bastante chulos. Ahora tenemos este loteado.
Estamos bien para probar. Entonces, finalmente, vamos a
instanciarlo por aquí. No tienes calles, va a FACA, las calles ahora, quiero que sea nombre de
calle. Nombre de la calle. Impresionante. Entonces tenemos la
dirección de ciudad ciudad? Esto está bien. Entonces tenemos estados. Dirección estados, cool. Entonces tenemos el código postal. Dirección de código postal, increíble. Verás, tenemos
todo lo que necesitamos. Esto es bastante genial. Vamos a
extraer esto en una variable. Comandamos este Control V. Control o comando
para aquellos que usan Mark. Tenemos vamos a hacer algunas pruebas. Hagamos algunas
pruebas en contra de esto. Primero voy a
iniciar sesión. Entonces voy a ejecutar algunas accesiones
desde el activo J. Entity no es nulo,
lo cual es bastante genial Entonces activos Digamos,
esto también es bastante genial. Que este contenido
codicia con éxito. Entonces también, engañemos finalmente, hagamos una adhesión. El patrimonio que
no, no quiero. Voy a decir que va a
tener éxito es verdad. Todo bien. Entonces esto
es bastante genial. Esto es bastante genial. Yo sólo voy a seguir adelante y
sólo ejecutar las pruebas de sabor. Ellos solo manejan esto.
Sospecho que quiere pagar por fallar
entre ellos? Todo esto fallan. Este fracaso viene de donde
de la adhesión. Como no
tienes nada
deberías fallar, es bastante genial. Bien, vamos a ejecutar esto
y esperar que pase. Todo bien. Eso se está ejecutando, y veamos nuestra
prueba en acción. Bien. Esto es edificio, muestran
que los perfiles prueban para
confirmar la prueba profiilst Esto pasó, pero el departamento de
Chris no pasó porque
parece haber un problema aquí. Porque las palmaditas que colocamos no coinciden con lo que
estamos buscando. Vamos a confirmar. Departamento este es
cred departamento aquí, esto es crea departamentos,
crea departamento ¿Qué especificé aquí? Veamos esto. Esta prueba de departamento de
cred, crea departamentos
que está bien. Canta nuevas deudas aquí,
nueva profundidad está bien. Entonces, ¿cuál es el problema
aquí? Vamos a confirmar. Veamos los estados de error nos dice variable nueva profundidad
tiene un valor no válido. Empresa de campo nombra a Ceres null. No nulo. Tiene que ser no nulo. El nombre de la empresa está
hablando de este nombre de compañía. Confirmemos esto. Esta empresa nombra el nombre de la empresa como
conull vamos antes que nada, confirmar lo que se llama
el nombre de la empresa Voy a entrar aquí,
revisar mi departamento. Se llama nombre de la compañía, nombre la compañía Este nombre
exacto de la compañía porque deben
coincidir con precisión. Nombre Creo que veo el error. Nombre de la empresa. Veo la flecha. Veo el error
que se supone que hay que llamar. Tenemos departamentos,
tenemos nombre para departamentos y
tenemos nombre de empresa. Veo el error.
Veo el error. Hay dos cosas que nos
perdimos . Este va a ser el nombre. Es el nombre del departamento, y se supone que este es
el que se supone que
tiene otro, que es el nombre de la compañía. Este es el error aquí.
Este es el error. Bien. Creo que esto es bastante genial. Ahora bien, ¿qué
colocas como nombre? El recurso humano es
solo un nombre aleatorio. Sólo voy a
usar un pastel Faker. Dejémoslo como nombre de la compañía solo probablemente llámalo
nombre del departamento, nombre del departamento. ¿Podemos conseguir algo por
departamento en Faker? Vamos a
probarlo. A ver si podemos conseguir algo
por nombre de departamento. Sólo voy a
entrar ahí y llamarlo cosa
estática Nombre del Departamento. ¿Podemos conseguir algo
por departamento en Faker? Vamos a probarlo. No lo he intentado antes.
Probablemente sea capaz de conseguir algo genial.
Pero llámalo Faker Empresa Dots, Dots, ¿tenemos
algo como departamentos? No. Entonces déjame ver si puedo
ver departamentos Departamentos. Comercio. Tenemos
comercio, departamentos? Fresco. Entonces Departamento
vamos a revisar cadena? Sí, es una cuerda. Esto funciona. Esto fueron chicos volvamos a
hacer la prueba. Entonces supongo que esa fue la flecha. En realidad nos equivocamos. No usamos el nombre y también
esperamos el nombre de la compañía, esperamos que esto pase y ojalá no
haya otro error. Bien, entonces esto está
corriendo. Impresionante. Como se puede ver, la compañía Quade pasa, la roja del Departamento pasa De hecho, hemos podido
escribirlo con éxito, y los otros tres fallaron como se esperaba porque
lo colocamos aún no falló. Bien, con esto, los veo
chicos en el siguiente video.
116. Pruebas Parte 7: Oigan, chicos, genial
tenerlos de vuelta. Bien, así que vamos a
dar esto paso a paso. De hecho, hemos podido seguir su ejemplo, todo lo que hemos
estado haciendo hasta ahora. Y esto ha funcionado
muy bien, ¿verdad? Así que hemos podido
crear un departamento, y ahora nosotros departamento
creamos compañía antes, cortamos el departamento ahora. Ahora pasemos a la compañía. Pasemos a empleado. Quise decir, pasemos a empleado. Entonces tu empleado simplemente
seguirá el mismo estándar, y esperamos que las cosas
realmente vengan ahora, el empleado es realmente,
realmente va a ser una fuerza laboral, ¿verdad? Entonces, ¿qué voy a hacer bien? Porque estoy seguro de que
alguien dice, ¿por qué no
puedes
simplemente deslizar esto rápidamente? Algunas personas solo
van a hacer eso, traer todo adentro, entonces podemos probar. Comparamos todo lo que
hemos hecho, entonces en realidad probamos esto. Pausa este video
y amplia esto. Todo bien. Esto es básicamente en. Ahora tengo todo
traído. Código postal, necesitas un código postal, luego la identificación del empleado. Vamos a
recoger rápidamente la identificación del empleado, y voy a entrar aquí. Al parecer, vamos
a crear una identificación de empleado. ID de empleado, necesitamos realmente
crear una instancia de
nuestro ID de empleado Sólo voy a instanciarlo a continuación. ¿Debería ser ID de empleado? No, no, no, no, no, no
quiero esto. Quiero número de identificación FACA. Número de identificación, puntos válidos. Sí. Entonces esto me va
a dar una identificación, y va a ser una
cadena, creo, ¿verdad? Sí, una cuerda. Entonces tenemos
eso, y esto es traído. Entonces tenemos que comparar esto ahora, recuerden,
vamos a tener que hacerlo. Al parecer, ya tenemos esto aquí.
Tenemos la dirección. Seguro que esperas que yo tenga la dirección, ¿verdad? Y al mismo tiempo,
también, tenemos esto. Ahora bien, la pregunta
que debo hacer es, ¿por qué no estoy usando MACO aquí? Ahora bien, esto no lo he visto en
documentación escrita, ¿verdad? Pero cuando usas map off, no
creo que puedas
ir más allá de ocho valores. Esto es uno, dos, tres, cuatro, cinco, seis, siete, ocho,
nueve, diez, 11, dos. Entonces más que esto,
dos, cuatro, dos, cuatro, seis, siete, ocho, nueve, diez, 11, 12. Para que te puedas ir. Entonces en el momento en que vayas más allá de las ocho y lo
pruebes fallará. Entonces el mapa de puede tomar
sólo un máximo de ocho. A pesar de que he intentado
verificar si hay algo que tenga que
hablar de eso, ¿verdad? No
veo
nada más de qué hablar. Creo que se necesita un máximo de 81 que he intentado revisar. No puedo ver nada mientras prácticamente
estaba esperando. Entonces solo tenlo en
cuenta, se necesitan cinco, y es por eso que ves que
en realidad estoy usando un mapa hash. Bien. Así que con este conjunto, hemos podido probar esto de
hecho. Esto funciona. Nosotros probamos departamento, así que vamos a ver cómo es esto. Esto coincide con precisión. Tienes todo lo
que necesitamos aquí. Comparemos esto.
Comparemos esto. Tenemos que estar seguros de
que todo en cambio, ¿cómo comparamos esto? Rápidamente voy con mi empleado,
el gran empleado, metí esto, entonces
decidimos bien esto es muy clave para que podamos evitar
cualquier error. Comparemos. Necesitamos un nombre, código de datos apuesta
que coincide, partidos de género, partidos de
salario, él
coincide, partidos telefónicos. Codificaciones telefónicas, nombre de la empresa, identificación del
empleado, el
número de la fiesta, correo electrónico, rol, dirección. Ahora bien, esto coincide con precisión. Ahora bien, si nos fijamos en el papel, estoy haciendo lo mismo por
el papel que he hecho para tipo de
negocio y la división,
lo cual es bastante genial. El
número de departamento de identificación del empleado coincide con lo que creamos anteriormente para
la empresa y los departamentos. Entonces si miras las coincidencias del nombre de
la compañía, teléfono y usando el
número de teléfono, lo cual está bien. La edad prácticamente
sería el año. Mira las fechas de
nacimiento. Por eso tengo fecha de Bth año Coloco en las fechas de Bth faca fechas de Bt Mate
de muerte, fechas locales Al parecer, podrías
obtener un bit de datos 20-30, lo cual es bastante genial, ¿
verdad? Para FACA Entonces me sale el bit de datos. Ahora estoy colocando el bit de datos a cadena aquí, y eso es
lo que tengo aquí. Entonces por aquí, estoy diciendo que el año ahora menos datos apuestan
a darme la edad, ¿verdad? Ahora bien, este valor aleatorio, estoy colocando este
valor aleatorio, más bien doble aleatorio, para darme un decimal máximo de
dos ya está dentro de aquí, un mínimo de 50,000, un máximo de 80,000 Seguro que sabes que
esto va a fallar, ¿
verdad? Esto va a fallar. Y la razón por la que va
a fallar es porque cuando
creas un nuevo empleado, recuerda, establecemos una regla y
la regla es empleado como pasante solo debe ganar
30,000. Voy a colocar. Voy a colocar
esto como si
miraras esto, esto
potencialmente fallará. Si el papel el papel
que estamos consiguiendo aquí
no es si este rol que estamos consiguiendo es interno,
va a caer Probablemente solo escribamos otra lógica solo para asegurarnos de
que esto no sea papel. Entonces, ¿cómo podemos especificar? Recuerda,
veamos el papel. Pasante es lo primero.
Entonces vamos a hacer para que
eso no falle. Voy a colocar esto esto
va a ser de cero. Recuerda, puedes usar
ness Puede tomar una media. Vamos a colocar uno aquí. Voy a colocar max
aquí. Esto no va a fallar. Pero para asegurarnos de que
no escogemos valor cero. Si miras esto, nosotros
miramos la definición, mira la definición,
vamos a ir a estas partes. Al parecer, esto es mínimo, el mínimo, entonces
el mínimo más uno debería funcionar, yo debería trabajar. Asegurémonos que esto no falle. Ahora bien, vamos a validar
esto, esto y esto. Entremos. Así que deja de trabajar, voy a llevar
esto a la derecha. Creo que esto fuera. Así que
corta las pruebas de los empleados. Sí, esto es exacto.
Nuevo empleado. Sí, esto es exacto. Voy a quitar el signo del
dólar. Sí. Entonces el PAT se llama Crear
empleado. Vamos a estar seguros. El PAT se llama
crea empleado, ¿verdad? Esto tiene que ser
exacto, ¿verdad? Estoy esperando que alguien
diga preguntar por pregunta. ¿Por qué usas DGs constante? Vamos, usas DGS constante. Eso también funciona aquí chicos. Se utiliza dgs constante. Es preferencia solo quiero
mostrar que hay
variaciones para hacer esto. Ella prácticamente usa DGs constantes aquí y
esto no fallará Básicamente, podrías hacer
una mutación constante de DGs crear algo y esto básicamente
funcionará Ella no obtuvo ningún
error con esto. Solo estoy siendo flexible
solo para tener todo adentro. No es necesario que solo use
string solo use la constante DGS. Voy a seguir adelante para
hacer lo mismo para asegurar que esto
realmente funcione. Sigamos adelante y
ejecutemos todas nuestras pruebas. Derecho para empleado si
todo se hace correctamente, nada debe fallar.
Vamos a ejecutar esto. Esto se acerca. Sí.
Confirma nuestro perfil. Sí, nuestro perfil es prueba. Hemos confirmado que esto es prueba
de perfil, esto se está ejecutando. Esto es increíble, increíble. Como puedes ver, la compañía es buena, departamento es bueno, el
empleado es bueno. Como te veré en
el siguiente video.
117. Pruebas Parte 8: Oigan, chicos, genial
tenerlos de vuelta. ¿Todo bien? Así que pudimos completar
realmente
para la cuestión de las pruebas de los
empleados, ¿verdad? Tuve que explicar a través porque aparte de
escribir uno por uno, tuve que explicar a
través de todo lo que
he hecho en el empleado. Entonces eres capaz de anotar.
¿Recuerdas lo que dije sobre esto? No podemos usar Map off
porque solo toma máximo de ocho valores.
Tuve que mencionar esto. Esto es para la dirección, y realidad
somos capaces de
cablear las cosas. Mencioné que también podrías
DGs constante aquí, ¿verdad? Ahora, alguien podría decir,
no me gusta usar cadena. Sí, probablemente cortaste
la clase de YouTube. O una interfaz y pone
en todas estas variables, poner en todas estas variables. Recuerdo que todas estas variables están disponibles en constantes de excavaciones Es necesario que realmente lo
sepas. Si vas aquí,
puedo cambiar esto a constantes
DGS, mutación de puntos,
cretmee dejar de empleado imputa
temployee imputa, puntos empleado temployee No esto, deberíamos
tener las imputas. Veamos ahora.
Creo que vamos a estar seguros. Te da creo que hay
una manera de escoger el argumento? Déjame probar el argumento, ¿verdad? Este es empleado de fuente. Esto es una cadena. Entonces hay una manera de escoger todos
los detalles, ¿verdad? Estoy seguro que lo estoy recogiendo seguro que lo
estoy recogiendo correctamente. Esto es crear empresa, crear partartner, no es
lo que necesito No es lo que
necesito. Empleado. Entonces sé que puedes recoger
así que probablemente podríamos explorar DGS constante Quiero mostrarte
que está disponible. Comprobemos la constante de DGS. Así cava constante. Entonces, si vas, eh, esto
es lo que estaba buscando. Puedes ver que tienes
todos estos nombres, todo está
escrito para ti. Se podría entrar en la
constante DGS
para evitar errores tipográficos Entonces esto es
chicos bastante geniales. También lo puedes conseguir. Entonces vayamos a
Busco crear empleado. Puedes ver que tenemos un empleado DTO y podríamos usar todo esto,
todo este nombre de empresa y
esto básicamente funciona Es lo que estamos buscando. El concepto de
empleados de empleados son los mismos. Su fuente DTO también
está disponible. Yo sólo quería mostrar
esto. Para la mutación también Este soy yo explorando constantes
DGs Esto es
parte, que está bien Sólo vamos a pasar.
Déjame ir a través de ti al empleado imputa
empleado imputa Su llamada DGS constante
empleado impute es básicamente lo que
buscaba Imput empleado. De hecho
, podría usar esto. Esto también básicamente
funciona, empleado Impute. Bajemos también, actualizaciones de
empleados, imputa búsqueda de
empleados Sólo digo que también
podrías usar excavaciones constantes y esto
funciona con precisión, y este es el camino
que voy a usar Peri Aquí dentro, pero
solo decimos que cava esto, entonces me voy a
quitar a este tipo. Veamos ahora, cono. Esto funciona. Esto funciona. En la siguiente parte, solo
vas a explorar usando constante de
DGS t para que
puedas ver cómo funciona Quiero salvaros chicos es
solo un semi tipo blanco. Entonces para el último,
voy a escribir porque para que
no me vuelva demasiado flojo, solo
voy a pausar este
video, traigo esto. Impresionante. Yo traje esto. Podrías simplemente
confirmar físicamente lo que hice. Aquí hice algo bastante único. Vamos a confirmarlo. Entonces antes que nada, estoy usando la prueba
fetch all company. Tu nombre coincide. Recuerda
que no toma ningún param. Entonces por eso no estás
viendo ninguna variable, ¿verdad? O cualquier otra cosa o
cualquier tipo de gráfico básico. Entonces esto es esto, entonces estoy usando esta compañía
fetch Al parecer, voy a estar
recibiendo la clase de compañía, ¿
verdad? Clase de empresa. Ahora, mira lo que hice. Yo aseveré que no
es nulo, ¿verdad? Afirmé que el tamaño
es más getter que tres. Recuerda que he creado
más de tres, así que estoy afirmando su
geter que Por eso me encanta Asset J porque te da
más flexibilidad. Entonces estoy diciendo afirma que esta compañía o la
compañía por la que estoy transmitiendo, me sale el nombre de la compañía para enumerar y obteniendo como lista Estoy comprobando que al menos
contiene el nombre de la
empresa que acabamos de crear. Esto también es una buena aseveración. No pienses que la prueba solo
contiene algunos valores rígidos. Podrías escribir código
completo en prueba. Quiero decir, código completo, muy
dinámico y por eso me
podrías ver usando
cadenas aquí. Con esto para, vamos a ejecutar
esto, vamos a ejecutar esto. Veamos cómo se desarrolla. Estamos manejando esto
y esto está corriendo. Puedo ver la línea roja. ¿En algún lugar? Bien, bien, creo que se queda.
Bien, eso creo. Esto está bien. Así que vamos ejecutar esto y
veamos cómo se desarrolla. Impresionante. Como puedes ver, esto básicamente funciona.
Entonces esto funciona. Y te habrás dado cuenta de que
no usé la parte normal. En realidad estoy usando la constante de
DGs, ¿verdad? Por lo que es una buena manera de usar
también la constante DGS. Entonces, para la prueba final, entremos rápidamente y
escribamos, ¿verdad? Quiero decir, chicos, me estoy volviendo
muy perezoso, ¿verdad? Yo solo probablemente quiera. Entonces probablemente tengo este
escrito en alguna parte, así
como los otros. Pero es genial
escribir también las cosas, ¿de acuerdo? Entonces usemos este
perro Graph Kyo Testa, HCP más bien o HSP
Graph ¿Esto es lo que buscas? Oh, increíble. Impresionante.
Déjeme mostrar. Nombre del documento. El nombre del documento es empleado con esta búsqueda. ¿Lo conseguiste? Oh, esto
es lo que estaba buscando. Bueno, gracias por completar. Lo intentamos, ¿verdad? Entonces uno es un lindo,
¿cuál es el camino? Los caminos básicamente son las
partes que estás buscando
¿ los caminos revisan los caminos? Creo que vamos
a estar necesitando una variable, vamos a confirmar. Oh, sí. Recuerda
que necesitamos una variable. El nombre de la variable es ID, ID. Tengámoslo en mente porque vamos a estar
necesitando la variable ID. Ahora como es sólo
una sola variable, no
necesito escribir
algo mucho. A decir que sólo voy
a entrar ahí. Voy a decir
que eso es variable. Variable y
la variable está en ID. Vamos a comprobarlo una
vez más, ID, solo ID, $30. ID, voy a colocar en investigación de identificación de
empleado con el ID de empleado.
Esto es bastante genial. Ahora que tengo eso en
y puedo ejecutar y la parte es dGs constante, consulta Empleado punto, empleado
con búsqueda de empresa. Este soy yo en excavaciones
constantes otra vez. Entonces, ¿qué estoy esperando? Estoy esperando una lista de entidades. Verás, podrías
obtener una lista de entidades, la entidad es la clase
que estoy esperando está presionando, entidad buscar punto PLS,
Vamos a validar eso. Vamos a validar.
Vamos a entrar rápidamente. Voy a entrar aquí. Me
empleado con búsqueda de empresa, empleado con búsqueda de empresa. Empleado con
búsqueda de empresa. Vamos a confirmar. ¿Está aquí? O es en
común. Comprobemos en común. Empleado con Búsqueda de
Empresa, Ar? Y lo que
esperas es una lista. Se ve una lista de búsqueda de persona
y entidad. Y eso es exactamente lo que
estoy haciendo aquí, ¿verdad? Entonces tenemos una lista y aún
lista de darnos esto. Así que vamos a extraer esto
en una variable. Todo bien. Entonces esta chica, sólo
voy a llamar a esta lista
de búsqueda. Lista de búsqueda. Bien. Todo bien. Entonces con esto, vamos a hacer algunas
aseveraciones y lo vamos a hacer en el siguiente video
118. Pruebas Parte 9: Oigan, chicos, es bueno
tenerlos de vuelta, ¿verdad? Entonces lo que vamos a
estar haciendo en este video, es completar lo que
iniciamos para el empleado Con búsqueda de
empresa. Entonces, rápidamente sigamos
adelante y terminemos. Así que hemos podido extraer esto
a menos que hagamos alguna afirmación. Si la primera aseveración que
quiero hacer son aseveraciones, asegúrate de que la lista
no sea nula, lo cual es genial También haz otra aseveración. También acepta que la lista de búsqueda tal conjunto que esta
lista de búsqueda puntea primero los puntos. Así que solo estoy tratando de ser
creativo aquí, ¿verdad? Es camada de lo que trabajamos pero
esta algo más. Digamos que este punto consigue
primero, ¿verdad? Obtener primero. Entonces digamos
instancia de instancia
de cualquier compañía DTO compañía
DTO clase Debería ser bastante genial, ¿verdad? Porque demostramos eso primero
que primero lo comprobamos. Conseguir al empleado la
primera búsqueda de empleados. Al decir esta búsqueda de
empleados, quieres estar
seguro de que instancia
en instancia de cualquier
empresa DTO plus,
derecho, en cualquiera puede tomar múltiples, ya sea empresa o
empleado DTO Entonces solo quiero
ser más flexible. Así que recuerda la persona busca,
la persona empresa, derecho, la persona entidad búsqueda nos
dará ya sea empleado o empleado o empleado
DT o empresa DTO Entonces eso es lo que sólo estoy haciendo. Sólo estoy validando
contra ambos. Entonces uno de ellos debe ser en realidad
debe corresponder. Entonces esa es una buena manera de hacerlo. Entonces otra cosa
que vamos a hacer, voy a decir persona o voy a decir lista de búsqueda,
lista de búsqueda, ¿verdad? Dos Get fest. ¿Bien? Ahora bien, esta
ocurrencia sola. Ahora, en lugar de hacer una lista de personas, la
voy a emitir. Vamos a echarlo a un empleado. Empleado DTO, puede ser
muy flexible con él. Eso solo lo
hace interesante. Entonces los DTO empleados
llaman a este empleado DTO. Probablemente
solo haré un registro. Esto está bien. Seguro que no es no. Creo que ya lo
hemos
afirmado al principio Acabo de registrar este Registrar ese empleado DTO a
cadena, lo cual está bien Le damos un matin muy agradable. Voy a decir esto aquí, voy a decir empleado
DTO entonces tengo esto Eso está bien. Si puedes
hacer una validación extra. Si estás seguro de que estamos
recibiendo un detalle de empleado, entonces puedo afirmar que
el empleado punto obtenga identificación Obtener el ID de empleado es igual. Aquí le falta una coma. Escúchalo com. Recuerda, estoy seguro de que el empleado que entra
debe ser igual a esto. Este ID de empleado es igual
a este ID de empleado. Esa es una muy buena validación. Podría decir que el
nombre de la empresa es igual al nombre de la empresa. Esa también es otra buena
validación que tenemos aquí. Entonces podría decir número de
departamento, obtener número de departamento, es
igual al número de departamento. Estamos seguros de que este
empleado que somos capaces obtener la creación la
empresa, el departamento,
el empleado que obtuvimos ID de
empleado están validando eso, bien cuando establecemos
con el empleado, pero seguro que coincidirá con la compañía
también coinciden con el departamento Esta es una prueba bastante genial. Ejecutemos esto y asegurémonos de que todo
funcione con precisión. Entonces en realidad se está desacelerando a través de la prueba de la ciudad
corriendo, vamos a validar Hemos podido validar
nuestro perfil esta prueba, lo cual es increíble
y nuestra base de datos está aciada correctamente, y
esto está funcionando. ¡Ay! Ahora nos encontramos con un error. Estoy seguro que probablemente
sabrías por qué este error porque esto está creando De aquí es de donde vendrá el
error. Estás obteniendo un
índice fuera de límites, Ids fuera de límite
porque estás usando un aleatorio, estás usando un aleatorio Volvamos a hacer lo mismo
. Te sorprenderá si volvemos a ejecutar esto esta obra. Volvamos a ejecutarlo. Esto se está ejecutando. Todo bien. Ella está corriendo. Puedo ver que
todo esto fue con precisión. Eso es parte de lo aleatorio. Podría ser más esteretype
en realidad hacer que tenga un número que
probablemente sea genial que
no cambiaría y asegúrate de que tu prueba no
engordará en esa zona Todo bien. Poder cubrir esto, lo cual
es realmente genial. Entonces tenemos una qui más
para correr para la paginación. Vamos a entrar
rápidamente y solo crear algunos pedacitos de paginación Ahora bien, esto implicará
otro poco de mecanografía, que creo que ustedes
podrían estar cansados del video de cónyuges y traer esto. Todo bien. He ido a traer esto. Recuerda una paginación. Yo solo traigo esto
con una paginación. Una paginación tiene este concepto
de autoimputa empleado. Voy a llevar esto a un lado. Entonces vamos a machacarlo lo que
tenemos. Mírelo. Estamos usando fechas
de nacimiento, ange, este ange, el género, escogiendo un género, varón, forma salayt
luego H comienza,
H fin, rol debe ser pasante Entonces en realidad estoy
revisando usando la prueba de paginación. Asegurémonos de que coincida, prueba de
paginación. Es partidos. Entonces si revisas
a través de las entradas, tenemos entradas página y
tamaño. Esto también debe coincidir. Imputar página y tamaño, esas son las variables, ¿verdad? Estas son las
variables que ves,
en realidad estoy agregando variables. Nota, podrías
colocar todo como uno si usas variables, ¿verdad? Podrías usar variables y simplemente pasar un mapa en pasar esto
en un mapa y pasarlo, ¿
verdad? Esa es otra opción. No creo que lo haya
intentado antes. Entonces estoy diciendo
dame la página uno y el tamaño de esta y la
parte es paginación de empleados Recuerda, esta es una
constante de excavaciones que
podrías usar aquí, que es la paginación de empleados,
si la miras, la paginación de
empleados ¿Puedo simplemente hacer esto bien? Entonces estoy usando una
combinación de todos, así que en realidad se podía ver
que esto también funciona. Así que sólo podría hacer esto. Estoy esperando la paginación de
los empleados. ¿Eso es lo que estamos esperando? Oh, sí, paginación de empleados. Y cuando eso vuelva,
¿qué estamos esperando? Iniciar sesión, me estoy asegurando que no es. Estoy asegurando que la
página de la página es una, estoy demostrando que
el tamaño es cinco Bien, vamos a ejecutar esto
y ver cómo se desarrolla. Recuerda que este
potencialmente también falla. Entonces lo que haría es que
voy a ejecutar esto, ¿verdad? Ejecuta esto. Ahora bien, esto
se ha llevado a cabo con éxito. Voy a detenerlo. Entonces
pararé esto, luego entraré y me pondré D. Me
aseguraré de que esto
también esté funcionando con lo
mismo que esto se está
ejecutando en prueba de perfil. Esta muy chulo. Todo bien. Entonces ahora tenemos eso. Ahora tal vez te preguntes ¿por qué no
lo aplico a todo? Bueno, descubro que puedes
aplicarlo a tu práctica. No tienes forma de postularte, así que tienes que postularte a todas las
clases. Entonces aplícalo aquí. Entonces tengo esto aquí, Bien. Así que vamos a ejecutar esto y
veamos cómo funciona. Entonces me voy a convertir en
un giro hepático, y voy a ejecutar todo
al mismo tiempo. Bien así que vamos a
ejecutar todo
al mismo tiempo y ver si
todo pasa con precisión. Entonces así esto se está postulando para la instigación,
creo que me perdí algo ¿Qué me perdí qué? Está buscando esto. Yo sólo voy a ejecutar esto uno por uno entonces. Esperaba
elegir esto. No sé por qué en realidad está
renunciando a ese error. Vamos a ejecutar esto de nuevo porque no puedo encontrar
el perfil aquí, no
puedo encontrar el perfil aquí. ¿Puedo hacer una definición de carrera aquí? Esto sería genial.
Lo que voy a hacer todas estas carreras con éxito,
vamos a ejecutar esto también. Vamos a correr un éxito porque estoy buscando el
perfil aquí, ¿verdad? Entonces lo que voy a hacer, veamos si puedo
establecer el perfil. Pero vamos a asegurarnos de que esto
funcione perfectamente primero, ¿verdad? Impresionante. Para que
puedas ver este pasado con éxito. Entonces
esto realmente funciona. Entonces voy a hacer vamos a ver
si puedo hacer un Run debug. ¿Puedo hacer una modificación? ¿Puedo modificar la configuración
redonda? Interesante. Parece que en realidad puedo modificar
todo en esta parte. Pero esto es decir que todo en
esto se está postulando en contra? Quiero que corra
contra mi prueba. Corre contra mis pruebas.
¿A qué te enfrentas? Veamos qué
quieres adivinar. Vamos a estar seguros. Bien,
esto es genial. Creo que
básicamente puedes agregar aquí. Solo pon el
medio ambiente y creo que en realidad
encajará para todos. Bien, algo que
podrías probar por tu cuenta, al
menos has podido
validar realmente que todo
funciona como debería, y esto nos lleva al
final de las pruebas en GAF Q. Los veré chicos
en el siguiente video
119. Seguridad en Graphql, parte 1: Oigan, chicos, genial
tenerlos de vuelta. Todo bien. En este video, vamos a estar hablando de
seguridad, ¿no? Este es un ejemplo en lo que nos estamos
enfocando en este video. Estamos hablando de seguridad, y de hecho me he tomado el placer de seguir adelante para poner en
marcha un servidor de
autorización de primavera. Yo sólo te lo mostraré. Si vas a iniciar
descendencia punto IO, Spring en realidad tiene su
propio servidor de autorización, que es el cumplimiento de Oto. Si estás familiarizado con A
dos, tenemos varias subvenciones. Tenemos el código de autorización. Tenemos el código de autorización, PKCE, tenemos las credenciales del
cliente Tenemos la
concesión de contraseña la cual se ha dplicado o
ya no es compatible, pero aún puedes obtenerla, también
podrías crear
una Que decides usar, ¿verdad? Este es un servidor de autoación
002 completamente empaquetado, que Spring
realmente ha creado En este video, en
realidad voy a mostrarte lo que
realmente se me ha ocurrido. Con el propósito de probar
nuestra aplicación gráfica QL, he seguido adelante para iniciar el servidor de autoación de
primavera Esto es si vas
al archivo de la bomba, verás que acabo de tener esto. Ahora volví a mencionar un par de videos cuando empiezas
a ver cosas como esta, significa que cantas vulnerabilidad. Todo lo que solo necesitas
hacer es
actualizar la última versión. Creo que la última versión a partir
de ahora es 34 punto cero, Ar? Entonces estoy seguro de que en realidad
lo actualizas a tres o cuatro do cero. Básicamente, no espero que
nada se rompa, ¿verdad? Entonces, si realmente haces esto
y realmente nos refrescamos, creo que las cosas deberían
fluir solo adentro. Bien. Entonces si
miras esto también, también
estoy usando Java 22 aquí. Yo solo quiero que
todo
pase bien y
se puedan ver los errores que van. Realmente no importa porque esto no es una
parte importante del proyecto, es solo un servidor de aation con el que
hablaremos Ahora bien, ¿por qué hice esta ruta? Ahora bien, en el mundo actual
o en los sistemas actuales, la mayoría de las veces la mayoría de los sistemas están
autorizando con OO dos, y sé que hay el
último que es la clave de paso Pero centrémonos
en esto. En lo que nos estamos enfocando es solo en el servidor
OO de dos estaciones. Todo lo que
me preocupa es usar credencial de
cliente. ¿Por qué
es esta queja? Bien, esto ha quedado en desuso. Estos han sido
retratados. Creo que probablemente
habrá otra opción. Lo genial es que cuando
realmente ves cosas como esta, solo descarga fuentes, en realidad
obtendrías información extra sobre qué usar. Ya que esto ha sido
usar la seguridad HTTP con como para usar la
seguridad HB con esto, entonces le pasa a su
personalizador interesante Interesante. Es algo que voy a explorar más adelante. Yo sólo para mostrarte
cómo simplemente eliminar eso. Solo volvamos
a donde estábamos. Seguro que sabrás que esto
seguirá funcionando como debería. Bien, así que vamos a
saltar de inmediato. Vamos a saltar a
la derecha. Bien. Entonces esto es básicamente muy, muy simple. Sólo voy a tratar de
explicar a través de él, ¿verdad? Entonces tenemos el concepto de
traer un detalle por defecto, entonces esto es solo especificar
los puntos de entrada, que es un punto de inicio de sesión, ¿verdad? Esto también personalizable. Entonces también tenemos aquí,
usando el formulario de inicio de sesión firme login, y diremos, Bien, queremos autenticar cada solicitud Cada misión debe
ser autenticada. Solo estamos permitiendo este inicio de sesión. Solo este inicio de sesión solo este
registro en UR debe ser expuesto. Porque para
pensarlo en un inicio de sesión, la página de inicio de sesión no debe estar protegida. De eso es de
lo que está hablando. Entonces tenemos un concepto
de servicio de detalle de usuario. Si estás familiarizado
con la primavera,
sabrías sobre el servicio de detalle
del usuario. Ahora bien, todos estos se habían codificado
dentro de la aplicación, lo que hubiera pasado
es que habrías creado un
servicio de detalle de usuario personalizado que estará hablando con base de datos dentro de estas
credenciales en la base de datos. Yo sólo quiero que sea
lo más simple posible. Ves que lo que inicias sesión
usuario no es contraseña tal como es, y estas son las autoridades. Ahora, ensartar el concepto de
reglas y pernisión ahora básicamente
me estoy aprovechando del aspecto de las autoridades
donde tenemos esto Ahora, antes de explicar este
concepto, rápidamente salta hacia abajo. Como puede ver, cuando
en realidad estoy personalizando el token, personalizar el token, en realidad podría
agregar
varias cosas al Solo estoy agregando el nombre de usuario, el nombre de usuario al token. Si está disponible,
entonces por aquí, revisaré el tipo de arma como mencioné,
o el tipo de arma. Voy a comprobar si se trata de
credenciales de cliente, usamos. Poner a
disposición la autoridad en el token. Por defecto, la autoridad no
es pastor, ¿verdad? A pesar de que lo haces para
todos los demás tipos de armas, realmente
eres capaz de
agregar esto para contar, pero si es código cl,
no lo agrega, ¿verdad? Entonces hay que
elaborar una lógica para agregarla. Entonces ahora es la razón por la que en
realidad tengo esto entrando aquí. Todo bien. Así que
volvamos a la cima. Codificador de Paso, no es
recomendable utilizar este. Esto es esto sólo
para fines de prueba. Actualmente está en desuso y
va a ser eliminado pronto, pero para nuestro sencillo
post es simplemente esencial Sólo podemos usar esto. Ahora bien, si vas a entrar en él, solo revisas rápidamente, solo comparando el paquete que
pasas y el paquete
que está disponible. Los pars que se configura
que habíamos codificado aquí, los pars que
habíamos codificado aquí es solo compararlo Es solo comparar lo que en realidad
trajimos. Si volvemos de esta manera
es hacer la comparación. Pensé que eso en realidad
demuestra eso. Bastante genial. Entonces con eso, lo
que lo recomendado es usar probablemente Bcrypt
o más deliberadamente, puedes usar algo así como
un passwder delegado. Creo que se llama
delegar codificador parsd. Creo que aquí hay una
descripción. Bien, esto es delegar el codificador
pars. Podrías usar esto o usar
este Bcrypt o usar Script, pero Bcrypt se usa más
comúnmente Es un hash unidireccional y
funciona bien,
es bastante seguro Entonces necesitas tener
un concepto de clientes,
los clientes que se registrarán en Esta es la forma en que funciona. Cuando se tiene un servidor de
autorización, hay algunos actores ahí. Tienes el
recurso. Recurso es básicamente a lo
que quieres acceder. Tienes los clientes.
El cliente es quien está tratando de autenticarse
en su nombre Podría ser una web, probablemente
podría ser móvil. Esos son tus clientes, ¿verdad? Entonces tienes a esos actores. En realidad tienes el
propio
servidor de autorización del servidor , y tienes al usuario. El usuario es el propietario
del recurso, ¿verdad? El dueño del recurso
que quiere ser jalado que quiere
ser puesto por el cliente. Esta es la forma en que el cliente debe reconocer y la
forma de reconocer a ese cliente es
poder decir, Oye, el cliente para que
me autentifique, me
das a tu cliente tu ID de
cliente y tu secreto de
cliente, luego defines el tipo de
concesión que quieres permitir Aquí estamos permitiendo código
de autorización. Entonces esto no es necesario porque esto es lo único en lo que
nos estamos enfocando. Ahora bien, cuál es el propósito de
usar credenciales de cliente. Sólo voy a explicar
esto brevemente porque
esto va más allá del
alcance de este curso. Las credenciales de cliente
solo son las más adecuadas. Déjame usar la palabra
más adecuada cuando
estás haciendo comunicación de servidor a
servidor. Supongamos que tiene un servidor recursos
hablando de un servidor de recursos, pero quiere estar seguro de que la comunicación no
se vea comprometida. Probablemente podrías simplemente golpear
el servidor de autorización, obtener el token y
digo vis token, luego usar ese token
para llamar al recurso. Vas a pasar
el circuito de cliente y clidar ID de cliente, pero es recomendable No usas esto. No usas esto cuando
realmente te conectaste
desde el mundo exterior porque puede exponer fácilmente tu ID de cliente secreto de cliente. Entonces estás usando un caso
de en registro de memoria. Situación de guerra que vas a
usar Creo que es la exposición de clientes de registro de
JDBC se supone
que debes usar Así que también estás usando el concepto de configuración del servidor de autoración Así que para entender siempre
lo que cada Bins, siempre se
puede
hacer clic de Control o clic de comando. Entonces en realidad
descargas fuentes. Entonces podrás
ver descripción lo
que hacen estas cosas. Verá una instalación para la configuración del servidor
de autoración Entonces también he explicado esto aquí es donde
potenciamos, ¿verdad? Mejoramos nuestro token
para poder que las credenciales del cliente
tengan nuestra octopsis Entonces esto es básicamente
lo que hace. Así que vuelve en el siguiente video, y
te voy a mostrar cómo funciona esto. Los veré chicos
en el siguiente video.
120. Seguridad en Graphql, parte 2: Oigan, chicos, es bueno
tenerlos de vuelta. Todo bien. Entonces como expliqué
en el último video, ¿no? Intenté lo más posible, así que no dependería de la
base de datos. Todo está codificado, pero no quieres
ir por esta ruta, ¿verdad? Si verifica la autorización de
primavera, realidad
puede verificar el servidor
OO de primavera y el servidor de oración. Hay varios ejemplos
que muestran cómo usar la base
de datos, configuración de la base de datos
y similares. Pero por el bien de este curso, creo que esto va a funcionar bien. Solo queremos ver eso con una
autenticar con una O o
dos o tenemos una
capa de seguridad en nuestra gráfica QL Con esto, solo puedes
iniciar tu aplicación directamente. La otra configuración que acabo agregar son
las propiedades aplicacionales Acabo de habilitar banda de rodadura virtual, lo cual es totalmente innecesario. Estoy usando siete ollas 8099, que es todo lo que solo necesitamos Con esta t, déjame
bringo a mi cartero. Solo voy a inglar a mi cartero
y voy a darle a este 8099 y poder hacer que esto
funcione De hecho voy a
salir eso. Eso está subiendo. Eso básicamente
viene 1 minuto, 1 minuto, 1 minuto. Todo bien. Tenemos esto. Entonces tenemos lo mismo. Entonces ya
tenemos disponible el concepto de todo
esto. Entonces lo que voy a hacer
es copiar los detalles para
la conexión
y meterme directamente en ello. Todo bien. Así que aquí, de vuelta. Derecha. Básicamente, solo
necesitamos llamarlo ahora. Como ya conoces,
esto es básicamente lo que llamas para servidor de
autorización de primavera. Se podría configurar
esto. Pero esto es un defecto que necesitas.
También voy a proporcionar esto. Te voy a proporcionar esto para que solo puedas llamarlo como es. Entonces, si haces esto,
solo llama a esto. Se podía ver
que esto simplemente funciona como debería. Simplemente
funciona como debería. Entonces puedo
obtener la ficha. Observemos la ficha. Recuerden, agregué algún
concepto de las autoridades, así que vamos a verificar eso. Entonces, si nos fijamos en esto,
agregué autoridades aquí,
que en realidad publicaron
aquí, ¿verdad? Entonces esto se debe hacer
programáticamente. Y si miras a
las autoridades, sí, estas son las autoridades. Crear actualizaciones de lectura. Esto es básicamente lo
que vas a usar. Debería ser más complejo que
eso en la situación VW. Entonces, lo que voy a hacer
nosotros también podríamos hacer esto. Si no quieres dejar ese particular si solo
revisas la versión del código, clic en este código, da
clic en este, ¿verdad? Haga clic en esto. Creo que
deberíamos explorar esto un poco. Entonces estás pasando el
nombre de usuario a la contraseña, que es el secreto de un cliente, que va a ser el encabezado,
la autorización básica. Entonces en los encabezados,
básicamente no tienes nada. Entonces en el cuerpo,
si revisas el cuerpo, en realidad lo hacemos WW
punto forma URL codificada Pasamos un tipo de subvención
y pasamos el alcance. Y si te sientas tenemos dos alcances y dos alcances
que tenemos es muy claro Mira el alcance, tenemos
el alcance de ID abierto, derecho, ID abierto, y tenemos
el alcance de nuestro perfil. Por lo que pasar cualquiera de ellos
bastaría para crear esto. Yo básicamente podría hacer esto podría usar un rizo.
Vamos a darle a esto. Bien, entonces esto
realmente falta porque esto no se comporta
como un terminal por lotes. Pero si estás usando
un terminal por lotes, podrías pasar
una sola línea, y esto realmente
podrá obtener lo que necesitas para ti, ¿verdad? Así que en realidad acabo de
mencionar eso para que
puedas también si estás
usando un Mac y Linux, va a ser bastante genial, pero
como estoy usando un Windows, supongo que eso es que estoy recibiendo
estos errores raros. El cartero es justo lo suficiente. Entonces lo que voy a hacer,
voy a dejar este guión de
cartero Voy a poner esto en
una colección separada, y voy a compartir
este guión de cartero Entonces, si solo lo llamas como es, solo
lo llamas como él
y lo obtienes token y puedes usar el token, como
quieras usarlo. ¿Estaremos usando básico
en los siguientes videos? Esta es una explicación típica
del servidor tis. Entonces me ves volviendo a éste de vez en cuando, si es necesario. Pero para estar ejecutando la bolsa
poder realmente obtener nuestro token usar
para probar nuestra aplicación Graph
KeyWL Con este set,
los veré chicos en el siguiente video.
121. Seguridad en Graphql, parte 3: Oigan, chicos, vamos a tenerlo de vuelta. Entonces podemos
seguir adelante y configurar una aplicación gráfica Q
para luego hablar con el servidor de autorización
porque tiene que ser alguna forma
de comunicación. Para hacer eso,
voy a cerrar todo esto, luego íbamos a
una configuración y
crearíamos una configuración de seguridad. Yo lo llamo configuración de seguridad. Todo bien. Ahora para hacer esto, vamos a hacer de
esto una configuración. Va a ser una configuración. Vamos a habilitar
porque es muy importante, que habilitar la seguridad web. Habilite la seguridad web. Bien, creo que sé por
qué no encuentras esto. Recuerda que este es un servidor tan, una gráfica Q estará sirviendo como servidor de recursos
porque
ahí es donde queremos
sacar nuestro Dysonm Entonces, para
poder lograrlo, necesitamos agregar una dependencia para el servidor de recursos, ¿verdad? Y para hacer eso, ahora solo entramos en una bomba direcML PUM EML
directa Recuerda que esto es una queja porque S está en la
última versión Así que podrías estar seguro cuando estés creando tu
propia aplicación, usando la última versión de un arranque de primavera y todas estas
vulnerabilidades estarán fuera. Voy a seguir adelante y
agregar en el servidor de recursos. El servidor de recursos es
bastante fácil de agregar. Si realmente revisas y comienzas el Spring Dot IO para que
lo menciones. Empezar el punto de primavera o. vamos a empezar
el punto de primavera IO. Una vez que comienzas un spring dot IO, en caso de que sepa usando
Intelligent ultimate, podrías simplemente fuente
servidor dos servidor de recursos. Ahora si haces clic en él, dice Integración de
Springboard
para seguridad de primavera o función de servidor de dos Esto es lo que hay que
añadir. Si lo coloco en Maven, si exploramos, esto es
básicamente lo que necesitamos Básicamente
necesito solo copiar esto. Copia otra vez y voy a entrar
aquí y sólo puedo agregarlo. Si básicamente estás
usando ultimate, podrías simplemente hacer clic en esto. Siempre serán símbolo aquí. Tráelo a colación y solo
agrega servidor de recursos. Simplemente agregue servidores de dos servidores de
recursos y eso solo
lo traerá automáticamente. Todo bien. Se puede
ver que en realidad trajo en forma automática
y vamos a estar bien para ir. Si revisas, lo ha agregado a la base. Esto ya se agregó. Recuerda, estoy enfatizando esto porque es muy
importante mover
las vulnerabilidades para que tu aplicación no quede expuesta Solo necesitas actualizar a
la última pasion de primavera. Pero quiero ser consistente
por lo que empecé. Para cuando empecé
con 33 o cuatro, estas vulnerabilidades no
se muestran. Ahora en realidad están mostrando. Significa los fondos
y vulnerabilidades,
necesitas realmente
resolverlo con solo subir última versión de
Springboard. Todo bien. Entonces con este tono, permítanme traerlo realmente
recargando el proyecto Yo solo sincronizo los proyectos, vamos a recargar Mv en proyectos que solo
traerán los detalles adentro Y cuando eso está en, entonces
podemos entrar entonces habilitar una seguridad web y eso
estará disponible Habilite habilitar la seguridad web. Ya ves, esto ya está disponible porque
lo trae en contexto de seguridad. Eso es
algo genial que hemos hecho. Entonces el siguiente paso es
que luego vamos a habilitar en la seguridad del método porque
vamos a estar usando algún
tipo de método de seguridad,
antes de ahora, ya ves
lo que esta parte que está siendo expuesta era realmente
recomendable antes de ahora. Pero sin embargo, ya
no es aconsejable. Puedes ver si
revisas esto esto está zumbando para ti
automáticamente, verdad? Esto ha quedado en desuso. Yo digo usar seguridad metálica. Es por ello que utilizamos seguridad
metálica. Creo que me perdí de hecho me
perdí la explicación ahí. Esto ha sido fechado y
ahora usan seguridad metálica. Es por ello que estamos trayendo en método de seguridad método, seguridad
metálica. Haciendo una seguridad metálica,
pre post es verdad, es por defecto, así que no
necesitamos
agregar esto porque es por defecto. Prepost significa que queremos hacer preautorizar y publicar autorizar, pero es por defecto, así que no
tenemos que hacerlo es verdad por Tenemos que agregar eso en. Movemos estos insumos, Bien, así que ese es un nuevo paso. Ahora, tenemos que decir dónde encontrar un servidor
y para hacer eso, hay un concepto de primavera y JWKSUR va a estar Simplemente entraré rápidamente en un archivo de propiedades para conectarlo
rápidamente. Eso es lo que vamos a
hacer enseguida. Entonces lo que voy a hacer,
voy a entrar en esta parte. Esta es la parte local
que estás usando, ¿verdad? Esto va a estar
disponible. Canto una DoCopa Esta será primavera.
Déjame quitarme esto. Entonces esto ya traerás esto. Spring, KS, ya ves,
GWS, luego establece la interfaz de usuario. De hecho
podrías tener esto. Esto no es lo que
busco. Entonces queremos el URI. Voy a poner el UR
GW Ks, luego el URI. Estoy haciendo solo especificando esto. No quiero todo
esto, entonces URI, ¿verdad? Esto es sólo los caminos. Sólo digo que este es el camino para encontrar autorizaciones de
HDCP, anfitrión local 8099, luego va a
ser O a las dos o dos, entonces JwKsth podrá
ayudarnos a encontrar Volviendo a la seguridad, volviendo a esta parte
G de nuevo a esta parte. Así que solo para
conectarlo solo
lo estaré trayendo en traerlo y te
mostraré cómo usarlo. Ahora debo decir que esta es una
configuración que estoy haciendo. También hay otra forma de
hacer esta configuración. Esto está en configuración. Si ves que alguien conecta un servidor de recursos,
será diferente. No significa que de
todos modos sea mejor. Primavera, puedes
hacer lo mismo en primavera de múltiples maneras. Traeré al valor al valor, luego lo conectaré por cable. Entonces voy a estar trayendo
el columpio. Ésas son las partes. Eso
era lo que necesitaba. Voy a estar en
el swing valor privado, llamémoslo. Eso está bien. Entonces voy
a estar trayendo un ser. Entonces voy a estar trayendo una cadena
de filtros de seguridad. Si utilizo un ser no
necesariamente necesitas usar una
cadena de filtros de seguridad pública. Eso está bien bien. Esto es genial. Todo bien. Esto es bueno. Ahora
voy a estar inyectando. Recuerda, no sé si
has mencionado esto antes, pero ten en cuenta que cualquier parámetro
de un ser es un frijol. Sólo se puede inyectar un
estado en un ben, ¿verdad? Cualquier parámetro de un estado
siempre recuerda que es un ser. Vas a estar
trayendo un par de cosas que voy a
crear más adelante. Pero sin embargo, solo procederemos. Déjame quitarlo por
ahora. Lo estás creando ahí abajo y nosotros lo vamos
a traer. Ahora vamos a
empezar en pith CTP. Ahora bien, este es un
servidor de recursos 02 servidor de recursos, o dos servidores de recursos. Antes de ahora,
solo podías hacer esto punto, punto, punto, pero ahora mismo,
usan un concepto de personalizador Acabo de llamar a este personalizador de
recursos de recursos. Personalizador, ¿verdad? Entonces
es en este personalizador, traemos muchos detalles Nosotros el personalizador de salsa, este personalizador de
recursos, estaremos teniendo algunas
paradas geniales, las cuales estaremos agregando Ahora, digo, personalizador de recursos. ¿Bien? Quiero traer a JWT ¿Bien? Así que ya ves
antes de usar JWT sin un personalizador no
hiciste un punto pero ahora, pones un personalizador para poner en cualquier detalle
que estés buscando Entonces estamos poniendo un personalizador. Ahora para este JWT, también
tenemos su propio
personalizador, JWT, personalizador Recuerda que podría
ser cualquier nombre. Simplemente me gusta llamarlo personalizador. Podría ser cualquier nombre. Todo bien. Con esto, sigamos adelante. Recuerda desde el servidor de
recursos, obtuve el personalizador JWT JW NRs Entonces, ¿qué queremos
agregar al personalizador? Voy a traer ¿verdad? El personalizador de JWC,
luego el URI, el URI que queremos establecer ahora,
JWT URI, que es el
URI que acabamos Bien, genial. Ahora tenemos eso. El siguiente será
configurar un decodificador, que sería cresta
en un minuto y finalmente
configuraría el convertidor de
autenticación JWT, que en realidad
generaría el token o probablemente configuraría
el token para nosotros Si quieres ver más
descripción, solo la abres,
ves lo escamoso lo que hace, y podrías simplemente y ver
básicamente lo que hace Si vas a lo más
alto, ves muchas descripciones,
acabas de leer sobre eso. Este es nuestro cuerpo, así que vamos a estar
haciendo ping a esto también Sigamos adelante y creamos un personalizador Vamos a
crear un decodificador
también vamos a crear una autenticación GWT,
convertidores de
autenticación WT cata que estaremos haciendo justo Voy a bajar,
bajar antes de hacer eso,
veo que ya
es el momento faspen
volvamos en este
video para completar esto Los veo en el siguiente video.
122. Seguridad en Graphql, parte 4: Oigan, chicos, genial
tenerlos de vuelta. Recuerden que
estamos haciendo nosotros en realidad configurando un servidor de autorización mediante cual es un gráfico QO para comportarse como un servidor de
autorización Estamos tratando de que
se comunique con el servidor de autorización que mostramos hace un par de videos. Ahí es exactamente donde estamos. Hemos configurado el
último pote de video a este paso si no
viste que las caderas regresaran para ver exactamente
lo que hemos hecho aquí. Entonces ahora estamos tratando de
configurar un decodificador GWT autenticación cer
un router convertidor Vamos a configurar un
decodificador. Recuerda que mencioné cuando estás
usando un bin realmente
no necesitas
un teclado público, no tienes decodificador. Así que tenemos un decodificador, básicamente
en decodificador que viene
de un decodificador JWC Decodag JWT
DCodaJWT Los decodificadores JWT
devuelven números. Esto es básicamente. Creo que nimbos básicamente
viene de un nimbus, decodificadores
JWT se
puede ver Vas a decodificarlo puntos. Con esto, estamos
decodificando con esto porque el servidor de autoación contiene una gran cantidad de detalles Ahora, lo que hará la mayoría de la gente, realidad podría tener
una clave privada configurada en el servidor de automatización y configurar una clave pública en el servidor de
recursos. Esa es una manera común
inculcar válida hoy en día, no
hay una clave asimétrica Pero sin embargo, el problema es que es muy
difícil rotar. Digamos que tienes unos
15 servidores de notación que están haciendo varias cosas, hablando con el mismo servidor de
notación. Una vez que cambias la clave privada, tienes que ir y cambiar el público en todos
los servidores. Sin embargo,
solo podrías configurar solo tu
servidor de aireación para que tenga las claves, luego llamar
a un punto final para poder leer
esas claves del mismo, y eso realmente funciona Pensé que debería mencionar que esa es una
forma en la que podrías hacerlo. Superar la viga. Ahora
esto ahora se reconoce. Mencioné anteriormente, cualquier
parámetro de haz también es un haz. Puedo traer el JWT. Decodificador, luego decodificador decodificador JWT,
decodificador JWT. Ahora bien, si tuvieras que hacer esto, haz clic en esto si es un ultimate, da
click en este decodificador lo
veo salta
aquí mismo para que pueda ver porque
lo ve como un bin. Voy a poner
aquí un decodificador y este tipo está contento. Bien, genial. El siguiente paso, vamos a configurar nuestro convertidor de
autenticación JWT Voy a establecer un
bin así este sbin, luego convertidor de autenticación
JWT Antes de que realmente
implementemos,
voy a seguir adelante e
inyectarlo aquí, ¿verdad? Todo bien. Entonces la autenticación JWT y
si haces lo mismo, ves que salta
aquí mismo, por lo que la reconoce Cuando lugar ahora está sonriendo. Tenemos todo esto configurado y esto está sonriendo bastante bien. Tenemos esto. Esto
realmente entra y tenemos la personalización de JWT y
trajimos esto y todo, esto es bastante genial,
cerremos todo esto No creo que necesitemos
estos colibs extra hay un cielo multi, hay
un cielo multi Esto está bien ahora. Esto está bien. Entonces con este tipo, entonces
necesitamos esta parte
aquí, podemos hacer esto. Quiero ver cómo se cierra. Entonces final, esta pieza final
en realidad puso esto aquí arriba. Bien, así que esto es genial. Vuelve al acabado esto, menos que alambre esto adentro. Tenemos un
convertidor de autenticación de
autenticación JWT que es genial Contamos con convertidor de
autenticación JW puede establecer autoridades otorgadas GW Aquí es donde realmente quieres
poner en
unas autoridades otorgadas para realmente sean utilizables
para saber que oye, estas son tus autoridades las
que en realidad esperas que tenga, ¿sabes? Todo bien. Entonces tenemos esto. Entonces tenemos estamos usando
el concepto de personalizador. Recuerda, el concepto de
personalizador es lo que se utiliza. Así que enumere las autoridades de cadena. Impresionante. Ahora, ya deberías estar
familiarizado con esto. Recuerda, ya nos instalamos. Ya configuramos nuestro reclamo, obtuvimos reclamo, no
quiero obtener reclamo. Sólo vamos a conseguir reclamo.
Hay un reclamo. Entonces una vez que uses esto. Recuerda, ya
lo configuramos. Volvamos a eso
tendría más sentido. Recuerden, estamos
configurando esto aquí. Usted está estableciendo esta afirmación
para tener autoridades. Estas autoridades,
miramos esto, son solo autoridades, aplican en muchos lugares lo hago singular de una fuente
en particular. Ahora estoy recuperando lo
mismo aquí. Recuperando lo mismo
puedes localizar eso, luego regresaré y luego
lo configuraré en nuestro personalizador Diré regreso, regreso, y diré autoridades,
la cadena, mapa, luego lo
mapearé a simple autoridad
otorgada. Diré simple autoridad
otorgada. ¿La tengo aquí?
Vamos a escribir a cabo. Autorización simple otorgada No. Esto van a
recoger decir a la lista. Bien, entonces esto es sonreír. Tenemos esto
básicamente configurado. Digamos que falta algo.
Déjame ver esto. Esto es comp veamos esto. Vamos a inspeccionar dice:
Bien, mala expresión. La última
autoridad simple de Gant no se puede convertir en autoridad
otorgada Espero explícitamente que
usemos la simple autoridad de Gant. Entonces esto está bien. Compartiendo esto para mapear simple autoridad otorgada. Vamos a recoger los
coleccionistas recogen. Recoge y recójanos para enumerar. Bien, entonces esto es sonreír. Todo esto está bien. Y por último, devolvemos nuestro convertidor de
autigación JW de autenticación Entonces esto ahora está básicamente ordenado. Entonces tenemos todos
estos adentro. Ahora, próxima parada, vamos a saltar aquí. Tenemos que hacer algún
trabajo extra porque tenemos que decir, Bien, queremos
permitir esta URR, no
queremos
permitir esta URL Ahora, te parece muy claro lo que estoy a
punto de hacer ahora. Diré que esta parada autorizó las solicitudes
HTTP. P petición. La solicitud Auths P en realidad
no toma ningún parámetro. Por ahora,
en realidad podríamos pasar. ¿Bien? Entonces AutoriprQuest,
entonces nos vamos Bien, canse esto. Después lo puso en marcha,
punteó cualquier solicitud. Puntos. A solicita? No. En vez de autenticado, voy a estar diciendo Paital Guau. Verás, ¿qué
has hecho? Te estarás preguntando, oye,
¿qué he hecho aquí? Entonces al parecer
la aplicación es apátrida, este CSRF o
volver a este CSRF, hay una manera de desactivar
y ¿cómo se puede desactivar Utiliza esto también usando el
concepto de personalizador ahora. Hay un concepto de abstracts, configurador
abstracto HTP. Entonces solo Lambda
expresion para solo traer eso entonces
vuelves a la compilación de CD Bien. Este tipo se queja
por qué se queja diciendo, creo que es esto duplicado Vamos a averiguarlo. Se duplica la
solicitud autorizada. Veamos por qué se duplica.
¿Qué debemos usar? Dice duplicado, usa solicitudes HTTP
autorizadas. En cambio. ¿Qué usaste? HTTP autorizado. Eso era lo que iba
por solicitud de HCP en su lugar. Bien, así que está bien.
Tenemos todo configurado. Esta es básicamente toda la
configuración que necesitamos. Estamos hablando con
el servidor de ización
y este tipo nos va a dar
todos los detalles que necesitamos, que es esta parte
aquí, si vas adentro, que es el 02 GWKSTh contiene un montón de detalles,
un montón Voy a volver en
el siguiente video y mostrarte cómo ver algunos
detalles extra en el servidor de azation, y voy a explicar por qué
estoy permitiendo todo en
lugar de autenticar Los veo en el siguiente video.
123. Seguridad en Graphql, parte 5: Todo bien. Oigan, chicos,
es bueno tenerlos de vuelta. Todo bien. Entonces estás viendo
el concepto del servidor de
autorización. Pensé que voy a
mostrarte algunos detalles extra geniales y razón por la que
vemos que estamos usando el 02 GW k, JWKSnerrSource Empecemos en el servidor de
autorización que preparamos antes. Esto no debería tener ningún
error. Así que me puse en marcha. Volvamos a entrar. Entonces
los puntos finales son 899, Ahora, llamemos a este método. Bien. Si miramos a través de esto, esta es una especificación para ID abierta que debería poder revelar
realmente
todos estos detalles. Si entras, ves que
tenemos tantos detalles. Ahora bien, aquí es donde
descubrí que
en realidad podríamos sacar esto. Entonces hay un JWKSURI En caso de que no quieras
usar cuál es el nombre ahora, en caso de que no quieras usar la clave privada aleta de clave pública
en el servidor de autoación
y servidor de recursos,
y solo quieres el servidor y solo quieres Entonces el servidor
de recursos esté listo para que el servidor atan obtenga
la clave pública y
sepa cómo decodificar Así que todo depende solo
del servidor de automatización. Esto es lo que necesitas. De aquí es de donde lo sacas, ¿verdad? Es que usted mencionó.
Y en base a nuestra configuración, se
ve lo que se soporta. Recuerda, agregamos código, credenciales de
cliente, derecho, actualizamos también
y si comparas, esto es exactamente
lo que teníamos ahí. Así que necesitaba
mostrarte esto, ¿ves? Tienes un nuevo scen
credenciales de cliente, código oral. Así es como se llega
a encontrarlo realmente. Básicamente, este es el punto final. También lo he incluido en
la colección Postman, voy a compartir para que realmente
puedas explorar para ver. Cómo se ve. Bien, entonces cuando volvamos aquí. Ahora, surge entonces la pregunta. La forma normal de
hacer esto es autenticar realmente
todo Todo debe
ser autenticado. Entonces empiezas a
especificar que, Bien, empezaría a usar
este particular
comenzaría a usar esta regla
en particular o permiso para acceder a un
recurso u otro. Pero hay un problema. A diferencia
de un HTTP tradicional, ¿verdad? Tienes diferentes URI, ¿verdad? Existen diferentes URI. Entonces te voy a dar un ejemplo
particular aquí. Entonces digamos que tienes podrías tener
cosas como recurso HTTP, digamos que está en un host
es solo un ejemplo, 80, 80. Entonces universidad pública
tal vez recurso es nuestro recurso en usuarios familiares. Entonces podríamos tener
otra vez para decir, este es diez quizá
usuarios Slach uno Esto va a ser apunta a algo
diferente de lo que podríamos
decir entonces digamos tal vez clientes. Clientes dos. Ahora bien, estas son diferentes partes, diferentes puntos finales que
realmente estamos expuestos en
nuestra aplicación, que sería colocar
el
autorizon preauthoriz o el post autorizado, que Todo lo que autenticamos. Pero en el caso de la gráfica QL, recuerden
lo único que estamos llamando, que les mostré chicos Anuncios, solo un punto final al
que están llamando En el caso de la gráfica Q, sólo
estamos llamando a graph QL. Esto es
lo único que estás llamando. Ahora, impulsa nuestra mutación, nuestra consulta, si te has dado cuenta, todo pasa por esto. Ahora, vamos a subir nuestro alquitrán,
e lo validamos rápidamente. En caso de que tal vez
realmente pasaras por alto y
en realidad no te diste cuenta de eso, vamos a entrar su vamos a
validar eso. Puedes ver para esta parte que estamos creando
la parte que estamos llamando
la misma señal gráfica para
Pigination GaFQue,
empresa Gvcuel empleado GFC, empresa Gvcuel empleado GFC, espero que tenga sentido
ahora y en realidad lo esté pegando esta parte que estamos creando
la parte que estamos llamando
la misma señal gráfica para
Pigination GaFQue,
empresa Gvcuel empleado GFC,
espero que tenga sentido
ahora y en realidad lo esté pegando. Si realmente compruebas el combustible
del gráfico de consulta, todo está llamando a
este mismo punto final. Entonces es capaz de disolverse. Es por eso que si cometes algún error o esto
no se alinea, aquí
obtienes algunos errores raros. Bien, ahora que tenemos
este entendimiento, veamos ahora qué
tiene que decir Spring al respecto. Entonces vayamos a primavera y documentación y veamos qué
tenemos que decir al respecto. Voy a abrir
esto. Por lo que también
voy a compartir este enlace. Ahora, esto es primavera para Graph Q Spring Graph cuidado Veamos esto.
Vamos a lo que dice. Dice que las rutas a un punto final QL de gráfico web se
pueden asegurar con seguridad de URL de
KCP para garantizar que solo
los usuarios autenticados puedan Esto sin embargo, esto
no diferencia entre las
diferentes solicitudes de Graph en un
punto final compartido de este tipo en una sola URA, que están utilizando.
No es una sola UR. Dice, para aplicar más seguridad de grano
fino, agregar
rotación de seguridad de resorte como un método de servicio PrioriZect Digamos también clases.
Las clases son método. Involucrado en la búsqueda de
partes específicas de la respuesta de GAP Q. Espero que esto tenga
más sentido ahora. Yo solo tengo una URL para que
entonces podamos
asegurar cada uno de los
endpoints o cada uno de los GAP Q por así decirlo, recurso w. lo
estaremos haciendo
en una clase o en
un nivel de método que luego
podamos decidir que esto está
protegido, no está protegido Espero que sea súper claro,
eso es súper claro. Esto es muy, muy importante. También voy a poner este enlace. También voy a
actualizar mis notas, ¿verdad? Entonces también voy a actualizar
mis notas para que ustedes también
puedan tener este enlace
disponible para ustedes. Todo bien. Así que en realidad he podido
explicar el concepto por qué esto es así y lo que
estamos permitiendo a todos. ¿Bien? Todo bien. También
voy a hacer esto, porque sé que esta pregunta también
podría surgir más adelante. Bien, entonces voy a hacer esto. También voy a
publicar esto aquí. Ahora bien esto es recomendable, pero voy a poner
esto aquí para que en realidad
solo
podamos hacer referencia. Quien se esté preguntando por qué
tenemos permial con esto. Con esto, hemos
podido
terminar realmente nuestra configuración, creo y luego seguir adelante
y ahora empezar a asegurar un recurso en particular que
realmente queremos exponer o verlos
chicos en el siguiente video.
124. Seguridad en Graphql, parte 6: Oigan, chicos, genial
tenerlos de vuelta. Gracias
por volver sobre mí. Bien, lo que vamos
a hacer ahora mismo, vamos a proteger
todo nuestro recurso, cada uno de ellos en
base a lo que leímos en el último video sobre documentación de
primavera para
graph QL, entremos Ahora, es un gran fan de la primavera, has estado usando
primavera antes de ahora, estarías al tanto
con el concepto de R Priuthorize que
se mencionó en el último video Entonces ahora, por este bien, por el bien de este curso,
voy a estar protegiendo
cada recurso. No deberías estar
haciendo eso, ¿verdad? Algunos probablemente deberían estar expuestos al público si se quiere. Pero por el bien de este
curso, voy a hacer eso. Te voy a
enseñar dos métodos. Estoy usando un preautorizado,
preautorizado. Es un pre autorizado.
Pre autorizado debe tener un valor,
debe tener un valor. Ahora, tienes un concepto
de usar media regla. ¿Correcto? O el uso tiene algún papel. Si estás usando tiene algún rol, significa que puedes
poner más de un rol, separado por comas Si estás usando rollo, solo
puedes poner uno. Ahora recuerden, estamos haciendo
las cosas en un nivel inferior, que es el nivel de autoridad, tenemos que usar el concepto
de autoridad, ¿verdad? Y ahora debido a que esto
contiene tanto mutación de lectura, ésta en realidad contiene
algún contenido, tanto de conmutación como de consulta Voy a unirlos para decir
que tiene alguna autoridad. Y entonces voy a estar
pasando en múltiplo. Diré, quiero
leer y quiero crear. Debes tener cualquiera de estos dos para hacer esto realmente plano. Entonces me llevo bien esto. Veamos lo que hice mal. Resorte esta espalda. A ver. Tenemos PriuthizeHH alguna? Esto es lo que me perdí.
¿Tiene alguna autoridad? Sí. Tiene autoridad alguna. Ahora bien, si quieres hacer esto a nivel de método es muy sencillo. Solo tienes que venir
aquí y meter esto. Entonces, si solo dices este hub, y si quieres
ser más específico, solo
dices que tiene autoridad. Primerdad. Qué es esto
haciendo esta investigación, entonces es una lectura para que
prácticamente puedas alejar esto Esto es muy crucial, chicos, ¿
verdad? Esto es muy crucial. Como mencioné
en aras de la sencillez, solo
quiero hacerte
algo más genérico. Te he enseñado cómo hacer para el nivel de
método y te he
enseñado cómo
hacerlo realmente para el nivel de clase. Para este curso, vamos a estar
haciendo más nivel de clase. Recuerda, si colocas un nivel de método y
colocas un nivel de clase. Si coloca un nivel de clase
y el nivel de método, nivel de
método tiene
más precedentes que el nivel de clase,
tenlo en cuenta El nivel de método tiene más
prioridad que el nivel de clase. Eso es muy crucial saberlo. Estás colocando, oye,
pero yo pongo esto aquí, esto está disponible, pero
pones algo diferente aquí, esto tendría más
tienes que tener más actividad o debería decir para tener más
importancia que esto. Eso es bastante claro. Yo
sólo voy a tomar esto. Voy a duplicar esto
en cada uno de nuestros detalles. Todo nuestro recurso
que expusimos. Bien. Entonces sí. Por último, sí. Todo bien. De esta manera, esto en realidad ahora es cierto. Esta configuración
ahora es cierta. Hemos permitido
todos los recursos, pero entonces
vamos a decir que ahora
estamos protegiendo a
cada uno de ellos. Entonces, aunque lo
permitimos todo aquí, no
puedes evaluar ninguno de ya no
puedes evaluar ninguno de
nuestros recursos
sin tener un token GWT que realmente esté
permitido evaluarlo Esto es genial,
chicos. Hemos podido hacer algo
realmente increíble. De hecho, hemos podido
configurar el servidor que te mostré. De hecho, he podido
decirte la razón por la que estamos usando permisos o
he podido mostrarte la configuración de
ID abierta bien definida que está disponible en el cartero que
voy a compartir, ¿verdad Y aquí, te he enseñado cómo
proteger la gráfica QL, ¿de acuerdo? Poner cada recurso. Y
esto es bastante asombroso. Para que puedan disfrutar de todas
las palabras juntos. Tienes la libertad de
ver todo lo que se
supone que se debe hacer en torno a la
seguridad en la gráfica QL Pero como saben, esto no está
completo excepto que probamos. Y cómo
probamos, no vamos a hacer nada diferente a
lo que hemos estado haciendo antes. Si estás al tanto, ya dejamos
varias pruebas, ¿verdad? Entonces ahora mismo, entonces entra, o debería enviar este video, luego entrar a crear
luego intenta conectar tu servidor de
autorización, luego usa un generador de tokens para
llamar a todos y cada uno
de estos recursos. Y veremos alfileres ardiendo
o saliendo ,
genial. Todo bien. Pero antes de que terminemos este
video, pongamos en marcha esto. ¿Bien? Empecemos con
esto y solo intentemos evaluarlo de la manera en que lo hemos
estado evaluando antes. Recuerda que no está protegido, y veamos si funciona. Entonces voy a hacer dos cosas al alza de mi servidor de
autorización. Mi servidor iriano
está en funcionamiento o en funcionamiento. Voy a minimizar
eso. Oside mi docker, así que realmente puedo poner en
marcha en esta aplicación Entonces, vamos a poner en marcha esto.
Voy a poner en marcha esto. Déjame revisar
la configuración. Yo uso perfil de resorte,
que es genial. El perfil que estoy usando es
local, lo cual es bastante genial. Recuerda esto. Usted configura esto para usar el perfil de resorte
cuando se usa local. Todo bien. Y luego hemos agregado algo
genial, que es esto, que ahora estamos hablando con lo
que tenemos por aquí, que
es este tipo de aquí. Y este tipo está
escuchando en qué ollas escuchan en las ollas
8099. Todo bien. Empecemos esto y
vamos a evaluarlo y ver si podemos ver
evaluarlo o no podemos. Si puedes evaluarlo,
algo ha salido mal. Si puedes
evaluarlo y todo está funcionando bien.
Vamos a poner en marcha esto. Esto está llegando Bien, así que esto se acerca vamos permitir que simplemente
fluya adentro, bajo adentro. Recuerda que protegimos
todo el recurso, necesito mencionar que de nuevo, todo está protegido
a nivel de clase. Yo solo uso un ejemplo para solo proteger a nivel de
método, ¿verdad? Por lo que esto está protegido, protegido,
protegido, protegido. Esto es genial. Todo lo
empecé ahora mismo. Vamos a entrar y
luego crear una empresa. Vamos a entrar y
crear una empresa. ¿Podemos ver que no hemos
agregado nada aquí? No tenemos ningún otro encabezado.
Echemos un vistazo al encabezado. No tenemos ningún
encabezado para esto, solo
intentemos
crearlo tal como es. Yo no cambiaría
nada. Simplemente creo esto tal como es y
veo qué pasa. Uy. Acceso denegado. Impresionante. Entonces todo
está funcionando como debería. Vayamos a un empleado.
Llamemos a esto Acceso denegado. Este acceso denegado. Este acceso denegado. Un acceso más denegado. Por lo que esto es cierto que nuestra
aplicación no está protegida. Con esto, en realidad hemos
podido
hacer todo lo que es necesario. Volvamos en el
siguiente video y probemos de este autor sexo el encabezado con la autorización con
la autorización, pongamos la barrera a él
y veamos que podemos acceder. Si podemos, entonces volveremos. Entonces en realidad luego
profundizamos para luego cablear en nuestras pruebas para luego
poder conectarnos, los
vemos en el siguiente video. E.
125. Seguridad en Graphql, parte 7: Oigan, chicos, genial
tenerlos de vuelta. Todo bien. Así que de inmediato, hemos
podido ver en el último video que ya no
podemos acceder a ninguna de las fuentes, así que ya agregamos los detalles lo que nos
está restringiendo Vamos al servidor de
autorización. Nosotros stat del servidor de
autorización, voy a ir a Cartero
traer Cartero Mientras cartero
cargaba. Voy a chequear y vamos a sacar
a JW ver el RO Voy a sacar a colación a JW
ver al RO despejar esto. Nosotros JW vemos el IO
ahora en la imagen, entremos ahora para
generar un token Voy a generar un token. Este es un token que
se va a generar. Voy a copiar esto. Recuerda,
una vez más, voy a mostrar esto. Vamos a estar
usando lo básico, te
mostré qué
obtener el secreto del cliente y los clientes el cliente y secreto básicamente configurados dentro del servidor de aireación Aquí es donde
lo encuentras, solo un repaso. Si entras aquí, comprueba la seguridad y si
verificas correctamente, ves
que tienes el ID de cliente, secreto de
cliente por aquí, derecho. Eso es que estamos usando el método
de cliente secuit basic. Y eso es exactamente
lo que tenemos en calamar
clen.
Esto es realmente genial. Ahora lo tenemos,
así que vamos a generar esto de nuevo. Esto es genial. Voy a copiar esto. Vamos a confirmar si contiene todos los automties
que especificamos Debido a que revisamos
correctamente estas partes, si realmente revisas estas
piezas, vamos a sacar esto a colación. Revisa esta parte la serialización
leer y crear vamos a mostrar que token
realmente contiene esto Si comprobamos, ya ves,
tenemos los clientes. Tenemos los clientes, los
clientes están menos etiquetados. Esta es la prueba A que agregamos y la observancia del nombre de usuario
agregamos esta. Entonces tenemos Alcance Prop 90, luego tenemos crear y
estamos con impresionante. Ahora, luego busca todos los detalles. Tomemos compañía,
por ejemplo, solo
traemos todos los detalles R, luego vamos a la baja. Fuera de nuestra jugada esto es
lo que ves por defecto. Si entras aquí y tratas de
evaluar los detalles, intentemos evaluar los detalles, vamos a consultar esto
evaluar los nueve. Entonces vas a off
luego sacan token de Berra, luego colocas
la ficha aquí. Muy bien, entonces el
token está aquí, llamemos a esto.Esto
es un error, veamos de dónde viene este
error Porque se supone que
esto realmente va a entrar. Ahora estamos colocando token de Berra. Sí, en realidad
agregamos el token, y deberíamos poder
llamarlo con éxito. ¿Cuál debería ser el
problema? Todo bien. Déjame pasar esto y solo averiguarlo y volveré contigo. Bien. Todo bien. Me di cuenta mientras
estaba copiando el token, creo que mientras copiaba el token y
agregaba
todo aquí, estaba escogiendo
el equivocado. Si bien copio el viejo, tenía algunos lesidios. Yo sólo elijo el primer sp. Lo que tenía que hacer ahora me estoy asegurando de que todo
esté despejado. Seguiré adelante y volveré a
generar el token. Genera token nuevamente.
Voy a copiar esta ficha. Ahora he copiado la ficha. Voy a estar seguro de que no hay nada aquí. Control A,
limpia todo, ahora despeja. Entonces esto ya está adentro, entonces intentemos esto de nuevo. Impresionante. Se puede ver. Ahora podemos evaluar todas las empresas
que realmente están disponibles. Como esto también está disponible, también
podríamos
tener ya esta configuración. Básicamente debería funcionar para
todos los detalles aquí. Esto básicamente también sería
capaz de recuperar esos detalles. Impresionante. Ya puedes ver que
todo está autenticado, y finalmente, probemos esto. Impresionante. Esta es una mala solicitud, la identificación de empleado que estamos
usando no es correcta. Así que vamos a conseguir una identificación de empleado
válida. Yo sólo voy a entrar aquí. Traeré esto a colación, traeré empleado y registraré la identificación de empleado
válida, al
menos ves que
realmente pasó. Por eso conseguimos empleado
inválido. Voy a recoger la
identificación del empleado y volver a TA. Cuando estás buscando lo que estamos
buscando ID, este ID. Esto voy a verificar esta identificación, solo
voy a darle a esto.
Impresionante, para que puedas ver. Esto básicamente funciona
con precisión, chicos. Ahora, siendo capaz de
demostrar realmente que la mutación, la suscripción es básicamente solo probar es compañía en este momento. ¿Tenemos alguna Heather? No, no necesitamos tener brezo. Vuelve aquí, voy a hacer esto, o hacer un Bratken o
agregar esto Creo que copié el
equivocado, así que entremos aquí. Voy a copiar esto una vez más para P. Entonces esto está adentro. Intentemos crear.
Sólo voy a crear un comping ambiguo solo para estar seguro de que
las cosas están funcionando Yo sólo lo llamaré babero B 222. Entonces sólo voy a llamar a este número de
LLC algo muy extraño para que
podamos ver que crea, voy a dejar
esto como vamos a quitarle esto. Toma mi ratón, señorita Bevins. Sólo me quito esto, y voy a añadir algunos números de
palabras aquí. Vamos a darle a esto. Todo bien. Como veis esto se
crea con éxito. Hemos podido demostrar que nuestro servidor de autoación ahora funciona como un Graph Q como
servidor de recursos, y esto es bastante genial chicos Entremos en la
aplicación y ahora configuremos todas nuestras pruebas para
usar el nivel de seguridad. Los veré chicos
en el siguiente video.
126. Seguridad en Graphql, parte 8: Oigan, chicos, es bueno
tenerlos de vuelta. Pude mostrar para la etiqueta
Mo que ahora podemos conectarnos usando un
token porque ahora aplicación
GraphQL no se está comportando como un servidor de recursos
y es capaz de hablar con el servidor de dirección y realmente verificar el token y
dar acceso a Ahora mismo, todas nuestras pruebas
se van a romper ahora mismo. Intentamos poner en marcha nuestras pruebas. Todas nuestras pruebas
deben estar rompiendo. Lo que voy a hacer,
voy a parar esto, no configurar nada. Yo sólo voy a mi prueba mis pruebas. Son las dos pruebas que tengo.
Realicemos todas las pruebas. Vamos a ejecutar todas las pruebas de ecuaciones por ejemplo.
Vamos a ejecutar esto. Voy a ver qué pasa. Oh, sé que esto no
va a ser bueno. Voy a ver
muchas
cosas rompiendo y esto se espera. Recuerden, todo, ahora mismo, esto no está asegurado, esto definitivamente
debería romperse. Esto en realidad se acerca,
quiero guiarte
a través del paso, te
veré ya ves,
esto se acerca. ¿Qué ves? Algo está pasando, algo
se está rompiendo. A ver. Estamos teniendo problemas
con la configuración de seguridad, el marcador de posición,
podemos resolver esto Todo lo que tenemos que hacer es venir a nuestra prueba y agregar aquí nuestro refresco de
lugar. Recuerda el marcador de lugar,
¿es el marcador de posición de prueba? Voy a entrar
aquí. Esto necesita ser capaz de
averiguar dónde está esto. Solo entra aquí
y agrega esto, y esto debería estar sonriendo. Realicemos de nuevo la prueba. Ejecutemos esto de nuevo
y veamos que funciona. Recuerda todas nuestras
pruebas usando realmente el perfil. Mira nuestra prueba. Si pudiera
probarte esto. Modificamos la
configuración incorrecta, ves que hay en prueba. Muy bien, genial. Se
puede ver que no todo
está funcionando. No todo
está funcionando. se encontró un objeto de autenticación No se encontró un objeto de autenticación en el contexto
de seguridad. Al parecer, no hay ningún objeto de
autenticación. Esto no está autenticado. En este video todo
lo que básicamente se está haciendo es
generar luego la autenticación. Lo que voy a
pasar por un enfoque muy sencillo que te permitirá
ser capaz de igual manera. Lo primero que voy a hacer es que voy
a entrar en mi carpeta de prueba y crear un paquete
llamado clientes. Así clientes acádicos. Impresionante. Luego dentro de mis
clientes, dentro de mis clientes. Quiero colocar a mis clientes. No quiero
crearlo directamente aquí. Quiero colocarlo aquí.
Vamos a crear esto de nuevo. Clientes. Este debe ser el mismo nivel que
API. Muy bien, genial. Entonces dentro de este Acutic
clientes config clientes. Config. Al parecer, lo que
va a ser una configuración, entonces va a
estar en configuración. Bastante genial. Bastante
genial. Bastante genial. Ahora hemos podido hacer eso. Lo siguiente que
vamos a hacer, voy a crear un Bn. Ahora voy a crear un Bin. Si eres muy consciente, con
lo que vamos a estar probando hasta ahora ha sido este probador HTTP graph co. Ahora debes estar consciente de que
existe una
versión de cliente web para esto. Si revisas la documentación, vamos a estar apegándonos
a la versión HB Client. Así HB **** versión. La versión HB Client,
tiene algo que se llama HTP graph QL tester Entonces, si revisas esto,
esta es una interfaz. Si revisas toda
la implementación, mírala críticamente. Contamos con probador HTP Graphco. Contamos con el probador
Grapadora de toma web. ¿Ves? Entonces tenemos
varias variaciones. Así que quédate con el probador de cuidado
HB Graph para ayudarnos a lograr
esto. Todo bien. Pero dicho esto,
así que sigamos adelante y luego empecemos a crear
cosas. Entonces me voy a ir. Estoy frenando voy a cortarlo estando bien
entonces voy
a crear un
HTP Graph Kyo Esto es muy chulo. Hm va a llamarlo HTTP
graph quo tester. Después las líneas web. Ahora necesitamos clientes de pruebas web. Ahora, en realidad recogí esto de la documentación
oficial, WebTest, clientes Bin, luego tenemos los
clientes WebTest, luego bind server Nosotros tenemos esto. A qué
servidor estamos vinculando así que vinculamos al servidor, servidor tendrá un Bye UL. Esto es genial porque
es exactamente lo que necesitamos. Adiós ZURL entonces encabezado predeterminado. Voy a darle
un encabezado por defecto, y aquí es donde
las cosas se ponen interesantes. El encabezado será encabezados HTTP, encabezados CP de autorización de
punto swing. Recuerda, estaremos
usando el token de Berra. Voy a dejar
esto fuera por ahora. Voy a dejar
esto fuera a partir de ahora. Volveremos aquí,
menos implementar, así que ahora vamos
a devolver HTP, IP esto es punto
crear esto funciona Crear. Básicamente,
esto es lo que necesitamos. Ahora necesitamos entonces
generar el token. ¿Cómo obtenemos el token? realmente
crear algunos detalles. Yo lo haría, voy
a usar un disco. Voy a usar un registro público,
un registro público. El registro de números también es un DTO. También utilizamos Lumbak. Esto en realidad
te daría exactamente los mismos detalles. Respuesta del token de acceso,
creo que esto tiene sentido token de
acceso respons.
Es una clase. Es un registro, registro ¿cuáles son los parámetros
que vamos a necesitar? Los parámetros necesitamos
una cadena, token de acceso. Canta como ficha, ¿de acuerdo? No es necesario el tipo
de token de cadena. Creo que esto es
básicamente todo lo que necesitamos. No quiero agregar detalles
extra que no necesito. Entonces aquí, entonces
cerrarán con esto, bien. Ahora tenemos estos detalles. Ahora, cuando nuestro token de Access
va a regresar, estamos seguros de que va
a volver en este formato. Jason propiedad. Vamos a dejar que la propiedad JCN, JacinPperty para vincular esto para que sea
un acceso bajo ScoetKen JacinPperty para vincular esto para que sea
un acceso bajo ScoetKen.
Verifiquemos eso. Si revisas esto, verás Acceso bajo
ScoetKen y tipo de token Estas son las cosas que
estamos buscando. Como UnderScoetken, como a
eso se le llama token. Eso es lo que estoy colocando aquí. Por aquí, esto también, vamos a duplicar esto aquí, y esto reemplazará
con el tipo de token. Vamos a obtener
el tipo token. Bien, así que coloca
el lucio token. Bien, terminamos
con el primer paso. Ahora el siguiente paso, vamos
a hacer una llamada HTTP. Lo bueno de la
primavera tres es que tiene st cliente incrustado. Básicamente solo hendidura es
igual que la plantilla del oeste. Paso sigue ahí, sólo
voy a ser más elegante y
usar st clientes. Voy a convertirlo en privado. Harás un
derecho privado yo puedo ser un prius. ¿Privado? Creo que lo haremos estático. Pero, déjeme dejarlo ahora. Volveremos aquí.
Volveremos aquí para arreglarlo. Como respuesta token ahora, ¿verdad? Entonces llamémoslo obtener la respuesta del token
AS. No, no
tomará ningún parámetro. Entonces vamos a
tener un mapa de múltiples valores. Mapa de múltiples valores, sí, voy a convertirlo en un mapa
multivalor vinculado. Ahora bien, ¿por qué estoy haciendo esto? Recuerde, se trata de una URL, X URL,
forma de guión de guión, URL de guión codificada Para ello, para imitar esto, va a estar usando esto Así es como se puede hacer eso. Entonces entonces usas yo lo
llamaré datos de formulario. A partir de datos. A partir de datos. Genial. Aquí es donde
necesitamos tipo pistola. Esto coincide con las credenciales de
cliente tipo armas, luego tiene alcance en la identificación. Solo estamos simulando exactamente lo
mismo que está haciendo Postman Voy a hacer a partir de datos, de datos, ID de cliente. Vamos a ver esto
para hacer que necesito esto? No, aguantemos. Entonces vamos a poner
datos firmes del Iden punto, punto. No, no quiero que d. Entonces pongo mi alcance alcance
mi alcance es ID abierto. Abrir ID. Todo bien. Se trata de
chicos bastante chulos. Es bastante genial. Entonces con esto,
volveré a terminar eso hasta
tener s clientes. Familiarizado con st
cliente como funciona el descanso, solo traiga los mejores clientes. Descansar a los clientes. Clientes. Entonces eso crea. Me gusta la
línea de descanso que crea. Entonces podremos entonces absorber
esto y traerlo. Después, regresa. St líneas, va a ser un
post va a ser un post URI. Vas a pasar en el URI. Entonces cuerpo, cuerpo, luego cuerpo
sería entonces formar el calentador. Después la cabecera y la cabecera, vamos a pasar
en la cabecera. Recuerden que vamos a pars
en cabecera, esta parte aquí. Mira esto. Esta parte aquí, encabezado. Esto es muy importante. Brezo, usando básico, va
a ser cliens y secreto. Esto también es importante.
Tienes que hacer lo mismo aquí. Heather, entonces haré HTTP. Y eso es la autorización de puntos. Entonces vamos, no hagas básico.
Va a ser básico. Entonces más, van a hacer una base 64, una base 64 aquí Java, puntos, obtener codificador, luego simplemente codificar a cadena,
codificar a cadena. Bien. Así que eso codifica una cadena. Déjeme tomar esto.
Tengo un temporizador ahí. Eso no se nota realmente,
pero voy a tomar esto. Vamos a codificar una cadena y ¿qué estamos
codificando para cadena? Recuerda, en
realidad estamos codificando. Baje esto, traiga su punto aquí, y
terminemos con esto. Codificamos, entonces estamos
pasando en este tipo, estamos pasando en los clientes. Entonces los clientes
es muy importante. Chicos, es muy importante. Los clientes. Entonces además agregamos en esto porque es como
hacer lo básico seguro
que ya sabes. Bien, entonces los puntos obtienen bytes. ¿Todo bien? Vamos a
obtener bytes. Todo bien. Entonces, si obtienes bytes,
puedes ver lo que
da tan directamente, tiene un codificador
predeterminado codificado y los conjuntos de caracteres codificados, en
realidad
nos da el valor predeterminado así que no
necesitamos
hacer nada más Entonces esto es realmente
genial. Bien, entonces ya ayudamos. Entonces tenemos que establecer el encabezado. Otro encabezado y el encabezado, necesitamos establecer el tipo de contenido. Tipo de contenido. El tipo de contenido,
utilizamos la aplicación, las aplicaciones slash Pueden copiar aquí, chicos, realidad no
necesitamos
tranvías nada a este tipo de aquí. Este lo necesitamos. Tipo de contenido, no me permite copiar. Yo solo yo esto. Yo
sólo recojo eso. Sólo recoge eso y
voy a añadir esto aquí. Este video se está haciendo muy largo. Volveremos en el siguiente
video para completar esto. Los veo en el siguiente video.
127. Seguridad en Graphql, parte 9: Oigan, chicos, genial
tenerlos de vuelta. El video se estaba haciendo muy largo, necesito detenerlo rápidamente para que podamos
proceder a partir de aquí. Todo bien. Ahora tenemos esto. Es bastante genial.
Es bastante genial. Luego continuamos diciendo entonces el recuperar y
recuperarlo luego recuperamos un cuerpo El cuerpo va a ser
ases token dot class. Bien, así que ciérrala. Ahora bien, ¿a qué URL
estamos llamando AA way? Estoy seguro de que ustedes lejos estamos llamando llamando a
algo que ya saben? Entonces llamamos al HTP. Bien, HDCP, estamos llamando a un servidor de
autorización más fresco Van a ser anfitriones locales. Anfitriones locales. Es 99. Ahora, ten cuidado aquí. Para slash token. Esto es exactamente lo que
cording recuerda esto es oba odiando directamente. Entonces este es el Collins soviético. No pienses que Jake WKszoba Collin porque queremos hacer esto exactamente.
Todo bien. Entonces, solo reemplaza esto nuevo solo para estar seguro de que
no cometí ningún error. Todo bien. Entonces esto es básicamente
todo lo que necesitamos. Ahora que tenemos esto,
ahora tenemos a este tipo, estamos en condiciones de meter esto. Ahora tenemos un token, entonces
podríamos venir aquí a decir, Asset token, obtener AS token, hacer esto, que es un
tipo token, que es portador, darle un espacio, espacio, luego plus, obtener un
token, Asset token. Todo bien. Esto es
todo lo que tenemos que hacer. Ahora hemos creado esto
rápidamente ejecutar una prueba. No voy a
terminar la prueba. Sólo queremos ver si funciona. Solo queremos ver si esto
realmente genera el token. Si llamamos a esto,
¿esto nos da un token que necesitamos básicamente Esa es toda la
idea. Queremos estar seguros de que esto funcione con precisión. La manera de demostrar realmente
que vamos a hacer esto público voy
a hacerlo público, y voy a probar CLT, ¿verdad Voy a probar CLT para ver si esto funciona como debería, ¿
verdad Entonces, para simular eso, ¿cuál es la mejor manera de
simular eso? Echemos un vistazo a eso.
Echemos un vistazo a eso. Bien. Bien,
veamos si tenemos esto. Bien. Bien. Veo
lo mejor que
en realidad podríamos simular esto. A ver, a ver, a ver. Podríamos probar Al desde la aplicación para ver si funciona, pero está bien poder
ver si
realmente podemos obtener los detalles que
realmente necesitamos de aquí. Bien, así puedo
crear otra clase. Yo solo creo otra
clase aquí. Sólo voy a llamarlo prueba. No voy a empujar
push test solo una prueba, entonces voy a llamar a este
PSVM simplemente secreto esto, luego voy a mover este código, todo
este código.
Lo muevo aquí. Recuerden esta prueba chicos, prueba solo queremos
verificar que esto está funcionando. Cuál es el problema aquí. Voy a despegar
SensiBst funcionaría exactamente como queremos que
elimine esto Muy bien, entonces voy a
entrar aquí, Entonces haré SOUT
que sería impreso, luego haré esto Dos esto es público.
Sí, así que entiende esto. Eso es tipo de token. Lo siento, detén esto.
Eso es corbata simbólica. A ver. Token de acceso. ¿Por qué te estás quejando?
El no estático no puede ser núcleo que es muy correcto. Eso
es muy correcto. A ver. ¿Cómo
señalo esto en realidad? Porque esto debe ser accesible. Esto debe ser muy accesible. ¿Y si pongo aquí una estática? Una estática privada. Bien. Entonces este tipo está
diciendo que no es necesario, podemos quitar la estática
porque redundante para en bien, entonces puedo poner en una estática aquí. Creo que
prácticamente deberías. Vamos a probar a estos chicos. Vamos a probarlo.
Déjame estar seguro de que mi servidor está activo. Bien, entonces mi alteración ahorra en funcionamiento,
así que lo estamos golpeando. A ver si
surge. Podemos ver, somos capaces de obtener los
detalles si he terminado. Esto prácticamente funciona. Entonces estamos seguros de que esto está funcionando, somos capaces de obtener los detalles. Significa que nuestra
implementación funciona. Yo sólo voy a seguir
adelante y eliminar esto. Yo sólo quería
mostrarles que funciona. Permítanme borrar esto.
Ahora esto se ha ido. Ahora estamos seguros de que
esto luego
inyectaría esto en
el encabezado predeterminado. ¿Ese encabezado predeterminado en realidad
se llama así? Todo bien. Con eso, entraremos ahora. Si ahora te metes en los pads
e intentamos seguir adelante, ves que ya ve esto. Y entra de nuevo, trata de ver
al ser, ya
ves que encuentra
este ser directamente. Por el bien de la consistencia, probablemente
podría elegir esto o solo por ello solo
por matemáticas un poco más. Entonces podría entrar. Prácticamente podría entrar y
probablemente simplemente llamar a esto. Algunas personas no se confunden.
¿De dónde viene esto? Yo sólo podría nombrar esto. Solo voy a elegir esto para decir, Oye, quiero que uses nuestra
implementación de esto. Voy a llamar a esta parte, nada cambia, así que sólo
voy a encomiar esto. Sigo siendo exactamente lo mismo. No hay cambio,
B es un estado. Recuerden, chicos, es un estado. Esto ya inferiría, Oye, qué bin está disponible
y para usar esto Solo estoy haciendo estas dos
distinciones porque si usas esto antes de
implementar esto, podrías obtener algunos errores Por eso
en realidad lo estoy comentando para
que sepas la diferencia Voy a colocar voy a colocar lo voy a
colocar para hacer aquí o
más bien unas notas voy
a decir esto usa esto
estrictamente para su uso estrictamente antes de que
se introdujera el token de acceso. Dije antes de seguridad,
antes de seguridad. Antes de que se introdujera la seguridad. Todo bien. Voy
a hacer lo mismo, copiar a este tipo, ¿no? Bien, ahora, chicos, tenemos
todo lo que básicamente necesitamos. Ahora, hay una cosa más. Ahora bien, si nota esto,
esto está tratando de llamar a este servidor bund, comuníquese este servidor de compra y luego
para luego ver si realmente puede conectarse, entonces vamos a tener
las cosas en funcionamiento Lo que voy a hacer,
vamos a poner en marcha una prueba. Esta es la diferencia chicos, vinculándolo a un servidor, un servidor que
ya está en funcionamiento. Entonces voy a poner en
marcha mi aplicación, eso es una cosa que debes
saber porque también hay otra manera de tener realmente esto configurado porque
si golpeas esto, si haces clic en esto, ves que
ahí se enlazará al servidor, eso verá bind al contexto de la
aplicación por algo que
ya está disponible. Entonces estoy usando bind to server, así que comencemos
la aplicación. Y luego se inicia
la aplicación. Recuerdo, ¿en qué se está ejecutando
esto? Déjame estar seguro. Echemos
un vistazo a esto. Bien, entonces esta
aplicación se está ejecutando. Entonces hagamos nuestra
prueba. Vamos a ejecutar esto. Vamos a ejecutar esto. Bien,
entonces esto se está ejecutando, me metí en el punto principal. A ver, ¿
funciona esto? ¿Funciona esto? Entonces llamando a esto scripting, viendo, ¿se conecta?
Oh, sí, conecta. Impresionante. Como puedes ver
esto funciona con precisión. Te mostré antes que
esto no funcionaba antes, pero ahora todo está
funcionando con precisión, así que solo voy a seguir
adelante y ejecutar todas las pruebas. Yo solo ejecuto toda la
prueba y vamos
a llegar a ver que todo está
terminado con éxito. Bien, entonces, ¿cuál es el problema
aquí? Vamos a confirmar. No me está permitiendo
correr todo a un lado para
recogerlo uno por uno. Por el perfil que establecemos, recuerda el profgizar
el El perfil no pudimos establecer
el perfil en esta etiqueta, solo
pudimos establecer
el perfil aquí. Esto estaba funcionando con precisión. Solo sigue adelante y
solo ejecuta este IL. Esto realmente está funcionando y
este último tipo es trabajo se introduce en token
y nuestro token básicamente funciona como
debería. Todo bien. Esto básicamente también debería
funcionar sin ningún problema. Muy bien, chicos. Con esto, realidad
hemos podido probar este extremo para terminar con otra
seguridad a esto. Ahora su
aplicación gráfica QL es segura. Los veo en el siguiente video.
128. Graalvm local, parte 1: Oigan, chicos, genial
tenerlos de vuelta. Todo bien. En esta sección se trata de construir
Gray e imagen a nivel local, Cómo construir salsa
e imagen localmente, y en eso es en lo que nos
concentramos en este video Todo bien. Entonces, para entrar
realmente en ello, necesitamos actualizar una de nuestras dependencias para
poder actualizar realmente nuestro
arado de trazo de dependencia queremos tener esto realmente cableado y
¿cómo hacemos eso? Muy fácil. Cómo vamos, tenemos que
ver antes que nada, ya
tenemos esto,
tenemos un paquete. Normalmente, lo que hacemos es
simplemente hacer un paquete VN, y eso básicamente creará y básicamente creo
un Jafle para ti, que luego puedes poner luego puedes luego en tu lata luego
integrado en una imagen de Docker, luego usarlo para realmente hacer y eso básicamente creará
y básicamente creo
un Jafle para ti,
que luego puedes poner luego puedes luego en tu lata
luego
integrado en una imagen de Docker,
luego usarlo para realmente hacer
algún trabajo. Eso
básicamente va a funcionar. Esto va a fallar porque
creo que establece el perfil, básicamente simplemente omita el paso, que estas pruebas se saltan. Voy a saltarme la prueba y esto debería poder
realmente obtener los detalles, voy a obtener el
archivo JR que necesitamos. Pero sin embargo,
en realidad quiero seguir adelante. Se puede ver que tenemos
un archivo Ji que está muy disponible que podríamos
desplegar y empezar a trabajar. No obstante, quiero mostrarte
la belleza de usar Graph VA. En mi curso anterior
en mi primer curso, realidad
mostré todo el
detalle de cómo funciona eso. Básicamente podrías
comprobarlo,
que es el módulo de resorte, que es el módulo de resorte, uh más como si pudieras hacer una transición
real de microservicio o microservicio monoli
a
microservicio a Tengo ese módulo de resorte. Ese es el nombre
de porque Monoli al microservicio En este parque
te voy a mostrar cómo usar realmente para construir realmente construir imagen de Gavier y en
la que luego puedes construir,
luego
puedes pasar a la imagen de Docker
e implementarla
en un clúster de Cuperts Todo esto lo van
a hacer en este curso. En primer lugar, he podido mostrarte cómo
simplemente obtener el Java, solo haz NBN este es paquete
VN y
solo haces esta prueba de salto
y obtienes todo en él Ahora para seguir adelante, me voy a
mover todo el camino a mi WSL. Tengo Ubuntu instalado, que es WSL en Windows Ahora bien, ¿por qué no estoy usando Windows? La forma en que funciona GAVIN, si haces alguna investigación al respecto, descubres si usas GAVIN el sistema operativo que estás construyendo construyes una imagen
Nativa para ti Si estás ejecutando en
Windows para darte un EXE, estás ejecutando en Linux, en
realidad te da
un ejecutable. En MAC, también
te da el ejecutable en el Mac
lo mismo que hacemos aquí. Ahora mismo, quiero realmente construirlo en un ejecutable de
Linux. Estoy utilizando, en realidad estoy utilizando, en realidad estoy
utilizando huesos. Te voy a mostrar enseguida el stro de Linux que estoy usando. Entonces puedes ver exactamente
cómo es, ¿verdad? Para que puedan ver,
en realidad estoy usando Ubuntu. Entonces esto es lo que voy
a ser. Entonces muestran, voy a conseguir una imagen de Linux. Entonces ahora para construirlo, hay algunos conjuntos de comandos que
necesitamos ejecutar físicamente, y eso es lo que voy
a mencionar en unos pocos. Bien, así que voy a
añadir un comando. Entonces esto son comandos Pero solo di VN luego P nativo. Entonces en realidad
ejecutamos esto. Esto básicamente solo funcionará. De hecho, somos capaces de
w esto con precisión. Entonces el paso de saltarse, estoy diciendo corriendo paralelo Todos estos básicamente no son necesarios si
no quieres agregarlo, entonces esto básicamente solo te
da más seguro al azar. Pero también te saltas esto y este es el comando básico
que necesitas ejecutar. Entonces si y luego omita esto. Esto lo vamos a
hacer, pero esto va a
funcionar ahora porque no hemos agregado
algo muy crítico. Con eso, vamos a
comenzar Spring Dot IO. Vamos a iniciar un punto de primavera IO para obtener realmente una imagen nativa. Así que vamos a hacer
es escribir GravyN. Cuando en realidad estamos
tomando Galvin, en realidad
ves colocando a Maven, pones tu versión Java y colocas mi número de
una versión Java, usar Java 21 22 no
debería hacer ninguna diferencia
porque el plugin Ahora bien, si entras aquí
y te desplazas hacia abajo, esto es lo que agrega.
Esto no es un punto. Esto es lo que agrega
en, este plugin. Este plugin es muy
esencial, ¿verdad? Entonces este plugin.
Elige este plugin. Escojo este plugin y lo voy a
añadir a esta parte, pero. Tienes plugins,
así que voy a agregar esto aquí. Todo bien. El otro plugin que
ves ya está disponible, que es el plugin spring
boots moving, que era la otra
opción que vimos Springbots moviendo plugin
ya tenemos eso ya Ahora teniendo esto
ya adentro ahora entonces haz esto para traer solo para traer este Btu.
De hecho lo tenemos adentro. Esto ahora está en, solo
verificas o plugin, inicia sesión. Si nos fijamos en esto,
tenemos Nativo, ya
tenemos Nativo aquí. Entonces puedo ejecutar esto, pero
antes de hacerlo, quiero comprobarlo. Si tengo maven, recuerda, podrías usar Maven
ya instalado, ya
tienes maven aquí Podrías simplemente entrar y nosotros solo entramos y
hacemos un MAVINNWT también funcionaría,
lo que quieras usar Ahora estoy construyendo, pero
no quiero construir con W. Quiero usar mi experto en sistemas. Voy a comprobar si
Maven está instalado aquí. Versión. Bien, entonces
tengo MVN instalado Tengo Java 22. Entonces
esto es bastante genial. Básicamente todo lo
que necesitamos, ¿de acuerdo? Bien, así que en realidad
revisas la primera sesión, creo que hice una forma
detallada de cómo configurar
realmente MVN si
estás usando el BSL como yo, así podrías saber cómo configurarlo
totalmente Si estás usando Linux, el BSL es básicamente lo
mismo Bien, entonces voy a
ejecutar este comando. Todo bien. Entonces este comando va a llevar
mucho tiempo, ¿verdad? Dependiendo del núcleo de un sistema, necesito
mencionarlo. Lo que voy a hacer,
voy a hacer una pausa. Si encuentro algún error, los
usaré para
mostrarte el error, luego lo arreglaré y
probaré el gb ahora mismo. Voy a hacer una pausa
hasta que usara imagen. Los veré en la próxima. Los veré
una vez que esto esté hecho, no en el siguiente video. Los veo una vez
hecho esto, ¿verdad? Todo bien. Entonces esto está hecho. Somos capaces de construir
con éxito. Entonces esto es básicamente
lo que parece. Si puede ver, mi procesador básicamente
estaba funcionando
en un nivel bajo. Así que tenía cerca de 5.79
gig disponibles. Para poder ejecutar
el GAL Vamimage se podía ver cuánto tardó Tomó 25 minutos. Por lo que debes asegurarte de
tener muchos recursos para ejecutar esto. Bien. Entonces, si realmente inspecciona a la derecha y va
al objetivo por
oder para que pueda ver que
entonces tenemos el caso GaviM Entonces este es el gravimeecutable
que necesitamos, ¿verdad? Entonces hagamos más vamos a
darle un poco más de contexto. Yo clados. Yo haré LL Gaver Cox G gráfica Q o Gráfica
Q gráfica queer Cs. Bien, para que veas
que es ejecutable. Recuerda a U GO, propietario del
grupo de usuarios, ¿verdad? Así ejecutable
ejecutable, aecutable. Entonces antes de continuar,
voy a configurar mi perfil para que sea local. Diré expot spring
underscore perfil. Perfil igual a local, ¿verdad? Si entonces hago un eco, entonces hago un eco y hago
un resorte, y hago primavera. Perfil. Vamos a ser fusilados ahí. Bien, entonces procede
local. Todo bien. Entonces lo que voy a hacer
entonces lo siguiente que voy a hacer es que
voy a poner en marcha mi VM GA. Voy a poner en marcha
lo que estoy diciendo GA VM. Entonces voy a poner en
marcha en esto. Voy a poner en
marcha este servicio. Así que asegúrate de que esté funcionando
y eso debería ser accesible desde las otras
guías del WSL ¿Bien? Entonces eso es en realidad
si eso es lo que está sucediendo, entonces B realmente inicia la
aplicación con éxito, no
obtendré ningún problema de
conexión a la base de datos. Entonces esto en realidad se inició. Entonces, comencemos
la aplicación. Tengo que hacer es esta gráfica QL. Costo. Vamos a ponerlo en marcha. Esto debería poder escoger
el perfil. Todo bien. A ver. ¿Elegimos tu perfil? Elegí el perfil,
pero no pude
determinar porque en realidad también estaba usando al otro tipo. Pero pude
escoger este perfil
y esto debería haber
sido suficiente para comenzar. Toda la otra razón podría ser URR, por lo que no
pudo encontrar esto No sabía
cuáles usábamos en realidad. Yo estaba buscando esto, que en realidad no
era jugador. Voy a ver si realmente
podría ponerlo en marcha y hacer esto accesible
desde aquí, ¿verdad? Todo bien. Si lo miras, creo que básicamente hemos
resuelto el tema de verdad. Si miras esto, recuerda, estaremos usando Docker Compose porque estamos usando
Docker Compose, como resultado, hemos
estado teniendo que
usar esto todo este tiempo Por eso estamos
teniendo este problema y en realidad no
podemos conectarlo
porque no pueden encontrar una URL. Recuerda que en producción
cuando construyes una imagen, Docker Compose ya no está
disponible para que la uses Qué podemos hacer y cómo en realidad
podemos mitigar este tema, solo
vas a lo mismo, cómo hicimos esto, copiamos esto. Ahora, cópielo en su copia
local esto en local. ¿Verdad? Todo bien. Entonces de esta manera, esto
está entonces disponible. Entonces, una vez que es capaz de recoger
realmente, bien, use Localhost 5432. ¿Bien? Entonces así es como iba
a poder determinar. Entonces, si no podemos encontrar
Localhost 5432, localhost, entonces significa que realmente
tenemos que usar la IP Eso dice Cal.
Eso es para usar la IP. Bien. Entonces con esto, los
veré chicos
en el siguiente video.
129. Graalvm local, parte 2: Oigan, chicos. Muy bien,
genial tenerte de vuelta. Bien, así que voy
a reconstruir la imagen. Voy adelante para
reconstruir la imagen. Recuerda que hicimos este cambio
hicimos este cambio en el último video después de hacer este cambio debido a la redacción de
docker que estamos usando Así que eso no se pudo encontrar cuando la imagen fue construida realmente. Yo hice un cambio. Entonces ahora
vamos a ejecutar la imagen. Entonces cuando lo ejecutamos,
se te ocurre un nuevo error. Antes de ahora, ya
inicié la base de datos, así que la base de datos está arriba diciendo
el nuevo error y el error está diciendo esto, no se
puede encontrar esto. Ahora bien, estás diciendo
lo que básicamente dices. Graph QL o la imagen construye, UnitVM no sabe
cómo interpretar En realidad tenemos que
contarlo o registrarlo. Por eso dije
registrar la clase
agregando esto para la
reflexión adyacente. Podrías hacer esto,
hay una manera crear un guión de reflexión, configurar la clase JCN
y configurarlo ahí, pero hay una manera de
hacerlo programáticamente Voy a elegir el enfoque
programático. Todo lo que hay que hacer, incluso para el enfoque programático,
hay dos formas Lo que hay que hacer es crear la configuración o crear la clase
I cred Yo lo llamaré gráfico registro QL. Llámalo de cualquier manera. Registrar. Entonces esto implementará
el registro de tiempo incorrecto, tiempo
incorrecto calienta, el tiempo en el
registro en la configuración Esa es la configuración. Todo bien. Entonces cuando implementemos esto, esto realmente nos
dará este método. ¿Puedo elegir este método y
decir sugerencias punto reflexión. Registra el tipo, luego
registra el tipo, para que la imagen pueda saber
dónde encontrarla. Después colocamos el
tipo exacto que falta, que es un UUID Si lo miras correctamente, esto se queja de UUID Voy a escoger
este exacto plus. Pon esto en. Está
buscando la matriz UUID ¿Está bien? UUID. Se supone
que esto viene de Java UT. Digamos entradas, Java util, UUID, luego pasaré
en la clase o pasaré Esto es todo lo que tengo que hacer. Esta
es una forma de hacerlo. Si haces esto, si
realmente lo pones de esta manera, entonces tienes que ir
a tu aplicación, pero aplicación, un
resorte con aplicación, luego entradas, hazlo en entradas. En las entradas pistas de tiempo de ejecución, luego agregó el registro QL
gráfico,
la clase de registrador QL gráfico Ahora bien, esta es una manera muy
hermosa de hacerlo. Ahora bien, este es el paso uno. Si quieres hacerlo de esta manera, esto funcionaría, alternativamente. Entonces lo que voy
a hacer, voy a configurar esto,
limpiar esto. Alternativamente,
podrías simplemente ir a este tipo que ya es cualquier clase ya
tiene una configuración. Yo sólo voy a decir pregunta reflexión. Eso refleja refleja registrar la
reflexión para la vinculación. Si abres esto,
ves que toma clases. Entonces puedo poner en el valor, después pongo el valor, que va a ser un
array, y pongo en este UID Entonces esta la clase. Entonces esto está bajo ola.
Entonces, una vez que haces esto, no necesitas agregar ya no necesitas agregar
las pistas de tiempo de ejecución, ¿verdad? Estas son dos formas de realmente. Voy a dejarlo adentro por
el bien de referencia. Voy a dejar esto
en aras de referencia. Nosotros tenemos esto. Podríamos hacer esto. Esta es una
manera de hacerlo. Yo me separo. El segundo tipo es
agregar el registro. Una vez que agregue el registro, entonces debe
importar obligatoriamente la
pista de tiempo de ejecución y agregarla Estas son dos formas de lograrlo
realmente. Todo bien. Lo que voy a hacer es que voy
a registrar esto. Voy a construir y
volveré una vez que use la imagen para
que veamos cómo resulta esto
en realidad. Nos vemos una vez que se haya construido la
imagen. Oigan, chicos. La imagen está hecha. He podido
ver la imagen. Vamos a probar esto. Recuerda la última actualización
que hicimos para verificar
realmente habilitar el último
error que obtuvimos para la ruta ID. Eso es exactamente esto
para sacar esto
a colación para mostrar exactamente lo que agregamos como repaso en
unos minutos Bien, entonces le mostré a esto
que esta es una alternativa. Si utilizo el patrón de registro donde implementas el
registro, el agrego una pista. Pero también mostrar que podías
hacer la alternativa y la alternativa era
en realidad la alternativa era simplemente
ir a tu gráfica cualquier clase de configuración y hacer registrar reflexión
para encuadernación. Y luego colocas a
cualquier clase que se esté quejando de
que necesite una reflexión Solo agrégalo y eso va a estar bien. Y lo mismo
que he hecho aquí. Entonces, si solo voy a
ver esto ahora mismo, solo enciéndalo y
veamos qué pasa. A ver. Impresionante. Se puede ver que esto
construye correctamente. También un perfil
realmente funciona porque en realidad
hemos establecido
el perfil aquí. Ahora que esto está funcionando, entonces
puedes seguir adelante y probar, probar puntos finales para ver
que todo está funcionando Yo sólo entraré aquí y solo llamaré a mis puntos finales
y esto es 80 80 Vamos a ir a
cualquier d puntos finales. Voy a ir a mi consulta básica y
ellos sí obtienen todo el contenido. Al parecer, esto debería ser 500. Veamos cuál es el error. Ahora bien, este es el error y
veamos cuál es el error. Vamos a verlo correctamente. Yo digo, no se pudo
decodificar JWT, ¿verdad? Debido a que no hemos
iniciado el servidor JWT, estoy seguro de que entiendes
la razón por la Entonces es bueno que podamos
ver ese error. Entonces,
vamos a traer esto. Vamos a traerlo. De hecho voy a poner en
marcha mi servidor. Entonces este es el
servidor de aquí mismo. Entonces, pongamos en marcha el servidor de
autorización. Y eso viene Impresionante. Eso ya está arriba. Ahora,
volvamos a ejecutar esto. Creo que ya
tenemos un token incrustado. El token sigue siendo laxivo que
debería funcionar . Si no,
no va a funcionar. Bien, hagámoslo. Bien, así que seguimos obteniendo el mismo error y vamos a confirmar
cuál es el error. Bajamos. No se pudo recuperar los JWK esta bien,
solo veamos la hora El ve bien. No se pudo recuperar JWK porque conexión se niega, HP localiza Entonces la idea detrás de
esto es que esto podría
estar
buscando recordar, estoy usando WSL Entonces esto podría
ser potencialmente un problema
porque está tratando ver dónde localizarlo desde su incapacidad de encontrarlo
realmente. Entonces, la alternativa que podríamos usar la alternativa
que podríamos usar es ejecutar
realmente este servicio directamente
dentro de esta parte también. Entonces lo ve como un anfitrión local. ¿Bien? Entonces lo que voy a
hacer, voy a detener esto. Voy a entrar
aquí, ¿verdad? Voy a crear este pad, luego navegaré por estos
pads en los proyectos, recortaré FNT luego navegaré por esa parte y podremos
iniciarlo realmente Por lo que este barco se pondrá en
marcha en este WSL en particular, y debería poder localizarlo
potencialmente Todo bien. Con eso, te
veré en el siguiente video.
130. Graalvm local, parte 3: Oigan, chicos. una cabeza para hacer exactamente
lo que acabo de decir navego hasta la
carpeta donde esto
realmente se está ejecutando desde mi WSL, y
realmente pude ejecutar esto Si te mostrara, estos son
los caminos donde está mi proyecto, estos caminos acabo de ejecutar las botas de guion de primavera Mving y acabo de
sacar
esto directamente a colación Voy a permitir que esto corra y ya lo
verás subir. Mientras se acerca
esto, entonces
sólo prepararé a mi cartero
para obtener la ficha Conseguiré que mi cartero
consiga la ficha. Así es como
logramos el token. Entonces voy a llamar a esto.
Asegurémonos de que esté arriba. Se puede ver que está arriba.
Llamemos al token. Podemos obtener la ficha.
Voy a recoger esta ficha. Voy a ir a mi gráfica QL, después voy a los OT
y voy a cambiar esto Recuerda, tienes que
hacer Control A, quitar todo lo demás. Mi el primer problema que tengo agregando esto, vamos a
ejecutar esto de nuevo. Impresionante. Se puede ver que tengo esto funcionando en una imagen nativa. Es una imagen nativa y
esto funciona con precisión. Esto funciona con precisión. Verán, esta fue la última llamada que se hizo a la base de datos, y en realidad pude
simular esto localmente. Bien, en el futuro, lo que vamos a
hacer ahora mismo es que en realidad
voy a
ir entonces por un camino de CICD Para poder realmente
traer esto. Mira cómo configuras, estás usando la acción Git
para Github o Gitlab Sólo voy a pasar por un proceso. Ahora, todo lo que necesita
hacer es comprender el proceso que pueda simplemente replicar
esto en su entorno Después docorizaré la imagen
y empujaré la imagen a Perdón por Docker Hub. Luego sacamos de Docker
Hub y básicamente
lo ejecutamos en una combinación de
escritorio Docker local Entonces ese es el plan en el
futuro. Todo bien. Entonces, para envolver rápidamente este video antes de que terminemos este video, entraré rápidamente aquí y luego agregaré los detalles que necesitamos
para poder mostrarnos si es para la verificación de
vivacidad
y la verificación de preparación
que es muy necesaria, entremos y
realmente hagamos eso En realidad estoy aquí, así que en realidad
estoy aquí. Lo que voy a hacer,
voy a añadir eso. También lo siguiente que
vamos a agregar,
recuerda, vamos a ser
dueños de esto localmente Si vas a
realmente entonces mudarte a Cuberti estar en
cosas como Lo que he hecho es que ya
he seguido adelante para
agregar algunos detalles en. Lo que voy a hacer es que
vamos a traer esto
uno por uno. Eso lo he escrito en alguna parte,
así que solo trae esto. Pero antes de traerlo, veremos que
esto se quejará forma natural. Esto se quejará. Y la razón por la que
esto no va a funcionar es porque no tenemos
nada que se llame actuador. Entonces para que esto funcione, se debe incluir una dependencia
llamada actuador. El actuador es lo que
realmente proporciona la verificación de vivacidad y la verificación de preparación
, el popó de vivacidad
y el GuidInssSpoop Entonces hago actuador. Así que también
podrías buscar esto en stardospring dot IO y esto estará disponible.
Entonces voy a hacer esto. Esto está bien. La
dependencia se está cargando. Si
revisas dependencias, está resolviendo. Estoy viendo ahora
se ha resuelto. Ahora si revisas
mirando esto desde aquí, verás que
ahora tenemos actuador. Se puede ver que el
actuador ya está ahí. Ahora volvamos a
esta configuración. Se puede ver esto automáticamente
solo resolver diciendo, Oye, ahora
entiendo lo que esto significa porque proteicamos
la aleta adecuada. Ahora voy a replicar
esto y voy a llamar
a este Docker, Docker Este es el
que usaremos para Cuberttis podría
igual que ahora hacemos todo Ahora que tenemos esto, hay
que cambiar algunas cosas. Nuestro nombre de usuario podría cambiar, así que voy a
llamar al nombre de usuario. Voy a llamarlo nombre de usuario. Entonces para la contraseña, llamémosla contraseña. Vamos a mantenerlo así que
digamos DB nombre de usuario, contraseña de
DB, creo
que eso va a ser mejor. Ahora bien, este host local
ya
no será publicación local porque
probablemente esté usando alguna IP. Llamaré a este anfitrión y lo
llamaré caliente Bien, entonces llamaré a este nombre db basado en el nombre
que realmente creamos. Voy a llamar a este
nombre db. Todo bien. Entonces esto es genial. Ahora para esto, esto también podría cambiar
potencialmente. Voy a segar
una propiedad aquí, en caso de que necesitemos cambiar esto, llamaré a
esto llamaré a este servidor de puntaje de nutria , host de
subrayado Tuner score server
underscore Host, entonces también podemos mantener un 099 porque probablemente
vamos a reportarlo en un local, pero solo voy a establecer esto por conveniencia, di ts underscore server
underscore pots Todo bien. Entonces esto se
mantendrá. Esto no va a cambiar. Bien, así que básicamente tenemos
todo lo que necesitamos. Ahora lo siguiente es,
podrías estar pensando
que no quieres
exponer todo esto y ¿qué
estás pensando en exponer? También podrías exponer
cosas como la salud, ¿verdad? Porque en el momento en que haces estrella, estás exponiendo
todo lo disponible. Para el propósito de
esto, solo voy a probar de esta manera para
que ustedes
realmente puedan hacer lo que quieran poner en lo que es
lo mejor que quieran agregar. Pero ahora mismo, todo lo que
solo agregaría es esto. Voy a darle un default, voy a decir un traidor expuesto,
subrayar los puntos finales Puntos finales. Entonces le voy a
dar un defecto de salud. Le voy a dar un
defecto de salud. Recuerda, todo
lo que se supone que valor separado por
comas si
tienes más de uno Entonces lo dejaré
como cierto porque estos siempre son requeridos. Así es como
habilitas tu sonda y así como
habilitas tu anterior. No debería ser específico. Básicamente ahora tenemos
todo lo que necesitamos. Ahora, voy a revisar
esta escena ahora mismo. Consulta esta escena ahora mismo.
Entonces voy a registrarlo. Para recordarte también, he estado registrando todo
en GithHub, lo
puedes encontrar en los números en Fascod voy
a llamar a esto Building grav EM
localmente Bien, entonces voy a copiar esto. Voy
a checar esto. Entonces voy a
llamar a esto. ver si
aquí todo está bien. Sí, una está bien. Por lo que se compromete EM dos cláusulas. Oh, escribí esto erróneamente, así que déjame ajustar esto commits, dash dash, dash, amend Para que pueda enmendar en el sc
subir. Solo necesito un poco de nt. Piensa que esto no es estar
adentro o necesito salir. Aclaremos esto
primero antes de Clare. Esto en realidad
se le ocurriría de inmediato. Entonces esto va
hasta la cima y no
quiero esto. ¿Cómo hago esto? Puedo hacer esto en mi terminal
ya que esta terminal no
está funcionando como
espero, ¿verdad? Déjame ver cuando haga esto. No me está dando lo que necesito. Entonces sigo adelante y
reviso esto desde la terminal. Voy a hacer esto en mi terminal. Eso es una terminal de Windows. Voy a entrar aquí, ahora
entrar en las partes y sólo voy a
abrir mi terminal desde ahí. Me comprometo enmendar. Bien, así que esto me
da lo que quiero. Entonces el código es L correcto. Entonces esto está bien.
Bien, así que ya está hecho. Entonces iré a Github y
solo cambiaré el nombre correctamente. Entonces el nombre,
voy a este nombre así que es correcto el error? A. W esto hecho, puedo empujar. Cuando empuje,
verás que esto realmente
entra y cierra esto. Está listo nuestro camino. A
Esto es genial, chicos. Cuando volvamos
en el siguiente video, quiero empezar a hablar o construir todo lo relacionado con UberTSF nuestro pipeline CICD Bien chicos.
Los veo en el siguiente video.
131. Actuador local de dockerfile en graalvm parte 4: Oigan, chicos, genial
tenerlos de vuelta. Todo bien. Entonces, en el último video, podemos agregar realmente
el Dockerfile, ¿ Entonces podemos agregar
el perfil, ¿verdad? Perfil de Docker ahora para
que podamos cambiar realmente
el perfil
de local a Docker Y de esta manera tenemos
algo que se ha establecido
dinámicamente para que
podamos reemplazarlos, y esto funcionaría
para nosotros como un rodaje en producción o cuando en
realidad estamos construyendo
una imagen cubana Ahora, también he seguido adelante
para luego agregar Dokofle. Pero antes de explicar
el Dokofle, estoy seguro de que tienes curiosidad por saber
cómo funciona el chequeo de vivacidad Debido a
que estamos llamando HTP host local 80 80 GraphQL ¿Vamos a decir
gráfica Q Atl Livelines? No. Eso es lo que
vamos a hacer. Entonces, para poder demostrar
esto
más , voy
a poner en marcha esto. Así que vamos a poner en marcha nuestra base de datos. Déjame que se inicie nuestra base de datos. Bien, entonces estamos listos. Entonces, pongamos en marcha
la aplicación. Comencemos con la aplicación. Lo bueno o
lo maravilloso que han hecho los chicos de
primavera es que no colocaron el
actuador en la trayectoria de GFL Todavía está disponible
en la ruta HTTP, tal
como has sabido que es. Eso es exactamente lo que
quiero mostrarles ahora mismo. Cuando realmente
entramos aquí y hacemos un HTTP, host local. Anfitrión local, 88 actuador
HelT y vivacidad, ¿verdad? Bien, ¿qué habilitaste? ¿Qué parte
habilitaste realmente esto no arrancó? Lo siento, no me di cuenta de
esto. No me puse en marcha porque A está en
uso, sé por qué. La razón es porque en realidad tenemos
esto funcionando aquí. Yo apagué esto y
también lo apagué. Apenas desde nuestra última
prueba, en realidad no
cerré la aplicación
ejecutándose desde IWSL Volvamos a poner en marcha la
aplicación, ¿verdad? Eso habría llenado
las macetas se completa. Voy a esperar
a que esté seguro de que comenzó correctamente
antes de seguir adelante. Fresco. Ahora, se puede ver que
ahora tenemos una parte de actuador. Verá que el actuador ya
está disponible. Si ahora volvemos
a los endpoints que teníamos antes, simplemente
hagamos clic en Enter Impresionante. S, esto es para arriba. Si también cambias esto
a preparación, Awesome. ¿Ves que esto es? Y estas son las
piezas que se requieren en el archivo de implementación de Kubernetis, y eso es exactamente
lo que usaremos Pensé que
básicamente debería mencionar esto ahora porque
es muy importante. Bien, muy, muy importante
saber realmente. Pero cuando configuramos
nuestro archivo Kubernetis,
nuestro archivo de implementación de Kubernetes, sabrás exactamente cómo funciona
esto Bien, así que pasemos
al Dokofle. Bien. Entonces desde nuestro despliegue para ser un poco diferente del tradicional Dokofle
local, es por
eso que
elegí explicar Ahora, GALVM ya proporcionó
una imagen base que podrías usar. Que es de la comunidad JDK. Se llama Gravim.
Este es el camino aquí. El lugar JDK
comunidad, entonces esto. Voy a
agregar realmente la ruta y hacer que la ruta esté disponible en las notas. De hecho se podía ver para el Docker donde se puede encontrar esto Entonces si uso Java 23,
cámbielo a Java 23. En Java 22, ahora
necesitas ejecutar todo esto,
todos estos luego se
instalarían en la imagen en todos los componentes o se requieren todas las
bibliotecas para la imagen nativa se construya o la imagen nativa a la derecha. Después de lo cual
luego cambio de directorio. Estoy usando este directorio de trabajo. Estoy copiando lo que
esté en el blanco. Recuerda lo que hay en
el objetivo que iniciamos qué
gráfica QL porque Si realmente lo notaste, lo último que realmente mencionamos, donde miramos
esto, esta parte aquí. Déjame navegar. Esta
parte aquí, si haces un LS. Esta fue la mesa de exec
que en realidad revisamos. Si haces L L, GraphQL, Bien, así puedes ver que esto fue
ejecutivo con Eso fue lo que pude
saber esto es esto y voy a renombrarlo app. Entonces estoy escogiendo una versión
delgada de Debian, que es más como
un Linux y una distribución Entonces cambio los caminos
del dictorio de trabajo a esto. Esto es solo yo solo colocando
mi nombre como desarrollador, luego estoy exponiendo ATS luego
estoy escogiendo de esta compilación. Lo que tenemos aquí, lo que
copiamos aquí de esta compilación, y estoy copiando desde
una aplicación de barras base OPT,
y estoy copiando en
esta aplicación QL de gráfico OPT Entonces solo estoy ejecutando esto directamente y esto
básicamente funciona. Recuerda que ya estamos en
esta parte, así que esto estará disponible en esta para que
solo pueda ejecutar esto directamente trabajo. Así es como
construyes tu archivo Doc, y esto es bastante increíble
para nosotros básicamente usarlo. Dicho esto, cuando
esté listo para saltar a un CRCD donde luego
definimos nuestro flujo de trabajo para Github y luego vemos
todo la transición Va a ser una sesión
interesante. Espero verte
en el siguiente video.
132. Configuración de escritorio en Docker en Kubernetes: Aquí dentro. Todo bien. Entonces solo escribe Doa
Dektop en Google, luego solo entra Hacer parada en cubierta. Entonces, si lo
miras detenidamente, todo está disponible
para ti, ¿verdad? Entonces tienes para Mac, tienes para Linux, y
tienes vertical Lmazin
Windows, Entonces Mac tenemos el chip
Apple Chip Intel. Tenemos el
chip Intel de Apple Chip. Entonces del tipo Apple Chip
empiezas a hablar de los
dos y los me gusta, ¿verdad Entonces todo ha
sido contabilizado. Entonces esto lo puedes usar. Ahora bien,
ya que si conoces MAC, bueno, si estás usando
MAC, estarías de acuerdo
conmigo en que MAC ya tiene
un kernel Linux, ¿verdad? Es un kernel de Linux. Entonces no hay necesidad de un WSL, porque eso es justo
antes de Windows Eso se llama sistema Windows,
Linux. Entonces por eso
no necesitas eso. Pero para Linux también, Linux
es simplemente sencillo, así que puedes instalarlo directamente y tener un
escritorio Docker Spring up. Entonces tal vez no tengas
necesidad de lo que voy
a decir ahora, ¿verdad? Pero sin embargo, así
es como instalar. Para que puedan seguir adelante, chicos,
instalar el escritorio Docker. Una vez que lo tengas funcionando, entonces puedes seguirme. Puedes saltarte lo
que voy a decir ahora para aquellos que
no están usando Windows, pero también es un buen conocimiento. Creo que ningún
conocimiento se desperdicia. Así que solo puedes quedarte conmigo y llegar a ver lo
que voy a explicar. Bien, para usuarios de Windows. Muy bien, para los usuarios de Windows, siempre
es recomendable
que tengas un WSL, como mencioné, tengas un WSL Entonces cuando tienes un WSL, puedes integrarlo
directamente, ¿verdad Eso se puede integrar directamente. Si en realidad revisas esto, vamos solo si revisas bajo recursos para usuarios de Windows, ves la integración WSL Si has habilitado Ws lo encuentras automáticamente porque una vez
que realmente instalas WSL, una vez habilitas WSL para
Windows, Probablemente mencioné
que el WS para una posterior compilación de Windows diez y
disponible para Windows 11. Creo que eso es realmente clave. Tendrías que instalar
una distro Linux, ¿verdad? Soy gran fan de Ubuntu. Rara vez uso Santos Santos, y creo que necesito
tener pla Fedora, pero soy un gran fan
de Ubuntu, Entonces el subsistema lineal, lo que uses los Linux Distros simplemente
aparecerá automáticamente, luego podrás integrar ambos Al hacer clic en este lugar
aquí bajo recursos, la integración BSL, lo
tienes. Pero si no has instalado
WSL, eso también está bien. Simplemente puedes usarlo directamente. Ahora, lo que
me lleva al punto que estoy a punto de compartir ahora mismo. Chicos, por favor presten toda la atención, enrollen esto y escuchen de
nuevo porque esto podría ser un desider clave para que los usuarios de
Windows puedan
usar Docker Dktop Docker
DKTopKupertis Esto es muy muy clave. Ahora lo que estoy
a punto de sacar es
si realmente revisas
cuidadosamente, ¿verdad? Uh, vamos a los límites. Quiero ver exactamente
dónde está eso. Vamos a ir. Bien. Ahora, sí, vemos bajo recursos, ¿no? En el momento en
que estés usando WSL, es recomendable, como
puedes ver aquí Está utilizando WSL dos. Por lo que los límites de recursos son
administrados por Windows. Esto es muy clave, ¿verdad? Si no estás usando WSL dos, puedes asignar la RAM Quieres que tu motor
Docker se use automáticamente, así que será una memoria compartida compartida entre tu motor Docker
y Cubants Entonces, por favor, mantén la misma mente, ¿
verdad? Por favor, mantén
la misma mente. Así que en realidad puedes
tener esto compartido. Y a otros chicos también
puedes escuchar esto, ¿verdad?
Esto también es clave. Entonces puedes tener esto
realmente compartido, ¿verdad? Pero sin embargo, si
estás usando WSL dos, necesitas tener un archivo llamado WSL config que puntee WSL config, y deberías
colocarlo debajo Debería colocarlo bajo tu camino. Solo te mostraré exactamente dónde está esto en
mi sistema Window. Entonces solo trae esto a colación. Entonces voy a compartir esto también
en los resultados, pero también quiero que
ustedes lo tengan. Entonces este debería el
archivo WSL dos debe estar bajo una ruta. Para aquellos que usan Windows. Simplemente voy a copiar mi camino para
que podamos tener una mejor vista. Entonces deberías encontrar el archivo. Entonces, si puedes ver esto,
estoy seguro que puedes ver esto. Básicamente deberías
ser usuarios Under C, tu nombre de usuario o
nombre de usuario tiene un nombre de usuario, el nombre de usuario de tu
sistema, al parecer tienes un usuario varios o el nombre de usuario chico realmente estás
haciendo todas tus operaciones. Los usuarios de C, luego el nombre de usuario, luego recortan el WSL dos, SL configura Básicamente, hay que
colocar el archivo aquí. El archivo tiene que existir directamente debajo de tu usuario C mi nombre de usuario, el nombre de usuario que uso
es solo mi apodo. Entonces llamo a Z, Así que llama a Zequz. Entonces colocas esto debajo. Digamos que mi nombre de usuario es Eco Z, C usa Zico Z, luego coloco el Archivo
directamente debajo, ¿verdad Coloca el Archivo
directamente debajo. Es muy clave para
nosotros notar que es
bastante importante, ¿verdad? Esto es bastante importante. Todo esto es bastante importante. Lo siguiente que voy a
hacer, voy a estar mostrando cómo debería usar la
herramienta WSL Esta es la configuración básica debería compartirlo también. Así es como deberíamos
vernos, ¿verdad? Así es como debería verse. Entonces lo que quieres tener
es lo que quieres tener, así que si lo miras detenidamente, deberías tener esto para que veas
este es mi nombre de usuario,
Zicos, ¿verdad Esto es lo que uso
en mi sistema local. Entonces deberías tener WSL dos. Debe ser la cabeza
tal y como está. Se asigna el pase en la
nota que desea asignar. Te recomiendo
darle un archivo de intercambio. Entonces tienes una loca
que se reenvía, es verdad, entonces esto es más como la configuración básica
que puedes usar, ¿verdad? Para aquellos que usan WSL dos, en realidad
compartiría un enlace también Voy a compartir un enlace
para que ustedes vean exactamente cómo está configurado esto. Pero esta es mi
configuración básica, que también puedes usar. Ahora bien, tal vez te preguntes por qué
aumento esto a ocho gig. Anteriormente estaba usando Six Gig. Ahora es por eso que mencioné
es muy importante. Podrías poner en marcha ubertis en tu Docker y puede que
no se encienda para los usuarios de
Windows, ¿ O para cualquier otro usuario del sistema
Pote. Necesitas aumentar
el recurso porque tengo que
averiguar Docker en realidad
toma mucho espacio Siempre recomiendo 4-6 gig para motor
Docker
funcione realmente con todos los componentes Entonces Kubernets en sí mismo
un clúster de un solo nodo debería recibir al
menos dos gig Si quieres ejecutar
varios clústeres de nodos
para aquellos a los que quiero
ir a producción, un clúster de un solo nodo
debería tomar dos gig
dependiendo del recurso que quieras ejecutar en un solo así que
es por eso que agregué dos gig más Entonces mi memoria para
que sea capaz de hacer realmente
lo que quería hacer. Entonces el archivo swap,
básicamente significa
que la cantidad del mismo tiene este espacio extra
que has estado usando en tus discos duros locales
SSD o HDD, ¿verdad? Entonces una vez que la memoria está llena o una vez es así que
básicamente es un ocho. El archivo de intercambio es básicamente
un ocho a esto. Entonces siempre
te recomiendo darle algo muy, muy tangible. Ambinación solo usa el mismo
len, el mismo tamaño, ¿verdad? Solo una recomendación,
pero
en realidad puedes ajustar a medida que usas Entonces esta parte es muy
importante, chicos. Eso es lo que me estoy tomando
mi tiempo para explicar. Que ustedes puedan saber exactamente
cómo trabajar con esto, verdad? Esto es muy clave. Entonces se llega a entender y saber para configurar realmente esto. Para usuarios que no son de Windows, por favor, ten en cuenta, en
realidad ves dónde puedes
asignar la cantidad de ram. Cuatro gig está bien, o
puedes aumentar a seis gig si estás ejecutando
el ubertis local, si ya estás usando
cuatro gig, por favor agrega dos conciertos adicionales
que lo harían lo contrario, podría estar bien solo sigue tratando de comenzar pero
no es viernes y no
hay muchos recursos y es posible que ni siquiera
puedas depurar. Eso es algo gracioso que podría
no ser capaz de depurar. Excepto que deberia ir
a la Kubernetis y tu Esto no muestra
el registro directamente, probablemente no
he
explorado lo suficiente, pero no creo que
muestre el registro, lo que me enteré es solo darle r
adicional y
estas listo Esto es lo que he hecho
en mi sistema local, y esto es increíble. Esto es increíble. De hecho,
los dos he configurado. El siguiente paso,
exploramos algunas
funcionalidades básicas de ubertis antes de
comenzar a avanzar
hasta que implementemos nuestra aplicación en el clúster de
Kubernetis Los veo en el siguiente video.
133. Kubernetes Comienza a usar Kubernetes: Oigan, chicos, Z aquí. Bien, se supone que este es un video relativamente corto, ¿verdad? Bien, en el último video que
recomendé para usuarios de Windows
skip deberías ver encendido mientras que otros usuarios
realmente pueden omitir como otros usuarios del sistema
operativo podrían omitir. Pero yo recomendaría
una vez más, por favor, chicos, ver el DA ¿verdad?
Mira los videos de DA. Porque mencioné
algunas cosas clave podría ser un deseo clave para que puedas poner en marcha
tus uberts locales, ¿verdad Entonces, por favor, mira
eso. Bien, así que he seguido adelante para poner en
marcha mis Cuberencs locales porque creo que
no me gustaría esperar no
quiero esperar tres, 5 minutos, Entonces solo necesitas venir
a la sección Cubernts,
podemos habilitarlo, luego ponerlo en
marcha, ¿verdad Sólo ponerla en marcha. Entonces
solo aplica y reinicia o simplemente arrancarlo y
eso debería actuul hacer qué? Bien, así que solo ponlo en marcha. Entonces, si estás encontrando dificultad y no
viene como
mencioné antes, esto es muy clave amablemente
aumenta tu carnero, agrega dos gig más a ello, ¿verdad Dependiendo de la
cantidad local de ron que tengas. Estoy ejecutando un 32 gig 32 gig Ram, y si esos dos
gigramm significa Por lo que
te aconsejo encarecidamente que aumentes tu Ram. Justo lo que sea que estés usando,
cuatro gig siempre es suficiente para ejecutar coberti locales,
pero a veces arrastra Entonces si tienes suficiente ron,
por favor aumenta tus seis. Si no lo haces cuatro está bien. Entonces si quieres correr
cobant por favor agrega dos. Entonces lo que suelo
hacer para que esto funcione, bien, es que intento en lo
posible matar a mis pestañas cromadas. Eliminar algunos de los detalles que no estoy usando luego iniciarlo, así podré utilizar todo
mi sistema. Eso
es lo que trato de hacer. Adelante y haz lo mismo. Habilita cobnits y
además habilitarlo, dar o tomar, no me
equivoco 3-5 minutos Diez a 5 minutos y
también depende de tu ancho de banda porque sé
que una vez que estás habilitando combinado, extrae algunos recursos a tu sistema local para
poder iniciarlo. Podría no ser
exacto al decir de diez a 5 minutos porque
su ancho de banda podría ser mayor o
menor que el mío, ¿verdad? Entonces, si estás usando un superior, probablemente solo comenzará
mucho más rápido, ¿verdad? Usando low,
en realidad debería hacerlo. Probablemente solo pueda
mirar mi ancho de banda
ahora mismo para ver exactamente en
qué me estoy ejecutando, para poder darles información
precisa chicos para
que puedan usar para descifrar Bien, entonces estoy corriendo estoy
corriendo 40-40 a 50 NPS. Tengo 40-50 MBPS. Acabo de revisar
ahora mismo mi otra pantalla. Entonces, si estás usando más alto, entonces probablemente deberías
ser algo menor. Pero así que por favor ten esto en mente. Ahora está funcionando si sabes que
tienes buen ancho de banda y
ahora está funcionando más de cinco,
6 minutos, probablemente en
relación con mi ancho de banda, podrías considerar incrementar tu carrera,
luego inténtalo de nuevo. Una vez que lo hayas hecho y
lo comiences, eres lo suficientemente bueno para venir
conmigo en el siguiente video. Una cosa más, chicos,
recuerden que pueden dejar caer un mensaje en la sección de comentarios sobre la pregunta
y las respuestas y miro si están teniendo dificultades para
comenzar esto, entonces puedo seguir adelante. Ahora bien, si
en realidad estás familiarizado con otros servicios de Kuberneti y quieres hacerlo,
por favor, También puedes usar MiniQu mini
Cube también está disponible, solo
decidí
usar el Cadexel porque creo que
todos pueden seguir
fácilmente y
dejar tus preguntas, y probablemente
solo voy a seguir y ver cómo puedo ayudar Sinceramente espero que uno de ustedes
sea capaz de poner en marcha esto. De hecho, haría que
todo estuviera más emocionado. Los veré chicos
en el siguiente video. Ahora saltemos para comenzar a
explorar algunos detalles centrales de Cubertis Los veo en
el siguiente video
134. Instala el cliente kubectl en Kubernetes: Bien, chicos, gracias
por volver conmigo. Gracias por
volver conmigo, y estoy emocionado, creo, como ustedes, para que
podamos explorar esto. Bien, entonces ya hemos perforado
suficiente en Intellij. Sé que algunos podrían estar diciendo, ¿Va a ejecutar los
comandos directamente? Oh, claro, puedo hacer eso
porque aquí es una terminal. Entonces puedes usar cualquier terminal
de tu elección, ¿verdad? Cualquier terminal de su elección. Pero sólo para que sea
más genérico, ¿verdad? Voy a levantar
mi caparazón de poder. Voy a sacar mi
pastilla. Si estás usando. También puedes ejecutar esto
en GISBas Git Bash, sacar una línea de comandos y
hagamos las cosas Este es mi
sistema local, puedes ver, C usa porque ayudas a esto. Simplemente dejo este Ce como ganga para que podamos
ver que esto está funcionando, pero en realidad podemos
cerrarlo después de un tiempo. Creo que
sólo podemos comenzar, bien. Entonces una vez que hayas podido
instalar ese el siguiente punto, lo siguiente que
probablemente necesites hacer,
necesitas instalar
Cube koto, Cube Koto Se llama cubo. Koto, ¿verdad? Necesitas instalar qcoto. Ahora, para usuarios de Windows
y para usuario de Linux, si escribe qcoswe
puedes ver que tengo acceso
porque lo he instalado Así es como interactúas
con tu componente. El sistema Kuber local o cualquier
otro cobonancs por ahí. Solo necesitas conectarte realmente con
el recurso de escritura. Les mostraré chicos cómo
conectarse con la fuente de escritura. Entonces creo que el siguiente paso
aquí es
mostrarles cómo conectarse realmente
para instalar Qutu Simplemente dejaré caer un enlace ,
traeré el sitio ahora
y les mostraré un enlace ahora para instalar
QkoSwi porque esto es muy clave antes de que
puedan continuar. Bien, así que esto es, ¿verdad? Esto es. Como uno podría
preguntarme, ¿cómo llegué hasta aquí? Yo solo hago
búsqueda aleatoria como para instalar ganado
cachorro en 12 en Windows Solo elige tu elección. Después elige la sección Kuberneti. Al parecer, en esto
está Kubernetis. Esta es la
documentación oficial, por lo que te dicen
cómo instalarla. Entonces así es como configurarlo. Si estás usando Linux, así es como hacerlo. Entonces solo sigue este
paso, sigue este paso. Por favor, lea atentamente,
¿verdad? No hay prisa. Lea atentamente.
Creo que hay tres formas si
quieres instalar usando una llamada no usas el paquete nativo ni ninguna otra administración de paquetes, ¿verdad? Tengo tarjetas Q ambas en
mi subsistema Windows. Ese es el subsistema Linux y
mi Windows normal, ¿verdad? Entonces soy un comandante habitual de
Windows, así que es una instalación diferente. Así que solo les estoy enseñando a
ustedes cómo hacerlo en realidad. Entonces esto es para que Linux simplemente lo atraviese.
Es muy directo. Es lo que es el nombre ahora? Es un proceso muy
sencillo. Entonces así es como hacerlo. Entonces estas son las 33 formas de instalar.
Hay tres formas. Así que no corras
todo. Solo elige de una manera y solo guarda. Para Mac, Mac usa. Entonces, para el usuario de Mac, así es
exactamente como lo haces. Entonces, para instalar en Mac, ya ves, también hay
varias formas. Te instalas usando coral o
puedo usar el hombre, ¿verdad? Macetas Homebrew o Mac. Entonces, lo que sea que utilices. Entonces por favor notas dulces
esta sección. ¿Ves? Esto es para Intel
y esto para Apple. ¿Verdad? Ese es el dos, el dos chip y Lausi
Intel, usa esto, ¿verdad? Así que por favor voy a hacer eso.
Debería usarlo Homebrew Prepara, usa el Homebrew
dictly deberías estar bien. Yo brew debería ser un comando muy
directo, así que no es difícil
muy sencillo. Apenas tres comandos y cuatro. Claro. Después para Mac
para McPots y todo Bueno, si eres como yo, soy
un ingeniero muy curioso, y me gusta echarle un
vistazo a todo. Pero para este curso, solo elige uno en el puesto porque sé que a veces
cuando obtienes podrías usar algún sistema que quizás
quieras hacer y no
tienes acceso a usar
código directamente por alguna extraña razón. Si no tienes acceso
a escoger lo que funcione. Entonces pasemos a Windows. Bien, entonces hay dos formas de
instalar en Windows. En realidad puedes usar curl también, o usar Chocolate Chocolatey Por favor, siga
paso a paso, ¿verdad? Yo siempre diría, siempre recomiendo usar la
última versión, ¿verdad? Como se puede ver,
dice, por ejemplo, tarjeta
130 se comunica con una a 29130 y 131
Placa de control. ¿Qué es el plan Control? placa de control es
básicamente el nodo en un clúster de Kubernetis que
administra otros nodos Ese es el maestro
y lo que ustedes llamarían nodo maestro, ¿verdad? Por lo que debes asegurarte de
instalar el último. Dice 130 funcionaría para esto. Simplemente quiero decir si tuviera que
revisar mi cúmulo de ubertis. Reviso mi cúmulo de ubertis. Estoy ejecutando esto es Cube Kat, cubo en, tuve que quitarme esto. Si tuviera que pensar en
Docker desktop, ya ves, mi ubernis se está ejecutando en
uno o 292, uno o 2902 Intenta hacer coincidir tu cube kat con la versión
que estás viendo aquí. Intenta igualarlo. Esto jugará un papel importante
para ti, ¿verdad? Porque si estás usando
una versión mucho menor, podría ser otra
razón por la que no funcionará. Necesito explicar esto de verdad. Para algunas personas, lo que
podrías experimentar prácticas. Para aquellos que ya tienen cosechadoras he estado usando durante un
par de tal vez uno, dos, tres años y tienes una manera mayor mucho mayor en los clientes, y ahora has podido hacer escritorio de
auto y decir en uno o 29 y ahora
estás en inversión, digamos 12, cuatro, tienes problemas Te explicaré por qué tienes problema. Así es principalmente como funciona. Déjame solo sacar a
colación la parte de las notas. Así es principalmente como funciona. Tenemos QC dos, igual que
en la documentación. Tenemos Q dos, uno, 24, ¿verdad? Un punto dos, cuatro. nodo
Cubats puedes interactuar
que será uno.23 Uno do 24 y 125. Si observa valores
incrementales, una versión anterior, la
versión exacta y una versión superior. Me olvido de la
otra subversión, como el punto algo, o tal vez punto un punto dos.
Olvídate de eso. Solo mira estas partes, ¿verdad? Entonces ves una versión anterior, una versión después
y una versión exacta. Entonces eso es lo que
explican en la documentación
diciendo si usas 1230, básicamente
podemos interactuar con uno do 29, una versión anterior, uno hacer 30, la versión exacta, vienes la
versión del resultado, luego 131 Chicos, esto es muy,
muy importante. Muy importante. Por favor, tenga en cuenta la
versión coberts que está utilizando O si incluso estás
usando otro cobart di que tienes acceso
a un proveedor en la nube, tienes cobants funcionando, por favor asegúrate siempre de revisar
tu versión Esto siempre es un visi
cobarts a los que puedes acceder con el corte de copa que mencioné
no saben lo que está mal, por favor asegúrate de
checar Entonces como pueden ver, ¿qué versión estoy ejecutando?
A ver si confirmar. ¿Qué versión estoy ejecutando? Uh creo que es ese Vashon Micro Creo que es el DashonV. Déjame estar seguro. Windows, Windows
Comprobemos clientes hon. Vamos a ver
esto. Bien, así puedo ver que me estoy ejecutando en
12921 do 29 punto dos Entonces significa que puedo
interactuar con uno do 30. Puedo interactuar
con él uno do 29, y puedo tocarlo uno
puedo tocarlo uno hacer 28. Puedo adjuntar uno do 29, y puedo tocar uno hacer 30. Entonces significando que puedo adjuntarlo
todo lo que este tenga. Bien, chicos, así que
necesitaba estar segura. ¿Bien? Sí, así
que eso es lo que tenemos. Bien, chicos. Genial. Así que sí. Entonces estamos bien. Estamos
bien, ¿verdad? Estamos bien. Entonces con esto, estoy seguro que
estamos listos para proceder. Listo para continuar. Entonces les voy a mostrar chicos cómo instalar esto. Entonces creo que estoy listo para proceder, quiero ver
la duración
del video. Bien, 8 minutos. Bien, así que necesito
explicarte este poco. Lo estoy dando paso a paso para
que ustedes realmente puedan seguir adelante y
no se pierdan ningún proceso, ¿verdad? Los veré en
el siguiente video, ¿verdad?
135. Kubernetes explora y cambia de contexto: Bien, chicos,
gracias por volver. Bien, así que comencemos a
explorar un poco de cubanits. No puedo tocar ni
siquiera puedo empezar a decir que me
rascaría alrededor del 5% de Cuberts Yo solo quiero hacer cola a la
sección hacia nosotros desplegar, pero necesitas conocer las funcionalidades clave
de lo que necesitamos, ¿verdad? Entonces no quiero que te pierdas
en el medio. Por eso voy a seguir
mencionando algunos detalles clave. Entonces en la última sección, exploramos nuestro corte de cubo
voy a traer esto nuevamente a colación. Recuerden, tengo mis
cubantes funcionando, mis cubantes de racimo único Ahora bien, ¿cómo sé siquiera que me estoy conectando con el Cuberti correcto?
Ese es el punto correcto. Porque un cliente cada cliente
se conectará al servidor. Un cliente para conectarse
al servidor. Necesitas señalar a los
clientes para que apunten a servicio
particular tal como
estás tratando de llegar a una URL. Se podría decir que
quiere llegar a Google, se podría decir que quiere llegar
a Facebook. Se podría decir que
quiere llegar a Amazon. Es necesario apuntar la URL
a una fuente específica. Lo mismo con
Kubernetis no, he trabajado en varios clusters de
Cuberts he trabajado en varios clusters de
Cuberts, ¿verdad?
Varios grupos de combates Entonces hay una opción que también en algún momento
estarías trabajando con varios
cúmulos cubanos Para aquellos que nunca antes había
corrido Cuberts, dices si solo puedes
conectarte porque
probablemente ese será el predeterminado que
tienes ahora mismo Pero para los que
han corrido coberts, tienes un problema de conectarte a escribir
coberts que quieras porque he tenido que trabajar
en varios proyectos simultáneamente
donde estoy teniendo que cambiar clústeres para desplegar aplicaciones y
trabajar en lo que necesito Entonces, ¿cómo lo averiguas? Entonces hay un
comando que puedes usar. Para que puedas usar Q dos concursos
configurate, ¿verdad? Entonces estos son todos
los concursos encendidos. Es decir, este es el nombre de la corriente de todos los concursos
que tienes en sistema local. Como pueden ver, he
trabajado en, esto es un AKS. Este es Ajo. Se trata de Azure ARN. Esto es Amazon, Amazon. He trabajado en varias partes. Trabajé en GKE que
es Google Cloud. Hay varios de ellos,
trabajé en Azure personalizado. Solo quería mostrarte lo que realmente
me he arreglado. Ahora mira este
cúmulo. Estos son los clusters es cluster. Esto es
información de autenticación, ¿verdad? Información de indicación. Uh, esto
realmente no dice mucho. Todo esto no dice por sí mismo. Estoy a salvo básicamente. Entonces, si
quieres revisar tus datos, me encantaría mostrarte un archivo, o tal vez pueda mostrarte
brevemente, pero lo sacaré de la
pantalla inmediatamente, ¿verdad? Porque contienen
algunos detalles clave, pero yo no sólo haría eso. Lo que haces básicamente, si quieres obtener una visión completa de todo lo que se ejecuta
en tu sistema local, usarías algo
llamado CBC dos Vamos a
aclarar esto. Te voy a mostrar el primer comando para coser
el concurso que se ejecuta. Volveremos en un segundo. Voy a poner esto a disposición, ¿verdad? Todos estos comandos también
están disponibles. Hagamos una vista de configuración de Q. ¿Puedes ver esto, verdad?
Esto se puede ver. Estoy
corriendo deliberadamente. Ahora bien, la mayoría de estos
tokens que estás viendo que estoy compartiendo están todos caducados,
así que no funcionan. Entonces, si los intentas, si haces una captura de pantalla de mi pantalla
y las pruebas, no
va a funcionar, ¿verdad? No va a funcionar. No
tendrás acceso. En realidad necesito
hacer mención de eso. Es que la gente es realmente curiosa,
pero no va a funcionar, entonces. La figura
te mostrará todos los detalles que realmente has conectado a todo lo que te has
conectado, ¿verdad? Entonces necesitas tener eso de
verdad. Bien. Entonces eso es un
poco, ¿verdad? Bien, chicos. Entonces como mencioné, algunos de ellos son viejos. Lo he
sacado de la pantalla. Como mencioné,
simplemente lo revisaré rápidamente. Ahora bien, una pregunta es, ¿cómo puedo tener una buena
visión de cómo decir esto? Muy fácil. Necesitas
básicamente ir
a Combs básicamente en realidad almacena
en tu archivo local Este es mi archivo local. Después vas a los usuarios, luego vas al nombre de usuario.
Este es mi nombre de usuario. Entonces busca el cubo de puntos. Cubo de puntos. Ves este cubo de puntos. Si abres este archivo,
no lo abriré. Si abres
este archivo, verás todas las configuraciones y todo lo que
necesitas para ver ahí. Es sólo una réplica exacta de
lo que arroje en la pantalla. En realidad, contiene más
detalles que no quiero mostrar, muestra las llaves
y todo. Te muestra todo lo que
estás usando para
conectar un clúster. Al parecer,
todavía estoy conectado a algún clúster increíble que definitivamente no
quiero mostrar. Todo bien. Entonces esto es exactamente. Solo estoy tratando de
ir paso a paso, comprueba para usuarios de Windows
para Linux, básicamente, para usuarios de Linux,
solo revisa tu casa. Donde revisas la casa, luego busca dot cube
dot cube debajo de tu casa. Vamos solo un CD, luego
ve a tu casa. Entonces el nombre de usuario, tu nombre de usuario
que estás usando, luego ve al cubo de puntos, pero en realidad
estás bien. Esa es la clave.
En realidad necesito mencionarlo. Estoy interactuando con
esto ahora mismo, otro ejemplo que puedo
mostrarles es vamos vamos también. Así puedo conectarme a
mi Ubuntu desde aquí. Entonces si me conecto a
mi Ubuntu y me dejo
hacer un PWD para ver mi directorio de trabajo
actual Entonces, actualmente estoy
en mi casa, ¿no? Esta es mi casa, ¿verdad? Entonces también puedes hacer esto. Usa esto y esto te lleva
a tu casa directamente, ¿verdad? Esto es garabato, ¿verdad? Se lo lleva a tu casa
si estás en un teclado, creo que se desplaza, luego cambia hacia atrás
tick Shift tick. Ahí está esta garrapata justo al lado uno y obtienes este símbolo. Entonces cuando estás aquí, así que
ahora que estoy aquí un PWD, así que vamos a explorar esta
parte, ¿verdad? LS. Entonces haré LS menos A para
mostrar también ocultando F porque
cuando tienes algo que
va precedido de puntos, en
realidad está agregando rápido. Bien vamos a A. Así que
si miras esto cuidadosamente, ¿
verdad, ves que está
en el cubo de puntos, verdad? Está en cubo de puntos. Así que vamos
a entrar en punto cubecd dot cube Bien, SoC
tendrá el mismo archivo, este archivo de configuración cinco.
También corta ahora mismo. Si lo corté, verás también
verás así que
solo puedes gatos config no
voy a darle a
este comando, ¿verdad? Entonces una vez que golpeas esto, también
ves todos los configurados. Esto
es muy clave, chicos. Necesito mostrarte para saber
exactamente cómo explorar esto, y esta es una gran para ti. A, a la derecha. Esto es genial. Esto
es genial. Esto es genial. Entonces te mostraré los archivos de
configuración donde ver el concurso, todo sobre tu clúster de
componentes. Entonces ves todo en
este archivo de configuración. Sigue anexando.
Cuando te conectas a nuevos clústeres, sucede. Sucede. Entonces lo
tienes ahí. He podido explorar
esto en detalle para que ustedes sepan exactamente cómo conectarse
realmente con él. Creo que somos buenos para seguir
adelante, buenos para seguir adelante. Con esto, voy a volver a
mi show de poder y voy a decir el último comando que usamos nosotros
up cut que obtenemos config. Config obtener concurso. G concurso en realidad dar esto. Ahora, porque me falta
el escritorio del auto, automáticamente
encontrarías Da desktop, ¿verdad? Entonces Theca desktop es
lo que me interesa, y eso es a lo que
voy a cambiar Interruptor T, configuración de ganado cubo, luego usa esa es la
palabra, usa contexto. Oh mi contexto es lo que Docker
DKTopTocadk para aquí. Por lo que también pondría a
disposición esto también. Este comando este comando
también estaría disponible, ¿verdad? Entonces, una vez que golpeas esto, ves contexto
cambiado a esto. Entonces ahora vamos a comprobarlo. Si notas antes de ahora usando, que tiene una estrella, que
muestra el contexto actual. Entonces si lo hago Keep coil
config, entonces obtengo concursos. Como pueden ver,
ahora estoy en Docker Dk parada, ¿verdad? Ahora estoy en
Docker Dk parada Así que
les he enseñado capa por capa exactamente cómo llegar aquí, ¿verdad? Te he enseñado a explorar algunos pedacitos y
cómo llegar hasta aquí. Entonces creo que con esto, ahora
estamos bien para
ir porque
ahora estás en Docker Dk stop, y ahora podemos
explorar todo lo que está dentro de Docker Dektop aparentemente no puedo Cubanos, pero menos. Básicamente, me encuentro con
ellos seguir por las partes para hacer todo lo
que necesitamos hacer. Bien, chicos Los veré chicos
en el siguiente video.
136. Espacio de nombres y proyecto de prueba base en Kubernetes: Bien, chicos, aquí Z, gracias por
volver conmigo. Entonces como te das cuenta, tengo una pantalla morada. No sé si esto es
exactamente correcto, cierto. No soy muy buena con los colores. Entonces solo quiero mostrarles que podría conectarme tanto
con mi WSL, que está en Windows
como con mi shell de energía, poder cambiar
a cualquiera de ellos. En realidad es ya que me estoy
conectando con Kubernetes y
Docker Dektop básicamente
los Kubernets
y Docker Dektop Docker Así que no
te alarmes si me ves cambiando conchas y usa alguno de
ellos, es lo mismo Entonces hagamos una D Vamos a ejecutar uno de
lo siento, los Kubernetis Así que un concurso CC two
config config. Esto es en mi parcial, se
puede ver que estoy apuntando
a puerta Dexter Comprobemos aquí. Déjame
copiar el comando. No quiero volver a escribir
ambos, así que solo confirme si este es el caso
aquí. Todo bien. Como pueden ver, estoy en lo
mismo , realmente
no hay diferente. Podría usar ambos porque
están todos conectados
al mismo escritorio de expediente
que está dentro, recuerda que habilité para
aquellos que aún pueden
recordar lo que hice Recuerden que en realidad entré aquí los recursos la integración
BSL integré mi derecho Ubuntu Así que esto realmente se integra así que estoy usando ambos juntos
y eso funciona. Sí. Ahora, quiero hablar un concepto muy singular que utiliza la
mayoría del lenguaje Bogami, que
en realidad voy a explicar aquí Todos son similares ahora,
Cubontis Todo bien chicos. Muchas gracias. Sí. Así que en realidad publicó un poco
el video. Por eso lo mencioné, ya que estaba agradeciendo
chicos por sostenerlo, pero no vieron ningún retraso Sí, hay un concepto
llamado espacio de nombres en uberts. Ahora para aquellos que en realidad
para los que hacen Java, estarán familiarizados con
el concepto de paquetes, para tener un poco de código
en un área en particular. De los que hacen.net, estás familiarizado con cosas
llamadas espacio de nombres, ¿verdad En realidad sucede lo mismo. Tenemos un concepto llamado
Nspac cobertis en el que se quiere
segregar un ambiente Digamos que tienes, creo que
el ejemplo típico podría ser, si tienes un entorno Q,
un entorno de desarrollo,
un ambiente de producción
, estos son tres
entornos diferentes que no quieres que interactúen realmente entre sí. Son
espacios separados o digamos VPC en una Nube privada virtual,
tu usuario tiene una Nube privada virtual que no te
dice que estás parado de usuario
en una Nube privada virtual Aquí existe el mismo concepto. Podemos ver que
hay algunos incumplimientos que ya están
disponibles para usted Seguiríamos adelante para mostrar el default.
Ya deberías adivinarlo. Será más barato obtener espacio de
nombres, espacio de nombres. Estos son los
espacios de nombre que están disponibles. Hay una forma corta. Creo que también en
esos son espacios de nombres. Quiero estar seguro Bien, así que la S también disponible El atajo que usaría
de NS es NS. Entonces NS. Entonces esta es la forma corta. Quiero que ustedes
estén usando NS fuera del espacio de nombres para que las cosas se
escriban más Bien. Entonces ves el valor por defecto que siempre se pone a tu
disposición es este, que es el
entorno predeterminado. Cualquier cosa que
escribas, cualquier cosa
que intentes crear
para intentar explorar
se vería desde el entorno
predeterminado. Entonces, si quieres explorar
cosas dentro de este sistema de cubos, no
podrás
acceder a él por defecto. Así que toma por ti mismo, si
digo tubo cortado en cubo, consigue vainas. Lado, no veo sales encontradas
en el espacio de nombres por defecto. No obstante, quiero
verificar si quiero verificar los nombres donde
pueda elegir este espacio de nombres, y solo diré N, esto ¿puedes ver la diferencia Entonces este N es punto
a este sistema de cubos. Yo no tengo tiempo
para explorar esto, pero estos son los
detalles centrales que hacen que los cubanos realmente funcionen, ¿verdad La función de Marques. Toma este planificador. Este planificador es
básicamente la guía que despliega realmente
programa tu pod Bueno, no estoy explorando esto, no
estoy explorando esto. Recuerda, todavía estoy en
el espacio de nombres por defecto. Si
vuelvo a repasar esto, hago BKoTug NS. Todavía estoy en el espacio de nombres predeterminado. Veamos qué hay disponible con esta versión de nodo.
Veamos qué hay disponible. Vamos a solo Kupe koto QCT conseguir
vainas, vamos a comprobar entre. Comprobemos esto. Oh, no
hay recurso. Aquí no hay vaina. Bien, entonces otro atajo,
probablemente les enseñaré chicos. Recuerda que todo esto
estará disponible, a menos que veamos el video
para elegir los comandos. Qpc dos obtiene PO, ¿verdad? N, usemos el sistema de cubos, que es ese espacio de nombres Bien. Hagamos esto, como pueden ver, puedo usar PO para Potter
usando el nombre completo. Creo que explorar lo suficiente. Ahora lo que
pretendo hacer es que quiero crear un espacio de nombres único para lo que vas
a estar trabajando Eso es lo que quiero hacer. Voy a hacer un CK dos,
crear NS. Recuerda que NS es espacio de nombres.
Entonces sólo tienes que darte el nombre. Yo lo llamaré prueba. Esto ha sido creado. Esto se crea. Vamos a hacer QK dos conseguir NS. Como pueden ver, ahora tengo
un espacio de nombres llamado Tso? Entonces, recuerden, a pesar de que ahora
tenemos esta encuesta, ahora
tenemos esta, ¿cuál es el espacio de nombres por defecto
que sigue activo? ¿Cuál es el espacio de nombres predeterminado? La verdad es que el espacio de
nombres por defecto sigue siendo el valor predeterminado hasta que lo
especifiques o lo cambies. Entonces, por defecto, esa es la
única manera que puedo confirmar. ¿Cómo lo sé? Entonces lo que
puedes hacer es si yo tuviera que escoger escoger esto para escoger
esto minimizado esta cubierto Bien, así que podríamos
usar este comando para verificar y así podríamos hacer
un espacio de nombres grab Bien, agarra el espacio de
nombres. Oh, lo siento, mezclamos los comandos que Qu kato Esto no nos mostrará básicamente lo que
necesitamos en este momento, pero esto es para
validar el comando activa cuando solo nos
movemos a un nuevo espacio de nombres, podemos ser capaces de ver el espacio de
nombres al que simplemente
cambiamos Lo que haría es cambiar a este espacio de nombres de prueba
que acabamos de crear. Entonces ellos Kukato Kukatu config
Entonces hacemos un concurso conjunto. No tienes que
meter esto, ¿verdad? No tienes que
tenerlo en la cabeza. Siempre está disponible
la documentación. Simplemente escribe cómo verificar
los nombres predeterminados o cómo
cambiar un espacio de nombres y cubanos
y lo encuentras, ¿verdad Entonces corrientes, luego
guión toachnamespace,
recuerda, espacio recuerda, Entonces usas el
dash toachnmspace, entonces solo podemos usar el N. entonces solo podemos usar el N.
Cualquiera que prefiera. N, luego solo pasa la prueba. Creo que quiere los
cuatro dits dash
dash Emspace name space Entonces esto es. Entonces estás diciendo que hemos modificado. Entonces volvamos a ejecutar este comando. Veamos esto.
Vamos a panificarlo. Confirmemos esto. Esa es
una vista de configuración, luego prueba. Bien. Ahora ve los comandos
apropiados config
set context, dash, dash, name space, then equals to test, then cube, config then view
minify web name space Creo que este es el error. Estaba usando el espacio de nombres. No lo he escrito correctamente. Espacio de nombres, ¿verdad? Aquí hay un propio. Espacio de nombre de prueba de espacio. Vamos a retomarlo. Este
que estaba buscando. Cuando se corta a la vista de conflicto, este tipo muestra que los nombres que se están ejecutando
ahora es la prueba. Cualquier cosa que creamos, cualquier cosa
que hagamos será directamente en este nombre en particular s
para probar los espacios de nombre de una tienda. Ahora para proceder con esto, rápidamente
estaría
mostrándonos unos proyectos de demostración
que creé Proyecto demo simple muy rápido. Ahora, la forma más fácil de probar cobonts como las personas aconsejadas
cuando estás aprendiendo, tienes un proyecto de demostración que
puedes fácilmente simplemente girar y ejecutar Si nos fijamos en este
proyecto, este proyecto no hace nada significativo. Son solo detalles muy minuciosos. Todo lo que hago es solo que tienen un solo método G y el método
G es solo Teske, nos dice
lo que acabas de llamar Yo solo vuelvo en respuesta a ti. Eso no es nada más. Uno incluso se agota. Entonces
estoy esperando un param. Paso en un param,
que es un modo. Un modo es un ym.
Ya ves el modo, es o desarrollos
o producción. Pasar de esta cadena y
para realmente sacarlo,
luego nivelar, pasar un nivel
y el nivel es un nom,
ya sea un novato o SPAt Entonces esta es una respuesta
aquí. Lo construí un disco. Nada nextra. Si nos fijamos en el archivo de configuración, realmente no
hay nada aquí. Acabo de configurar el
perfil para que sea dev. Comprobamos aquí acabo de
establecer una propiedad que es nivelar novato,
el nivel automático, entonces en realidad uso lo que les
mostré antes en caso de que quieran establecer realmente la propiedad predeterminada o la propiedad
environment, que se esperará. Quería mostrarle a este tipo, este es el proyecto a
usar a partir de aquí para probar realmente para probar
las funcionalidades básicas. Lo usamos para probar
cómo crear un pod, lo
usamos para
declarar realmente usando un servicio, luego implementamos realmente para
copares usando este proyecto Una vez que lo hayamos hecho y acertamos este espectáculo visto que
las cosas están funcionando bien. Recuerda que no hay conexión a
base de datos. Una vez que has hecho esto y te sientes
cómodo con él, luego elegimos
la imagen modulada, luego pasamos por el
mismo proceso y las cosas luego se vuelven
mucho más claras Esto no tiene complejidad. Pero la pantalla modular
tiene que conectar con base de datos o fuente de datos
y estamos tratando minimizar estoy tratando de minimizar
varios la complejidad, tenemos que realmente trueno Empecemos con un proyecto
muy sencillo. Voy a cometer esto o mejor dicho ya
lo cometí. Creo que el nombre del
proyecto es demo, creo ATS. De hecho agregaría esto a También proporciono esto
en la
carpeta de recursos o en la pila de recursos, a la
que ustedes realmente
podrán acceder también, me comprometo esto también agrego
esto a lo accesible. Realmente no hay nada difícil aquí y ya me
adelanté al archivo Docker y ya he corregido
el error que hicimos principios de esta primavera y esta
cuerda en la pulidora Creo que son buenos para
toparse con el siguiente video. Chicos te ven en el siguiente video.
137. K8s pod 1: Oigan, chicos, Z aquí. Gracias por
volver conmigo. He empujado esto al repositorio de
Githu, y está disponible
en la
carpeta de recursos en el archivo de recursos Al mismo tiempo, también te
darías cuenta ya
he empujado esto a la imagen
ya está disponible. Dokaimage. Si miras esto, puedes ver que ya
tenemos la prueba demo k, que hice hace unas 18 horas. Pero sin embargo, para los que son mensajeros,
hagámoslo rápidamente Envejecer paquete limpio.
No hay prueba, pero nuestro CIS mantiene pruebas. Pruebas de salto D. Esto simplemente va a hacer
esto y
juntar todo con esto hecho. Nosotros tenemos esto. Recuerden, ya
he seguido adelante para explicar en el último video
todo lo que tenemos aquí. Después en segundo lugar, Docer Dude T, luego demo, prueba K es el
nombre que uso, luego puntos Permítanme que de hecho
comience esto por ahora. Entonces, vamos a tener esto. Déjame encomiar este comentario
si quieres comentar, solo
pones un
símbolo hash y yo comento todas las obras para Bash
y Linux Esta es una combinación de seminarios bash, parciales y Linux,
que es para las ventanas Bien, esto para seminario
Linux digamos. Ahora bien, esto hecho,
déjame seguir adelante y eliminar Docker Image ARM, luego Dahef luego Entonces hice 1.0 realmente, 1.0. He eliminado. Puedo
traer de vuelta a este tipo, luego quitarle esto y recrear. La dosis critica de repente. Esto va a
ver, esto está hecho. Esto está hecho. Nosotros tenemos esto. Recuerda, mencioné que puedo
usar cualquiera de este comando ya sea que uso uso el
Ubuntu o el power share. Yo sólo puedo
alternar entre los dos. El motivo es porque no
quiero que nadie con sistema operativo
diferente piense que estoy haciendo algo diferente.
Simplemente se puede usar. Preferiblemente, sólo voy a
consultar con mi terminal. Este terminal de aplicación,
básicamente funciona para mí. Bien, entonces, ¿qué es
lo siguiente que vas a explorar? Lo siguiente que
vas a explorar es que estaremos creando una cápsula. Ahora bien, ¿qué es una vaina? La forma en que tiene un contenedor en un Docker en el motor
Docker, que es la unidad más pequeña En Cuberts el más pequeño es
una vaina, no un contenedor. Sin embargo, una cápsula ahora puede contener
uno o varios contenedores. Voy a tomar rutas
algo fáciles, pero solo quiero que
tengas ese conocimiento de que el pod contiene uno o
más contenedores, ¿verdad? Entonces estaremos cortando la
vaina para crear una vaina, hay dos formas de
crear una vaina. Ahí está el estilo imperativo, y hay un estilo declarativo Ahora, el
estilo imperativo simplemente significa que ejecutarías un
comando para crear el pod, especificar la imagen, como
todo en un solo comando. Declarativo es que vas a estar usando un archivo de configuración Va a configurar todo en
el archivo de configuración. Haría lo mejor posible
para explorar ambos, ¿verdad? Entonces voy a seguir adelante
y hacer un Qu dos. Recuerda, esto
estará disponible. Q dos, entonces correría. Si quieres crear
el pod, usas run. Corre, luego dale el nombre, el nombre, así que lo llamaré demo. Demostración. A continuación, especifique la imagen. Entonces la imagen, la imagen que voy a estar ejecutando en la imagen es demo, recuerda, demo KHS un punto cero Entonces esto cuenta directamente, pero quiero
mostrarles algo chicos. Es una opción llamada Dry Run. Cliente de corrida en seco. Entonces especificas
la versión del archivo, diré Yamel.
¿Qué hace esto? Esto es decir, quiero ejecutar
una vaina que tenga esta imagen. No obstante, todavía no quiero
que lo ejecutes. Yo solo quería generar un archivo de configuración
para mí en Yamel También puedes
generarlo en JSON. Lo que voy a
hacer aquí es que lo haría entonces para aquellos que no están
familiarizados con Linux, esto significa copiar la salida
de este comando en un archivo llamado demo dot Yamo Espero que ustedes puedan relacionar eso. Así que por favor mira este video si quieres si te equivocas. Vi que este es el nombre
que tenemos el pod, la imagen que creamos,
esto es guión, la
imagen que creamos,
y mencioné
que Dry run O Yama generará el archivo de
configuración de Yamal que necesitamos, luego ejecutarlo y luego pasar la salida en
así una demo el archivo Yamo Entonces hagámoslo.
Así que vamos a explorar. Seré un CAT demo punto Yamo. ¿Puedes ver? Esto genera
todos estos detalles s, lo cual es impresionante.
Esto es increíble. Genera todos
estos detalles, Rose. Ahora, podría haber seguido
adelante para simplemente
ejecutarlo directamente. Podría
haberlo ejecutado directamente. Pero solo necesito
mostrarnos que si
quisiéramos crear declarativos esto es exactamente lo que creamos Se trata de
formatos declarativos, formato Delativo. Si revisas la configuración, simplemente
te
mostraré rápidamente una selección de palos. En realidad voy a ver esta parte,
esto es Kubernetes Esto es Kubernetis. ¿Ves? Así es exactamente
como se ve. Si comparas con lo que
tenemos por aquí, ¿lo ves? El algo se ve
igual, ¿verdad? Te ves igual. Ahora bien,
la parte del contenedor no
es porque
no especificé parte. Si especificara piezas, la
hubiéramos visto ahí, ¿verdad? Quiero mostrarles que este
es un concepto muy chulo. Solo estoy intentando Estoy tratando
de matar dos osos a 1 piedra mostrándote cómo hacer botas de
verdad
y haciendo eso. Bien. Creo que eso es genial. Vamos a ejecutar esto de nuevo. Entonces hagamos dash pods dash, luego dash pods. Creo que estamos corriendo
en lo que Esto es
80, 80 80 porque no
puse el bote ser 88. 88. Hagamos esto, y hagámoslo. Bien. Vamos a explorar esto ahora. Gatos, demo, yamo. Bien, ¿lo ves? Ahora tenemos la olla contenedora expuesta. Verán, chicos, esto es interesante. Realmente increíble, hombre,
realmente increíble. V realmente impresionante. Todo bien. Entonces ahora te lo pedimos, pero aún
no has ejecutado el comando. No, el comando no es una carrera. Solo te estoy mostrando que solo
estoy afuera
para mostrarles cómo funciona esto
básicamente, ¿verdad? Entonces encontrarás todo este
comando básicamente disponible, todo este comando, yo
lo pongo a tu disposición chicos. Pondré algunos para que sean imperativos o algunos
declarativos, ¿verdad? Les mostré chicos
que en realidad pueden haciendo esto Giron clientes O YAML, esto en un archivo, esto en realidad pone en un archivo, van a cortarlo.
Eso es lo que hicimos. Déjenme mostrarle esto. Espero chicos que esté claro. ¿Y si quiero
ejecutarlo directamente? Ahora que tengo mi demo Yamo
tengo mi archivo demo Jamo. Antes que nada, exploremos el aspecto de correr directamente. Voy a copiar este comando. Voy a copiar este comando,
voy a borrar esto. Ahora, vamos a hacer un corte arriba
conseguir tirado o conseguir PO. Recuerda que te dije que cantaras. Esto se ejecuta en
el espacio predeterminado. Voy a hacer esta prueba de RN. Recuerda, creamos la prueba. Memorizar corte de cubo obtiene NS. Recuerda, tenemos los entornos
de prueba, ¿no? Creo que porque estaba
usando la terminal. Vamos a venir aquí.
Vamos cubo consigue PO. No hay recurso en el espacio de nombres de prueba porque no he
cambiado mi concurso. Creo que funciona por terminal, ¿
verdad? Yo salvo el peramial Vamos a seguir adelante y
hacer lo mismo aquí. He enviado un mensaje de texto en el comando antes, así que solo entraré aquí, colocaré el comando aquí,
luego haré pruebas, ¿verdad? Prueba. Entonces alrededor de eso vamos a
ver. Vamos a mover esto. Grabit. Bien, entonces
esto no es Linux, ¿
verdad? Entonces no está bien. Así que vamos a solo que
no es completamente Linux. Esto está entre power shalar Linux, pero
algunos comandos no funcionan porquería no funciona. Así que
vamos a hacer P Bien. Al menos en este momento,
estamos diciendo que no, está en el espacio de nombres de
prueba,
a diferencia de cuando estamos entrando en el espacio de nombres predeterminado. Entonces podemos seguir adelante y
ejecutar el comando directamente. El comando en realidad se
ejecutará sin el giron. Te mostré te
expliqué qué significa gyron? Ustedes ahora entienden qué
giron voy a hacer esto. Yo sólo voy a mandar este de aquí. He escrito no quiero volver a escribir, solo saca esto. Todo bien. Así que
vamos a ejecutar esto directamente. Entonces le pegué directamente. ¿Puedes ver la demo de pod creada? Así que vamos a explorar.
Mantener a Cato se pone peo Como puedes ver, demostró que la demo está
intentando crear pero no encuentra nada que
se llame imagen. Eso es lo que esto está diciendo.
Entonces hay una manera de averiguarlo. Vemos esto diciendo
no hay nada como imagen de copia de seguridad completa. Se trata de
buscar la imagen. Por qué buscas la
imagen, vamos a explorar. Así que solo
les
mostré chicos, estoy tratando de
cambiar terminales
por encima de la consistencia. Yo sólo voy a pegarme a la terminal de
Ubuntu, voy a pegarme a la terminal de arranque. Recuerdo que acabo de
mostrarte que puedo usar mi Powershell,
puedo usar este derecho Esto me gusta un poco cuando en
realidad estoy tratando
con Kubernetis Eso es solo una preferencia
personal. Eso es conseguir PO. Ahora, veamos la
razón por la que si no estás seguro de
lo que está pasando. Podrías hacer bekotu describir
puedes describir la vaina. Recuerda atajo.
Entonces el nombre del pod que es demo,
lo que está sucediendo. Entonces esto es decir,
si bajan,
diciendo, el planificador
automáticamente, recuerden que mencioné que el
planificador es uno que en realidad crea el
bote para ustedes chicos Esto ya se ha hecho.
Esto está bien. Pero no puede sacar esta imagen. Está tratando de sacar esta imagen, pero la imagen no está disponible, y está buscando la imagen. La prostituta no existe o puede requerir el inicio de sesión de Docker Solicitar acceso denegado
a esta imagen. La misma solicitud de acceso
denegado a esta imagen. Lo siguiente que
haremos, solo haré una
demostración de Docker image S que una estrella Ves esto está disponible guión de
demostración, kTt. Y esto se considera
como lo último, ¿verdad? No puedo ver ningún punto cero. Entonces significaría cuando estábamos
creando el comando elia, era
lo último que me usaron. Por lo que no se utilizó uno Broad zero. Entonces por eso estamos
teniendo este tema. Entonces yo haría es que voy a volver así que les he enseñado a
ustedes otro comando más, cierto, cómo mostrar, que
es lo que les mostré esto. Si el nombre del pod, que creas, recuerda cuando estábamos creando
el pod, ¿verdad? Y estamos creando la vaina. Creo que lo hice
en esta terminal. Y estamos creando la vaina. Especificé el nombre
aquí, que es demo. Así que por favor tenlo en cuenta. Estoy tratando de seguir progresivamente para que no
te confundas. Tengamos esto en
mente. Así que volviendo a mi otra terminal, ahora intenté describir y esta descripción nos mostró que el nombre o algo
no coincide, que
en realidad pude mostrarles chicos. Yo en realidad pegaría aquí. Yo pego eso en mis notas para
que en realidad
pudieras ponerlo disposición también diciendo que esto
no describe pod. Bien, entonces
volviendo aquí, vemos esto. Entonces siguiente parada, cubo Cortes PO. Este es el tema que estamos teniendo.
Así que vamos a eliminar este pod. Podemos hacer un cubo, cortar borrar PO. Entonces, una vez que eliminas
el pod, el nombre del pod es demo. Ahora bien, si haces esto,
estarás esperando a que Kubernetis haga un
elegante cierre.
Después fy eliminar. Esto podría tener
algún efecto. Si fueras a asistir
al programa Kubernetis o a la certificación de uberntis, no
tendrás tiempo Esto va a perder mucho
tiempo. Entonces puedes usar algo llamado
dash dash grace period. Periodo de gracia, fuerza de datos. Espero haber conseguido este
comando correctamente, cero. Estás diciendo, quiero
este quiero darle
un periodo de gracia de cero, pero quiero obligarlo a cerrar. Ya veo.
La eliminación inmediata no espera la confirmación de que el
proceso en ejecución ha sido terminado. Entonces no espera. La mayoría de las
veces no tienes que esperar. Haces un cubo cortar dos consigue PO. Se fue. Si no haces esto, dijiste que esto era inmediato, pero si no haces esto,
esto llevará tiempo. Volvamos a hacer lo mismo. Nuestro comando de servicio, vuelve
a hacer lo mismo. Permítanme crear con
lo que hicimos antes. Keep cut runmo dash dash image, que es una prueba de guión K demo, luego hice 10, luego lo que hace dash pots El índice es 80 80, lo que hice. Entonces si
vuelves a ejecutar esto, esperémoslo. Verás, error de extracción de imagen. No pudiste sacar la imagen porque no podías
sacar esta imagen, ahora
volvamos a ejecutar este comando sin el periodo de gracia. Movamos este periodo de gracia
y veamos qué pasa. Cuentan más
segundos? Uno. Verás, tardé alrededor de uno a 2
segundos para que se elimine. Si la vaina es pesada, tardará más segundos. Por eso te mostré
estas dos diferencias. Esta es otra forma. Guarde
esto también en las notas, para que ustedes puedan realmente estar
disponibles en la nota en las notas y ustedes
realmente puedan tener acceso a ella. Todo bien. Con esto
hecho, eliminemos de nuevo. Entonces he eliminado,
así que esto es ir. Hagamos un cubo para obtener la
cáscara. Aquí no hay nada. Ahora volvamos a ejecutar la imagen. Recuerda, esto está
buscando lo último así que veamos. Cutter de Cue consigue pelar. Puedo ver. Lo que debería
simplemente hacer que se pegue, saquen, luego miren. Cuando haces un reloj,
qué debería mantenerlo funcionando abierto para que
no tengas que simplemente
salir de la sede común. Ahora estamos diciendo que
la imagen sigue teniendo problemas. Vamos a explorar. Déjame ver exactamente cuál es
el tema aquí. Todo bien. Voy a dejar esto
¿me describe también? ¿Describes, describes
la demo? A ver. Por lo que todavía
le resulta difícil tirar físicamente diciendo Activo denegado para demo K prueba más reciente. Hay el mismo error. Es posible que requiera un inicio de sesión de Docker o se deniegue el recurso de acceso Bien. Entonces estamos
recibiendo el mismo error, así que solo voy a arreglar ese bit. Bien, chicos. Entonces, mirando
esto, lo estoy viendo. Está tratando de sacar de
él está tratando de sacar de Docker de
Docker Hub, Esto es tratar de
sacar de Docker Hub porque eso es exactamente lo que está
tratando de hacer esta extracción Tratando de sacar de Docker Hub. Nunca empujamos nuestra imagen
a Docker Hub, ¿verdad? Esta imagen nunca estuvo
disponible en Docker Hub. Renta en registro local y
así es exactamente
como funcionan los Kubarncs Kubant no conoce el registro
Docker Local. Hemos estado empujando
al registro local. Así que tenemos que empujar estas
imágenes a mi Docker Hub, y eso es exactamente
lo que tengo que hacer Lo empujo a Docker Hub, será accesible Lo que voy a hacer de
varias maneras de hacerlo. Podrías simplemente aclarar esto. Antes que nada, voy a aclarar esto. Entonces hagámoslo yo solo
haré la imagen de Docker. Estos dos tipos, quiero juntar esto. Voy a
hacer Docker push Empuje Docker, luego
solo elige Modult. Ya que vamos a estar haciendo eso
al final del día bajo cero, vamos a empujar esto. Puedes ver se refiere
a que podría tener este es el camino completo porque
no especificé el camino completo, solo escogí a
este tipo, escogelo. Ahora, el acceso está denegado
porque
requiere que realmente inicie sesión. Haré un inicio de sesión de Docker
logging Docker. Entonces mi nombre de usuario, Bien. Estoy tratando de empujar.
Iniciar sesión correctamente He iniciado sesión.
Hagamos lo mismo. Todavía no me
permite empujar. Déjame ver la razón por la
que he iniciado sesión con éxito, estás diciendo que puedes iniciar sesión
en contraseña persona. Esto es aprender más tt. Si no tienes Docker ID, C Veamos que esto Y no me
permite empujar. ¿Bien? Déjeme seguir adelante y
darle mi nombre. Entonces esto para que quieras empujar a veces requiere que
pongas tu nombre de usuario al frente. Entonces déjame empujar mi nombre
de usuario al frente y veamos esto. A ver. Empuja
este Docert hace. Bien, entonces está buscando esto. Todo bien.
Déjame resolver esto. Bien, entonces no está diciendo y está esperando mi nombre de usuario porque estoy
viendo esto, está tratando de empujar
al Docker Hop predeterminado. Por
lo que requiere mi nombre de usuario. Bien, creo que sé
cuál es el problema. ¿Bien? Bien, así que
vamos a aclararlo. Iré a los proyectos,
iré al proyecto. En esta ocasión, voy a hacer Docker Bute T,
luego mi Después demo, creo, Hs, luego uno Dot Ser un punto er. Si no especificas una
etiqueta para ser usada como última, así que solo especificaré etiqueta
porque necesito una etiqueta. Vamos a hacer Docker pero. Entonces escojamos esto
sobre este hecho ¿bien? Bien, así que hemos empujado. Ahora esto ahora va
al default. Entonces revisamos ahora. Hacemos una imagen Docker, S se puede ver tengo una imagen
con mi nombre de usuario al frente Ahora bien, por favor recuerde
la razón por que
esto es si no uso mi imagen, debería estar tratando de poner
el registro Docker predeterminado, que está en Docker Hub,
lo cual no está Esto no lo va a encontrar.
Pero si quiero hacer esto, tengo que asegurarme de especificar
mi nombre de usuario de Docker Hub, cortar el nombre de la Etiqueta y
la Entonces esto
irá automáticamente a mi usuario nm, a mi perfil o Docker Hub Con esto hecho así puedo copiar esto volvamos a esta
terminal y Docker push Entonces queremos empujar esta S, entonces la etiqueta es uno hacer cero. Estoy diciendo empujar a
mi propio perfil. Este perfil con este nombre de usuario. ¿A ver qué pasa? Todo bien. Dices que esto funciona. Entonces es decir ahora está empujando
a IO Zico Z, entonces esto. Antes de ahora, decía Docker IO Library
Library default, que es el general
disponible en Docker Hub Pero esto ahora va
a mis propios proyectos, y esto es increíble. Mientras esto está
funcionando, seguiría adelante para presionar por modulador también para que no tengamos
que esperar en este video para tener eso hecho
porque al parecer quiero que ya esté disponible. Lo que voy a hacer es
publicar este video. Cuando esto termine,
volveré con ustedes. Todo bien. Todo bien. Esto está hecho. Como puede ver, esto se completa con éxito. Vamos a mi Docker Hub. Creo que incluso podemos
verificar desde aquí, ¿verdad? Creo que esto está disponible en
Docker Desktop. Si has iniciado sesión, yo he
iniciado sesión aquí. He iniciado sesión. Creo que puedo ver mis imágenes
remotas. ¿Me equivoco? Bien, Hub, este es Hub Hub
Hub Es Local D Hop. Así que vamos a revisar mis imágenes, ¿verdad? Entonces, ¿ves que he empujado el modulate y
empujado eso para el demo cad ambos están disponibles
en Docker Hub, verdad Debes asegurarte de
hacer lo mismo. Recuerda que el comando
a usar es Docker. Una vez virtualmente pero la imagen, debes construir la
imagen con esta etiqueta. Acabo de mostrarlo
antes. Por favor, amablemente actualiza los videos para verificar. Construyes esta etiqueta, que es
tu nombre de usuario en Docker Hub. Si no tienes una cuenta
Docker Hub, creas una
cuenta, es gratis Docker Hub, entonces la etiqueta no está en esto, creo que la
mostré aquí Es por aquí. Vamos
a subir un poco. Se puede ver esto lo hago yo
pero con esta etiqueta. Hacer un slash slash. Lo que hay antes de que el slash
indique tu nombre de usuario, después del slash es el nombre de la
etiqueta que quieres usar Entonces si no pones ninguna
de estas columnas dis se
resolverá al último
carbón automático pero a partir de esto y puntos significa pero de este directorio, directorio
actual. Entonces puedo entonces empujar. Yo he hecho lo mismo por los
moduli, y por eso Una vez que hayas hecho esto,
una vez que construyas esta etiqueta, lo que tendrás aquí es esta. Tienes a este tipo
y a las ventanas. Esta es la etiqueta la coloqué.
Si no lo presionas, recuerda que tienes lo último
allí no te alarmes si
olvidaste esto y limo solo
significa una vez que estás haciendo eso, tienes que especificar la palabra clave latest u omitirla,
luego tirar Si usas un número, yo he usado, tienes que especificar
exactamente lo mismo. Este video es
cada vez más largo. Me pondré en contacto con
ustedes en el siguiente video.
138. K8s Pod 2: Bien, chicos, gracias
por volver conmigo. Les mostré a ustedes cómo empujar la imagen a su Docker Hub Me tomé mi tiempo para explicarte, por favor puedes ver
el video para verlo y tomar nota de los puntos clave que
mencioné para lograrlo. Recuerden que se nos está denegando el
acceso. Intenté iniciar sesión y
descubrí que
no era que necesitaba
pasar mi nombre de usuario. Entonces mi nombre de usuario era muy clave. Pasando el nombre de usuario que
construí usando mi nombre de usuario, lo estoy mostrando de nuevo solo
como referencia para que
podamos recordar. Construimos pasando tu nombre de usuario, luego recortamos el nombre de los
proyectos que quieres usar, luego uno lo haces o
usas cualquier nombre de etiqueta, entonces eso es doblarlo desde el núcleo de trabajo dict explica esto cuando estés
construyendo el Dale, puedes verificar Doceri Pat uno
para ver qué Esa es la primera parte,
entonces hay que empujar. Necesito empujar, solo elige exactamente
este mismo nombre que has
usado. Solo usa Docker push Entonces este mismo nombre exacto, que mostré en esta terminal, Docker empuja exactamente el mismo nombre He seguido adelante para hacer lo
mismo para modular. Todos estos son proyecto de prueba. Con esto hecho, creo que
estamos bien para ir. Ahora bien, ¿por qué hicimos esto
para refrescarnos de verdad? Kubernetis no conoce
tu registro Docker local. Se tira exactamente
de Docker Hub. Debido a que estoy usando
Docker Registry, estoy usando Docker Dektop, asumirá sacar de
cualquier registro que lo coloque, honesto si no
busco esa imagen en
ningún lugar de DockerHub porque ese es el valor predeterminado
que usa excepto para darle una onda privada y hay que
darle un contexto completo Eso está disponible en Kubernetis. Pero como estás
usando Docker de solo apégate a lo que
realmente estamos aprendiendo aquí Tienes que dar el nombre de usuario, recortar el proyecto
exactamente así Así es como tienes
que especificar tu imagen. Si no haces esto, no
va a encontrar la imagen, y es por eso que
estamos obteniendo el Docker Po porque
no había una imagen llamada demo guión
K prueba un punto cero Con esto hecho, voy a copiar esto y volver al
comando que estamos ejecutando antes, el comando que estamos
ejecutando antes. Yo solo puedo
volver ahora arriba cortador obtiene POT es el área que tiene sondeo de
imagen. Vamos a borrarlo. Eliminemos esta imagen directamente
porque no la necesitamos
bien porque esta imagen no está funcionando para nosotros, haz una eliminación. Se borra, creo que
el inicio debería estar aquí en el comando
aquí. Yo no lo creo. El corte de cubo deberías estar
acostumbrado a él, pero esto por ahora, elimina luego pod, que es una forma
corta de pod o pods, luego demo, luego dash
dash grace period Quiero que termines
el mal inmediatamente, luego cero, luego dash dash cuatro. Bien, entonces eso está hecho. Entonces hacemos un cubo,
cortamos dos, consigue PO. Verás,
aquí no hay nada. Oh, espacio de nombres predeterminado. ¿Bien? De hecho lo cambié, así que volvamos con el
otro tipo al que estábamos
corriendo antes. Entonces iría a la orden. Pero no tienes que
sólo saber el comando
que estás escogiendo. Estamos usando el espacio de nombres de prueba, el
espacio de nombres de prueba. Así que volvamos al espacio de nombres de texto. Entonces veamos esto Sí, genial. Esto fue para validación. Recuerda, si este comando
no te funciona, todo lo que tienes que hacer es simplemente
mantener el corte se tira. Esto se está ejecutando en estos
tipos, acabo de borrar. Así que te llamen. ¿Ves? No, es solo en el espacio
de nombres de prueba. Ahora estamos de vuelta para
probar el espacio de nombres. Ejecutemos el comando que hemos
estado ejecutando antes de ahora, que les mostré
antes chicos sobre qué usar. Eso es un comando directo sin usar el archivo, que es este. Recuerda, este fue el
problema que estamos teniendo, así que lo colocaré
como Z llamada Z slash Esperaba ir a recoger imagen de mi registro,
voy a sacar esto adentro. Vamos a probar esto. Entonces, ¿se tira de
un cubo de ganado Te dije que puedes
dash dash watch para verlo
correr como si tira. Ahora, ¿ves que hay una diferencia?
¿Cuál es la diferencia? Antes de ahora, lo que estamos teniendo
era ver esto se está ejecutando, hay un error Esto se está
ejecutando, hay un error. Entonces el error es diferente. Entonces, ¿K has hecho mal? Oh, muy sencillo. Lo
que he hecho mal es esto. Entonces, vamos a quitarnos esto.
Eso es lats. Cuatro Clats. No describamos.
Cube utu describe Demostración de pod. Veamos
qué está pasando. Entonces, veamos esto.
Un tema está ocurriendo. No se encuentra el problema. Entonces, si no encuentras el problema, ahora
hay otra opción. Si no
lo encuentras en describir, no
puedes revisar los
registros del contenedor. Así que eso recordará, he mostrado describe
la descripción que nos dio esto así que
vamos a aclarar esto. Pero el cubo cortó dos Troncos. Recuerda, demo. Es una vaina. Cuando los registros, definitivamente
funciona para pods, pods para los que funciona y el nombre del pod es demo. Verás, ¿qué es? Se busca perfil de resorte, y eso es muy preciso. Verán, quiero que ustedes
vean esto. Ustedes ven esto. Recuerda, en el archivo doc, estamos diciendo que debes
usar lo que pasemos en el perfil para ser
el perfil aquí, lo que pase aquí
debería ser el perfil, ya sea para Dev o para Docker Recuerda que lo que estamos
tratando de reflejar aquí es
Docker desktop Estoy tratando de simular
para los módulos. Así que volviendo aquí,
creé el entorno Dev,
cred it Docker Así que en realidad quiero
elegir el perfil Docker. Y como no
especificé nada, no sabe cuál usar, en realidad
está por defecto
al valor predeterminado Y una vez que se pone por defecto a esto, no
lo ve. Entonces ahora tenemos que especificar, Oye, quiero que uses Ok. Suponiendo que aquí especificamos
el nivel de alquitrán, esto no causará un
problema porque el Dev realmente se
habría resuelto directamente en las luces, ¿verdad? Por lo que está buscando el perfil de resorte que
se establece dentro de esta guía. Estoy repitiendo de diferentes maneras para que
podamos entender. El cliente entiende de una
mejor manera lo coloco. Eso es lo que estoy tratando de
lograr aquí, ¿verdad? Todo bien. Se puede
volver a verlo. Cuando me escuchas decir algunas cosas y lo doy la vuelta para
enviártelo diferente, solo
estoy tratando de transmitir la comprensión de diferentes maneras. ¿Qué hacemos?
¿Qué vamos a hacer? Ahora que existe el tema. El problema ahora es, que pasé de Pod Pod
ahora es capaz de funcionar, pero ahora estamos diciendo que necesitamos pasar en la variable de
entorno. ¿Cómo pasamos en la
variable de entorno? Pregunta impresionante. Ahí es donde ahora llegamos
al siguiente bit C config map, config map, y
eso es lo que estamos viendo en el siguiente video.
139. Mapa de configuración de K8s pod 3: Bien, gracias chicos
por seguir conmigo. Ahora antes de ahora, hemos estado haciendo de todo, desde
el estilo imperativo. Sin embargo, si ahora estás intentando crear el mapa
de configuración a partir del estilo imperativo,
sí, puedes hacerlo. Esto es muy
sencillo de hacer. Pero las cosas empiezan a
complicarse, y eso es lo que necesito para mostrarles que podrían hacer esto desde la línea de comandos con
un comando para entrar en uno. Estilo imperativo, puedo
crear el mapa de configuración. Pero para que
veas ahora cómo se conecta
para luego conectarlo a la vaina se
volverá muy confuso. Descubrí que me tomó un tiempo
aprovechar realmente esto también. Pero tenga en cuenta que puede
crear un mapa de configuración. Puedes crear directamente
el mapa de configuración usando
puedes crear un mapa de configuración usando la ruta de la que
te hablé usando el estilo imperativo, y eso es exactamente lo que voy
a estar mostrándote chicos ahora mismo, mostrándote chicos ahora mismo, para hacer eso, lo que
haremos es que te
mostraré cómo
crear un mapa de configuración. Solo te mostraré
la documentación cómo crear un mapa de configuración a partir documentación de
uberts, cómo
crear un mapa de conflictos, luego pasamos a usar el
estilo declarativo porque es más fácil poder detectar
cómo conectar
el mapa de configuración desde un punto de vista
declarativo,
d desde el punto de
vista imperativo,
y eso es lo que
voy a hacer el mapa de configuración desde un punto de vista
declarativo,
d desde el punto de
vista imperativo, d desde el punto de
vista imperativo, y eso es lo que
voy Entonces voy a hacer esto para crear
un mapa de configuración. Todo bien. Uh bien. Lo estoy mostrando ahora, vengo aquí y estoy mostrando cómo
crear mapa de conflictos. Esto tiene que crear mapa de conflictos. Simplemente escribe en la documentación
isCubanzio que puedes ver,
puedes crear usando
el imperativo sys crea mapa de conflictos, mapa de
conflictos, la forma corta
o el nombre corto es CM,
CM, C y M, Entonces crea
mapa de conflicto, luego pasas. Entonces decimos que si
quieres pasar en archivo, entonces en realidad estableces
un par de valores clave. O si no quieres
pasar el archivo, entonces
podrías
guiarse desde literal, luego la clave y el valor. Entonces si usas un giroscopio, recuerda lo que
te dije sobre gyron es crear el archivo para Sigamos adelante y hagamos eso.
Sigamos adelante y hagamos eso. Yo haré Kipct crea CM, o podrías hacer configmap es a la vez
lo mismo Por qué verlo, luego dash
dash de literal. Si lo haces desde archivo, te
sugiero usar de archivo. Si tienes una gran cantidad de propiedades ambientales
que quieres pasar, listas todo en el archivo en pares de valores clave,
luego lo pasas. Pero siempre me siento cómodo
usando a este tipo de Literal, que siempre es divertido para su uso. F literal, entonces paso mi llave. La clave, recuerda
la clave es primavera, perfil
iphone. Y
el valor es ¿qué? El valor es Docker, ¿verdad? Entonces quiero una corrida en seco. Todavía no quiero
ejecutarlo en mi compont. Correr en seco. Yo sólo quiero
obtener el archivo. Cuando consiga el archivo,
entonces lo vincularé en un archivo diferente
que tenga una olla, después veremos cómo funciona. Entonces cliente, luego O, YamuTenga en cuenta
que también hay que colocar a Jason Conseguimos a Jason para
ti. Vamos a hacer Jason. Digamos que no me equivoco
Le es solo decir Jason. ¿Dash era esto? Bien, perdón, no
me pasó el nombre.
Así crea ConfigMap. Yo sólo lo llamaré demo. Vamos a darle el
mismo nombre que Demo. ¿Puedes ver? Este ret tiene a Jason. Verás, obtiene
el valor clave de pago. Sólo quiero mostrarles
que esto es realmente increíble. Pueden pausarlo aquí chicos
y explorarlo un poco, pero yo solo voy a seguir adelante
para que puedan continuar con. Entonces entro aquí y lo
paso Jamo, ¿verdad? Increíble. Entonces ahí lo tenemos. Esto es exactamente lo
que necesitamos. Voy a mover esto a un archivo llamado. Recuerda, ya
tenemos un archivo llamado Demo o Yama, Demodo Yamo Pero ejecuto esto en una terminal
diferente, así que será en una
diferente así que
solo colocaré Demo o Yamo Si hago un gato, Demo o Yamo, puedes ver que ya
existe en este archivo Ahora, entonces volvería a escoger el último comando que ejecutamos para crear el pod, Para
crear el pod. ¿Cuál es el comando otra vez?
¿Cuál es el comando o no lo ejecuté
en esta terminal? Bien, lo que voy a hacer
es buscar vaina. Veo éste
vamos a borrar esto. Vamos a borrarlo.
No queremos quedarnos con esto. Vamos a borrarlo. Este es el comando
que estoy buscando. Escojo este comando, sosténgalo, luego eliminemos.
Voy a borrar la cápsula. Voy a traer aquí este comando, este comando, entonces yo
diría dash dash dry roun Lo mismo, no
quiero ejecutarlo. Yo sólo quiero presionar
todo junto. Entonces cliente dash todo YAML. Entonces quiero anexar
a la demo o YAML. Recuerda, cuando usas un solo un letrero hacia adelante
ese es un signo mayor que. Recrea el archivo o cancelará todo
lo que esté
dentro de ese archivo
y lo recreará Pero si haces el
doble mayor que, se anexará,
probemos eso. Vamos a hacer una demo CAT
dot Yarmo. ¿Puedes ver? Esto es un bolígrafo lo miro. Empezó a partir de aquí.
Necesito un espacio. Ahora bien, si quieres que
el ubertith ejecute un archivo de configuración
para que tengas varios recursos, no
necesitas
entrar en el archivo y hacer que parezca que hacemos
una VM, yo tengo una VMI es solo cómo
editar realmente. Para los chicos que usan Windows, no
sé qué VMs, no
tienes que
preocuparte por eso Todo lo que solo necesitas saber
es simplemente abrir el archivo en tu bloc de notas y hacer esto.
Eso es todo lo que significa. Entra aquí, entonces
pones tres guiones, tres guiones, esto, esto, esto Al colocar esto en estás
diciendo, este es un recurso, este es otro recurso,
y eso funciona para nosotros. Muy bien, así que si hago
una demo de CAT, chicos, pueden reproducir este video para comprobar exactamente lo que he hecho, para decir exacto y ustedes
entenderían Ahora, recuerden, no
creé esto manualmente. Usé el comienzo imperativo
para conseguirlo para mí. Podrías haber ido a
documentación a piquete, pero ese es mi estilo Yo uso imperativo para
obtener el comando. Yo uso ese giroon obtener el archivo u obtener el formato
declarativo, pasarlo a un archivo, crear otro recurso en él,
pasarlo en el Después los conecto entre sí. Entonces la pregunta ahora es, ¿cómo
conecto este mapa de configuración a este pod para que se pueda la configuración para dentro ver
la configuración para dentro de
las propiedades
del entorno Lo que significa que este pod
puede entrar en este mapa de configuración y elegir esta propiedad molesta.
¿Cómo hago eso? Entonces en lugar de
que yo te muestre directamente, quiero que también
te haga sentir cómodo usando la documentación. Entonces yo haría es que luego
iríamos a recoger. Ahora bien, así es como
cortar mapa de conflictos. Entonces, ¿cómo lo usas en una vaina? Si te desplazas hacia abajo, ¿verdad? Así que bajemos,
entonces config maps, voy a hacer yo solo haré configMap. Si hago mapa de configuración,
verías configurar pod para
usar un mapa de configuración. Si haces esto, bajemos. Verán, yo lo creo
igual donde les mostré chicos, entonces vamos a ir a una vaina. Ahora esta es la salida, crea configmap en archivo Así es como crear a partir de archivo. Les muestro chicos que tienen
muchas propiedades,
así es como crear a partir de archivo. Les mostré tanto chicos. Para que puedas crear a partir de archivo. Os muestro antes chicos,
para que podáis escoger, después escoger el nombre
del archivo y como spots. Quiero cablear a una vaina.
Ese es el objetivo aquí. Ese es el objetivo. Bien,
voy a ir a la vaina. Todos estos son mapas de configuración. Voy a pod,
pod, pod, pod, pod. Definir la
variable contenedor usando? No. Así que eso es fácil dentro de una vaina. Utilice el mapa de configuración para
encontrar en el comando port. Bien, esto es un puerto. A ver. ¿Ves? Ahora, puedo pasar
en una clave de mapa de configuración ref. Si no quieres pasar todo
el mapa de configuración, puedes elegir solo
la propiedad que usas. Pero la mayoría de las veces, no
hago esto. Lo que hago es, esto es bueno. Cuando estás usando el mismo mapa de
configuración para mucho valor, digamos que tienes
la misma aplicación que usando el mismo mapa de configuración. Pero realmente no lo
encuentro ideal. Si tiene una aplicación, deje que la aplicación esté
cableada a una confinación Una aplicación, un mapa de conflictos, una aplicación, un mapa de configuración. Eso es lo que en realidad prefiero. Yo sólo quiero
mostrarles esto también existe. Cobenc es muy dinámico
en serio, y es muy,
muy divertido de usar Sólo quiero
mostrarte todo. Ahora, agregue los datos del mapa de convicto
al volumen. A ver. El volumen poblado volumen, esto no es lo
que estoy buscando. Agregar transportar volumen específico del parque. Eso no es lo que estoy
buscando. Déjame hacer una pausa en este video
y volveré. Bien, chicos,
gracias. Así que estoy de vuelta. Esto es configurar todos los pares de valores
clave en un mapa de configuración como un
entorno contenedor todo se
utilizará, todo esto se utilizará directamente. Entonces eso es lo que
estaba buscando. Entonces ahora que lo tenemos, vuelve aquí, si ves esto, solo
tenemos que
escoger esto.th
estaría bajo porque esto es
Yam Bajo Yam Bajo nombre imagen commerce
environment from Entonces esto es lo que necesito.
Entonces si vuelvo aquí a mi así que voy a hacer una VM. Lo que voy a hacer es dejarme ver
si puedo dividir esta pantalla. Creo que del lado de Windows.
Entonces esta genial. Creo que puedo dividir esto.
Esto es lo que necesito. Solo necesito
establecer esta parte aquí. Yo solo haré VI demo
vengo aquí abajo, tiene
que estar en la
misma línea con esto. Misma línea vemos la misma línea. Imagen veo imagen, nombre, tiene que ser la misma línea, de
lo contrario, no la encontraría. EMV de Entonces este mapa de configuración, el mismo nombre, por favor,
el mismo nombre, cómo se ve exactamente
el mismo nombre No deberías mostrar tu
escritura correctamente, solo copia. Después columna, luego Sa nombre del espacio. Recuerda que es MO, también
tienes que asegurarte de eso. Cuál es el nombre y el nombre de nuestro mapa confinante también es
demo, También se llama la demo Eso es lo que me gusta
hacer. Si tu aplicación es como un servicio de pago, vamos a configurar
el servicio de pago. Si tu mapa de configuración o mapa de servicio de
pago, me gusta darte el mismo nombre para que
sepas exactamente mismo estoy usando exactamente lo
mismo. Todo bien. Con esto hecho,
hemos podido configurar con éxito
todo lo que necesitamos. Entonces si cierro sistema, si acredito si
corté el archivo demo, ves, esto ahora se
refiere a esto. Debido a que esto está
apareciendo antes de
esto, esto se creará,
luego cablearía esto luego se crearía
buscando este mapa de configuración. Si lo encuentra, entonces escoge la propiedad
y la usa. Entonces esas son las maravillas de
los cubanos, esas son las maravillas. Para después usarlo, hay que
hacer cubo, cortar dos, aplicar. Entonces la gente se pregunta, pero
han visto comandos como ubcotu crear y Qu Cotul. ¿Cuál es
la diferencia? Cucuu create simplemente significa que no has creado
un recurso antes CucURL Apply significa que este
recurso ya existe. Sin embargo, el archivo de recursos
que estoy tratando de definir, la configuración
final contiene cambios. Así que por favor revisa los
cambios y actualizaciones porque usamos CPC para
crear para una actualización, si te dices que ya existe
y
se ejecutó pero Cotul
aplicaría siempre estaría encendido Me gusta simplemente usar
Q Cotul Aplicar. Si es uno nuevo, si es uno
viejo, siempre va a funcionar. Entonces ese es el truco que usé. Después F después escojo el archivo. Mi archivo es una demo amo. Ver mapa de configuración creado
y este creador. Vamos a spa este mapa de
configuración
volverá a esto para ver si
todo funciona correctamente. Debido cubo cortó dos mapas de configuración. Recuerda, solo obtén una demo de CMS. Verás, esto existe. Esto no se muestra en ningún lado. Esto crea
con éxito. Yo lo haré describir, eso es
lo que describen. Esto describe ves los datos hay esto y el valor es esto es
increíble, chicos, increíble. Ahora vamos a explorar una olla. También hay un comando
Keep cut para conseguir todo. Entonces esto te muestra el pod te
muestra el servicio
a través de este despliegue, aún no
tenemos el servicio. Sólo estamos manejando
esto. Verás, ni siquiera
estoy corriendo todo,
demuestra que este tipo
ya está corriendo. Esto es increíble, chicos.
El ganado de cubo recibe cáscara. Verás, esto se está ejecutando.
Es decir, no falló. Si tuviera que explorar,
vamos a registrarlo. Cube troncos CatUGS,
o troncos Cucatu. Mm te mostré
registros, es para vaina. Registros de gato, luego paso
en nombre de la vaina. ¿Puedes ver todo lo creado? Encontré esto y
pude ejecutar con éxito automáticamente cableado
el mapa de configuración. Este tipo definitivamente está bien. Entonces, ¿cuál es el
comando que usé aquí? Déjame ver mi rasguño?
Recuerda a los lunares usándolo abierto. Puedes usar un cartero aquí. Entonces estoy usando el despliegue aquí. Entonces esto es lo que
se supone que debo llamar. Ahora, nos encontraríamos con
un tema aquí. Nos encontraremos con un problema. Les voy a mostrar, chicos,
cuál es el problema. Recuerda que esto es solo un captador.
Puedo usar un rizo, ¿verdad? Si uso un rizo, solo pasa esto en Esto
básicamente debería funcionar, ¿verdad? No deberías tener ningún problema. Si vas a conectarte, no
hay nada en ATT. ¿Por qué es incapaz de conectarse? Esto es exactamente lo que estoy
tratando de sacar a la luz. Debes entender que
una vaina es un entorno. Tienes una mejor manera de explicar esto
en realidad es sacar a colación mi Joio así que esto podría
darnos porque si no
entiendes esto, luchas, y
ni siquiera sabrías lo que realmente está
pasando, ¿verdad Quiero reducir esto
un espectáculo. Sí, podemos. ¿Descartar? No. Deseche,
bien, deseche, Bien. ¿Qué tal esto se detiene
que creé hace algún tiempo Consigamos uno nuevo, un espacio en blanco. ¿Bien? Entonces la hay. Entonces, piénsalo así. Este es todo su sistema.
Este es todo su sistema. Posteriormente, este es todo
su sistema. Ahora, todo tu
sistema puede ser un nodo, el nodo Cuberntis es
un sistema lineal Cada
nodo de Kubernetis es un sistema , ¿verdad?
Es un nodo. Ahora, cada nodo, solo
voy a explicar que puede que no sea con precisión,
sino como gas en el. Cada nodo del sistema tiene ahora
un clúster de Kubernetis.
Esto es ubertis Entonces este es su sistema
operativo, el dektop Docker de Hals Cual es tu anfitrión, supongo, donde puedes
conectar tu 80 82. Pero hay un ambiente
que es el cúmulo ubertis. Dentro de este cúmulo ubertis, vamos a hacer zoom ahora
tienes un pod aquí se puede valorar. Solo estás golpeando esto cuando haces 80 80. AT ET sólo le está pegando a
este tipo de aquí. Entonces ATAT sólo
le está pegando a este tipo de aquí. No entra aquí. Esta es tu vaina. Déjenme
darle un texto a esto. Pod. Digamos que este clúster de
Kubernetes Digamos que es el cúmulo de Cubernss. Este es tu anfitrión.
El anfitrión podría ser un sistema Linux donde realmente se colocara a
los cubanos La mayoría de las veces siempre es
un servidor Linux, y este es un host. Mientras golpeas ATT, esto es
lo que intentas golpear. Esto ni siquiera puede
entrar aquí en absoluto. Esa es una
capa de seguridad. Ahora, ¿qué nos
lleva al siguiente paso? ¿Cómo evalúo el pod desde el host desde el
sistema host o el propio host Estoy hablando de
quante hizo puerto. Quiero valorarlo afuera que
estamos haciendo. ¿Cómo lo evalúan? Después hay un concepto
llamado port forwarding, Port forwarding, que voy a explorar en el siguiente video.
140. Reenvío de puertos v2 90p mejorado en K8s pod 4: Bien, chicos, muchas
gracias por volver
conmigo. Todo bien. Esto es Z aquí. Ahora, le expliqué que esto es
lo que estás tratando de golpear. Todo el sistema,
si lo miras, tiene de cero a 65,535, estoy en lo cierto. Macetas, ¿verdad? Entonces, al intentar golpear
esto es diferente de este servidor, ¿verdad? Ahora estás teniendo un Linux. Ahora, cada contenedor, recuerden que les
mencioné chicos que la vaina contendrá contenedores, yo contendrá contenedores. Debes entender que el entorno
que incluso está ejecutando que tu
aplicación está ejecutando en tu contenedor es como
un sistema en sí mismo, es
decir, en pod. Entonces el como está en las
vainas, quiero decir. Lo que estoy tratando de sacar es esto. Déjame sacar esto a la luz. Vamos a expandir estos un poco. Suspenden estos un poco. Vamos a abarcarnos estos un poco. Este bod contiene un contenedor
contiene un contenedor. Sólo quiero explicar esto contiene un contenedor
o contenedores. Contiene estos
contenedores, ¿verdad? Y los contenedores en sí
diez chico para entender esto,
este contenedor está ejecutando una aplicación que
tiene un sistema en sí mismo que tiene de cero
a 65,535, Macetas. Este tipo Este tipo tiene lo mismo. Entonces estás tratando de conectar
estas ollas a estas macetas. Quieres reenviar un bote aquí. Estas macetas deben
estar vinculadas a una olla. Entonces, lo que estamos tratando de
lograr es vincular una olla aquí. ¿Por qué se mueve este artículo? Creo que está tratando de
ver sacar esto, así que vamos a traer a este tipo aquí. Entonces déjame traerlo aquí. Entonces esto debería estar
conectado aquí. Y este tipo debería
estar conectado a esto. Bien, creo que deberías
hacerlo. Sí, esto debería servir. Así que estoy tratando de conectar
una olla aquí a una olla aquí. Entonces, si golpeo un bote en este host, entonces vendría
a este contenedor, donde se está ejecutando mi aplicación, y ahí la golpeó
en realidad golpeó las mismas macetas. Porque necesito que
rebobines este video para
escuchar para entender realmente lo que
realmente mencioné de nuevo Las ollas que corren sobre
tu anfitrión quieren estar vinculadas a las ollas que
corren sobre este tipo, y eso es exactamente
lo que queremos hacer ahora. Y ese es un concepto en cubano que se llama pot forwarding, ¿
verdad? Reenvío de ollas. Ahora la aplicación se está ejecutando. Quieres conectar una olla
en este sistema en particular, recuerda esto incluso
ubuntu, ¿verdad? Un sistema Linux
al contenedor que ejecuta este
tipo. Entonces, ¿cómo hago eso? Hay un concepto entonces
haces un cubo cortar un cubo cortar dos,
espero recordar el comando. Entonces vamos a hacer antes que nada, ¿cuál es el nombre de
la vaina? Obtener vaina. Este es el nombre de la vaina, recuerda,
por favor tenlo en cuenta. Entonces lo que entonces
hacemos es bien entonces hacer cubo cortar macetas hacia adelante. Macetas hacia adelante. Entonces el nombre el nombre del nombre
de la aplicación del nombre del pod del pod, recuerde el nombre del pod. Ese es el nombre
del pod es demo, recuerda que el pod es demo. Entonces queremos vincular
ocho en el pod a una maravillosa auditoría a
ocho en el anfitrión. Ahora podemos ver esto.
¿Qué dice? Se está reenviando desde las ollas
locales, estas ollas locales. Eso es contenedor local.
Está reenviando TAT a los anfitriones, que es ATAT Esto no se está ejecutando
en segundo plano. Entonces puedo entrar aquí. Déjame entrar aquí
y luego dividir esto. Verás, me acaban de
dividir la proyección. Entonces puedo hacer una llamada.
Lo que intenté asesinar no estaba trabajando.
Hagamos una llamada. ¿Ves? Tengo las lunas de vuelta. Espero que este concepto
sea claro, chicos. Vamos a hacerlo bonito.
Vamos a hacerlo bonito. Creo que hay una manera de hacer
las cosas bonitas en creo que es JQ o JP?
Ahora no me acuerdo. Lo siento, ahora no me acuerdo. Hay una manera de formatos bonitos, Jason Jason entradas
en IJQ o JP? ¿Es bonito formato o
algo así? No puedo recordar. Bien. Déjame cómo
formatear bastante. Creo que es bonito
formato formatos bonitos. Déjame fijar tu línea. Vamos a formatos bonitos
Jason y Linux. Ponlo ex Jason Linux. ¿Qué es otra vez?
Príncipe Bonito. ¿Qué es? ¿Cuál es el comando otra vez?
Creo que es Jason. Creo que es Jason Jason
subrayado PP, ¿es esto correcto? Sí. Sí. ¿Puedes ver? Jason
subraya PP Ya ves que soy capaz de
conectarme realmente. Chicos, espero que este
concepto sea claro. Déjame repasarlo una vez más. Tienes un servidor,
que es un host. Kubansis se desplegó dentro de
ese contenedor .
Dentro de ese anfitrión. Ahora quiere evaluar que quiere
llamar a su servicio, que se desplegó dentro
del contenedor Kubansis Estos dos son dos entornos
diferentes. Este es un entorno diferente. Es ambiente aislado
dentro de este ambiente. Ambos están ejecutando sus propios
datos, pero sus propias macetas. Quiero conectar las
ollas de aquí a
la olla aquí para que
cuando golpee a este anfitrión, para reenviarla para
entrar en esto y
llamar a lo que sea olla que reenvié
aquí y eso va a funcionar. Para ilustrar esto más, ahora considere
aquí este concepto. Vamos a cerrar esto. Vamos a adelantar eTet a 1991. Entonces, si ahora llamara al 80
EightK ¿qué pasaría? ¿Puedes ver? Ya no
entiende esto. No obstante, si ahora lo
remito a 90 si ahora llamo 1991. ¿Conseguí esto correctamente?
¿Qué me perdí? Anfitriones locales. Conexión.
Esto está bien, veamos. Manejo de esto, esto,
esto. Apenas los minutos. ¿Lo estoy mezclando?
Apenas los minutos. Déjame empujar este 90 1991. El ocho. Por dirección de mezcla,
probablemente mezclándolo. Bien, probemos esto. Ho
esto es para los anfitriones. Esto es para el contenedor. Pensé que lo estaba haciendo
al revés. Creo que ahora entiendes
el concepto. Así puedo cambiar poste el bote al que
realmente quiero conectarlo. Entonces chicos, aquí hemos tocado un concepto
bastante genial. Les he enseñado a
hacer un montón de cosas. El concepto que
actualmente estás buscando en el reenvío
puntual
porque no pudiste acceder implementamos un ubertípodo que está conectado config map.
Entiendo. Creo que se puede relacionar
eso, pero todavía
no sabíamos cómo conectarnos. Entonces esa es nuestra aplicación, y ahí es donde surge el concepto de poner adelante y surge. Hay mejores formas en que no se
recomienda pod , no
se recomienda para GD play a pod Ahí es donde viene a estar el concepto
de despliegue. Pero el concepto de
implementación ahora tiene venir con algo
llamado servicio, y ese servicio
puede ser como un balanceador de carga para luego llegar y obtener
todos esos detalles Más de esto viene,
pero en la siguiente parada, van a explorar el
servicio en el siguiente video, los
veo chicos en el siguiente video.
141. Puerto de nodo de servicio K8s: Bien, chicos, aquí, gracias por
volver conmigo. Hemos podido
explicar estos detalles, y podremos ver esto. Esta era la ruta
del reenvío de pod, así que ya no estamos usando
eso, así que solo voy a poner esto en cola. Todavía tenemos nuestra cápsula funcionando. Así que mantenlo trabajando consigue PO. Vea nuestro pod funcionando. Entonces, ¿cómo exponemos Z un servicio? De hecho
podrías entrar ahí. Este es un comando muy
sencillo, solo
usamos exponer. Entonces queremos
exponer entonces el nombre del pod de
exposición de servicio, estás tratando de
exponer el pod. Entonces probablemente le daremos
un nombre queremos darle un nombre. Vamos a llamarlo servicio de demostración. Esto lo podemos hacer. Entonces
estás tratando evaluar
realmente la vaina desde, digamos, usemos lo
mismo, ATAT Después las macetas objetivo.
Yo no dirigía esto. Yo solo haría un tiro en
seco a las macetas objetivo. Target pods, T. Con eso en mente, veamos. Veamos ahora el servicio. Esto es demo, sí, sí. Necesitamos el nombre.
Es el nombre del pod que es demo. Entonces ese es el nombre de la vaina. Entonces, ¿cuál es el
nombre del servicio? ¿Nombre? Entonces llamémoslo un servicio de demostración.
Creo que lo estaba mezclando. Eso será un servicio de demostración. Entonces quiero correr como una corrida en seco. Veamos cómo se verá. Ejecutar en seco, luego lente, luego O, DyamOH ¿funciona esto? Bien. ¿Pueden ver a estos chicos? Esto es simplemente interesante. Muy interesante. Entonces ahora, soy capaz de ejecutar un servicio. Entonces hay un concepto
llamado servicio. Los servicios son de tres tipos. Podríamos tenerlos
como IP de clúster, podríamos tenerlos
como balanceador ud Podríamos tenerlos como una
olla ud. ¿Cuál es la diferencia? La IP del clúster no es accesible
desde el exterior. Este es el tipo de servicio
que usas dentro de pods o dentro de servicios en tu
clúster de cupones que no es
accesible para el exterior. Por lo que nadie podrá
evaluar que solía en realidad tal vez el servicio por cable. Un buen ejemplo podría ser que tengas un front-end funcionando en
el mismo entorno tu back end pero tu front end quiere evaluar un back end
que tenga varias instancias. Entonces, a menos que tu front end
también tenga varias instancias, no
puedo llamarlo pod directamente. Prefiero
llamarlo servicios que harían balance de carga a varios pods varios.
Ese es el concepto. Necesito que ustedes vuelvan
a escuchar esta parte. Desea conectarse realmente a un servicio o a un pod que
tenga varias instancias. Un servicio es la idea. El servicio es como
la interfaz que se encuentra al frente y se conecta. Podrías tenerlo
como IP de clúster. De esa manera podrías conectarte y una vez que estén en
el mismo entorno, podrías
elegir la IP. Yo wal renderizo la IP de
su servicio y la IP
del servicio puede resolver a sus pods ejecutando su
entorno. Eso es un poco. Si se está ejecutando como un pod de
nodo, nodo pod simplemente significa que quiero evaluar los pots de este
servicio desde el exterior. De la misma manera que
hicimos post forwarding. Eso es lo que las
ollas de nodo. Los potes de nodo SE son reenvío puntual. Quiero
verlo desde afuera. Entonces Load balance,
como suena su nombre, solo
desea
equilibrar la carga todo, pero no exploraríamos el balance de carga en esta sección porque
Load Balance normalmente funciona con proveedores de
servicios que tienen plataformas de equilibrio de
carga, que entonces probablemente
tendrían un nombre de dominio, en realidad mapeando a través de él, que puede
acceder probablemente HDP como wood.com y el como. Espero que en realidad
suene mejor. Bien, esta parte quiere decir a lado, no
podemos acceder al balanceador de carga,
así que cambiaría esto Lo que haría es entonces crear esto
dentro voy a crear
esto dentro voy a crear y agregarlo para que se
siente en el mismo archivo Así demo punto Yermo. Estoy seguro que ustedes saben
lo que estoy haciendo esto. Carritos o VI demo punto
Yamo. Aquí tenemos esto. De hecho voy a entrar y
hacer lo mismo aquí, dash, dash, dash, ¿verdad? Esta vez, recuerda, los puntos objetivo,
dicen, ahí está esta parte. Ahora voy a agregar
voy a agregar un concepto. Les voy a mostrar chicos,
traigan la documentación. Trae a colación la documentación.
Echemos un vistazo a los puertos no. No en macetas. ¿Yo sólo un
contrafind? No en macetas. Estas son macetas de notas ver
el uso, un tipo, notas. Ya ves, ahora tenemos que
usar un tipo, note pots. Ver no recuerdaMPK it
from ¿Dónde está la etiqueta? Simplemente bien. Está bajo
especificación lugar bajo especificación. Entonces bajo spec, voy a
tener un tipo node pots, y cuando tengas
un tipo node pot, tienes que asegurarte de
pasar en los botes de nota. Verás, NodePots solo está
disponible en esta gama. No se puede hacer 88
con los pods de nodos. Recuerda, mencioné que la
olla es 0-65535, ¿verdad? Pero sin embargo, cuando estás
usando macetas de nodo tienes que elegir dentro de este rango. Eso es lo que sólo está
disponible para ti. Voy a recoger a este tipo ya
asignado en las ollas. La olla es una olla es lo que la olla en la
que se encuentra el servicio. El punto objetivo, el bote objetivo es la vaina las macetas de la vaina, la vaina
a la que intentas acceder, ¿verdad? Eso lo expliqué
en el último bit. Entonces la última parte que estamos
tratando de hacer aquí. Voy a entrar aquí y
voy a poner un bote de nodo. Nodo Desnudo Hots.
¿Qué acabo de hacer? Oh, hombre, estropeé el archivo. Hagamos unas botas. Vamos a editar. Esto es
lo que estamos haciendo. Bien. Por lo tanto, el tipo de especificación de los potes de nodo. Macetas de nodo. ¿Eso es exacto?
Así que vamos a confirmar eso. Sí. No ollas, entonces las últimas
partes que entran aquí. Bien, todavía en estado de ánimo de edición. Las macetas de nodo. Entonces escojamos el rango. Recuerden, 3 mil. 30,000, solo elijo 10,007 o
simplemente puedo usar algo diferente
que estamos usando aquí Yo sólo puedo escoger 32,007 60. Todavía está dentro
del rango, 30 mil. 2000 lo siento, 2760, todavía
dentro del rango. 32,760. Sí, puedo elegir
esto y esto funcionaría. Ahora, ahora estamos usando
un balanceador de carga, así que básicamente puedo usarlo. Puedo quitarme esta
. Ahora usando un balanceador de carga.
Me he quitado esto. Recuerden, lo he
distinguido. No lo he hecho. El archivo estaba desordenado así que
algunos aquí. Yo haré esto. Voy a guardar esto. Todo bien. Entonces la demo de Kat. Todo bien. Entonces tenemos esto. Lo
que voy a hacer, recuerda, te mencioné
si tienes el servicio encendido antes de
que entonces puedas aplicar. Aparte de que corremos,
creamos, corremos, queremos
aplicar ahora, hacer un cubo. Yo uso a este tipo para exponer
realmente. Estoy seguro que ustedes pueden relacionarse en caso de que necesiten esto, ¿verdad? Muéstrales chicos
para que realmente se presenten. Eso también lo demuestras. Sí, eso lo demostramos. Entonces
uh sí. Nosotros haremos esto. Yo sólo quiero subir un poco
y recoger el bote adelante. Recuerda, el primer tipo
aquí es para el anfitrión, mientras que el segundo
es para la propia vaina. Yo sólo quiero mostrarles a
ustedes para “pot forward”. De hecho, he agregado
los comandos, así que solo quería
actualizar mi lista. Ahora que tenemos
esto, ¿qué hacemos? Sí recuerdo CAT demo amo,
entonces tenemos todo esto. Todo lo que lo configuramos,
luego podemos hacer corte de cubo dos aplicar. Recuerda la diferencia en demo. Entonces, ¿puedes ver
que esto no cambió? Esto no cambió, al igual que,
oh, ya se ha configurado. Concord acaba de ser creado nuevo. Esto se acaba de crear nuevo. Vamos a explorar. Mantener cortado
Kcat dos obtiene PO SVC Y ustedes se preguntan, ¿qué
acabo de hacer? Yo no hice nada. Cuando quieras llamar a dos Vss
o tres viseras juntas, podrías hacer esto Podrías
separarlos con un comando y te va a conseguir
todo. Esto es todo lo que estoy manejando. Digo, consígueme la vaina. Consígueme el mapa de configuración, consígueme el pod y
consígueme el servicio. En realidad agregaré
este comando también, así que también está
disponible para ser usado. Entonces entiendes eso y ya puedes
ver, estamos manejando todo esto. Ahora, Asumi no es
un balanceador de carga,
un balanceador de carga
automático se mapeará una IP pública que IP estaba disponible pero no lo
estamos haciendo Entonces esto es lo que estamos haciendo. Entonces tenemos que ver
esto algo así como un reenvío de bote que ahora
está reenviando 80 80 a 32,007 60 Eso es lo que se está haciendo casi como internamente.
¿Entiendes? Entonces con esto, vamos a evaluar
ahora para que no
podamos evaluar TI para estar evaluando desde 32 mil 760.
Hagamos nuestro Kern Justo lo mismo lo
estaremos haciendo o kern. ¿Cómo se llama
llamada? Bien, sí. Entonces el Kern, en esta ocasión
va a estar evaluando
desde ese bote como 2760 entonces como lo hemos hecho antes, vamos a formatear, Jason
en el Sco PP Todo bien. Verás, esto
funciona. Esto funciona bien. He podido explicarles
cómo pueden usar servicio en coberts,
cómo pueden exponer Una vez que tienes una cápsula funcionando, no
necesitas realmente
empezar a preocuparte por tu cabeza. Solo usa el comando
para exponerlo, exponerlo. Entonces recuerda, como también
mencioné, necesitas cambiar realmente. Necesitas realmente hacer
las ollas de modo Notep te
dije nota ollas es
más como el reenvío de ollas Le dije que hay tres
tipos IP cerrados, note pot, balanceador de carga El balanceador de carga es para proveedores de
nube que mapean
automáticamente una IP pública, lo que no está haciendo aquí ¿Cuál es el nombre? El
tipo de cierre se usa internamente para comunicar internamente
por qué las ollas de humor es lo que estamos usando en este momento para evaluarlo desde el exterior. Y eso es exactamente lo que hemos
podido lograr aquí. Espero que esto sea genial, chicos, y espero que hayan encontrado esto
muy atractivo hasta ahora. Bien, con esto hecho, hemos podido
conectar realmente sus servicios, ¿verdad? Y lo último pero no
menos importante de lo que vamos a estar hablando, que es el
maestro de armas de todo, que se utiliza en la producción. Por lo que el pot forward no se
utiliza en la producción. La exposición de servicio para
la vaina no es como en producción. Lo que se utiliza es el despliegue. Repito lo que es
qué despliegue. Entonces, el despliegue es lo que se usa porque el despliegue nos sirve para poder establecer el número de
instancias del pod
que se ejecuta a voluntad Podemos reducir, podemos
escalar. ¿Hacemos todo esto? Quienes hacen todo esto. Os voy a
mostrar chicos cómo funciona en el siguiente video.
142. Despliegue de K8s: Bien chicos, gracias
por volver conmigo. Esto es Z aquí. Ahora
hemos llegado a la parte más emocionante de usar Cuperti, que son
las implementaciones, ¿verdad? No es lo más
emocionante de esto. Muy divertido, de verdad. Al menos ese es el quid de lo que estamos
tratando de lograr aquí Ahora, no podemos usar el pod ya creado porque se
supone que la implementación administra tus pods, se supone que administra tus pods y se supone que debes construir para
escalar hacia abajo, puedes aumentar la
instancia, las instancias. Con ese concepto en mente, necesitamos hacer cola al pod. Tenemos que sofocar los
servicios están disponibles. Tenemos que hacer cola,
pero podemos dejar el mapa de configuración porque
el mapa de configuración se
utilizará aún cableándolo. ¿Qué hacemos? Yo
explicaría esto en detalle. Cubo dos. Para los que están
cansados como yo, tecleando esto para que solo
puedas alias. Alias, Q dos, solo
puedes establecer clave. Entonces vamos a Keep
Koto, ¿verdad? Kupkato Entonces ves un skip
Koto. Yo puedo hacer K. Bien, consigue CM, SVC SVC significa servicios. Puedes escribir servicios
o el formulario corto en SVC. Entonces qué pod PO. Entonces servicios en ningún orden en
particular. Entonces haces esto, así que
tenemos todo, ¿verdad? Entonces quiero sacar a este tipo porque ya
no lo necesitas. ¿Qué hacemos? Me pondría en cola Eliminar pod. Bien, qué, primero eliminemos
el servicio. Eliminar SVC SVC, el
nombre es Demo service. Todo bien. Entonces, volvamos a
ejecutar esto. Así que ya ves, ya no
tenemos servicio. Así que vamos a eliminar el pod ahora. Este es el servicio POT lo siento,
esto es Demo más bien. Así demo Periodo de Gracia. Periodo de gracia DF. Oh, lo siento, Dash, lo que te guias. Eso es ir. Vamos a comprobarlo de nuevo. Todo bien. Solo
tenemos esto disponible. Ahora entonces necesitamos entonces crear
el archivo de implementación ahora. No estaríamos usando
el servicio estaría exponiendo el
archivo de implementación. Ya no la vaina. Recuerda el pod, el
servicio expone un solo pod, que es el pod que hicimos antes. Pero imagina si ahora tienes
varias instancias de una vaina. El servicio se conectaría
entonces con el despliegue
que está administrando todos los pods y exponiéndolos desde un
solo punto de entrada. Entonces, una vez que lo golpees,
irá a cualquiera de las
vainas por defecto. Estoy seguro que es más como que no
sería un round robin, como un balance de carga y un equilibrio de carga
automático dentro del despliegue cuando lo
golpeas
a través del servicio, para luego marcar cuál está menos
ocupado y volver a ti. Teniendo eso en cuenta,
¿cómo se crea una vaina? K, crear, implementar o usar
implementaciones en su totalidad. Desplegar es una forma corta, implementar, luego el nombre del despliegue, lo
llamaré implementaciones de demostración Entonces dash dash imagen. ¿Cuál es la imagen que estamos usando? La imagen que estás usando
es Zico Z, ¿recuerdas? Después guión demo, KHS, luego 10. Estoy seguro que esto es Clays,
luego la olla, ¿cuál es la
olla a la que estás apuntando? El bote es ATAT. ¿Nosotros? Sí, ATT. Entonces
hagamos un giron Líneas Dash gyroun, O, Yarmo. Cuántas réplicas queremos
dash dash replica, Réplicas. Son réplicas o réplicas o finales si no lo ve Queremos menos tres réplicas, réplicas dash dash, Esto es lo que la vaina no
tiene. Muy bien, Sky fácil. Aquí soy una réplicas, y esto me ha dado
exactamente lo que necesito chicos Dejaría el
archivo demo que hemos creado hasta ahora, lo dejaría
solo y
procesaría que en
realidad lo publicaría en
una carpeta de recursos. Así que vamos a
hacer es conectemos esto a un archivo
llamado Deploy. Yo lo llamaré demo. Implementación de demostración. Esta debería ser la mejor
demostración de despliegue de Yarmo, Thermo desplegado o Yarmo Así que los CATs, luego despliegan, para que podamos tener
todo junto. Después despliéguese. Ya
ves que lo tenemos. Voy a seguir adelante y después
hacer una demo CATS punto Yermo. Recuerdo que necesitamos el pase porque
necesita
evaluar realmente el pase para
el mapa de conflicto. Haré un despliegue de demostración VI, luego haré un inserto, luego pasaré esto aquí,
luego volveré aquí, luego haré guión guión, guión Ahora tengo mi mapa de configuración. Mi mapa de configuración
vendrá aquí para conectarlo. Recuerda que también necesitamos
luego entrar aquí para luego
cablear estás cableando
el mapa de configuración. ¿Recuerdas? Esto está en el
mismo nivel que esta parte, este ambiente de esperanza
lo conseguí correctamente. Entonces déjame
ir a este expediente. Solo vayamos a este expediente. Entonces lo que quiero hacer es que
vayamos a este archivo aquí. Sólo puedo cortarlo
directamente demo yamo. Entonces esto es lo que
necesito entorno desde entonces config MapRef. Entonces, ¿cuál es el
nombre? El nombre es Demo. Todo bien. Se puede ver que los chicos han podido hacer este
éxito con él. Esto es exactamente lo
que necesitamos y hemos podido lograrlo de hecho. Bien, chicos, esto se ve bien. Esto se
ve muy bien. Hemos podido realmente
hacer todo lo que necesitábamos hasta ahora, y esto en realidad es
bastante exacto. Bien, así que en realidad
tenemos esto realmente resuelto. Entonces creo chicos, ustedes entienden lo que
hemos hecho hasta ahora. De hecho, hemos podido cablear esto reemplazar
el archivo
de implementación. El archivo de implementación ahora
usa la configuración. Entonces el archivo de implementación
es lo que estamos usando ahora. Así que vamos a ejecutar esto. Veamos esto accesible. Si esto es accesible, eso es
una gran victoria para nosotros, chicos. Entonces solo podremos
exponer el despliegue
desde el servicio, y voy a tomar exactamente este mismo formato, ¿
verdad? Exacto mismo formato. Y sería
bueno ir, chicos. Bien, así que hagamos
esto. Entonces voy a hacer esto. Y bien, vamos a
ejecutar este archivo. Vamos a ejecutarlo. Voy a hacer, una vez más, asegurémonos de que
nada corra. Verás, solo
se está ejecutando el mapa de conflictos , así que solo
voy a despejar esto. Solo cortaré dos aplicar porque el mapa de
conflictos ya existe. No quiero recrearlo F, luego despliegue Deploymo,
ejecutemos Verás, demo creada,
implementación creada. Vamos a ejecutar otro comando Esta vez
solo empieza a desplegar. Dame todo. Verás, tenemos tres instancias ejecutándose. ¿Esto no es interesante, chicos? Tienes tres instalar
porque ves el pod, está mostrando el número
de pod existente. Tres vainas están funcionando
porque son tres. Tres implementaciones porque obtienes las tres instancias usando tres disponibles tres,
y esto es lo que encontramos. Esto es simplemente increíble.
Esto es increíble. Kubernetes es simplemente increíble. Necesito mostrarles chicos para que
ustedes vean cómo es y disfruten usando Kubernetes Ahora que hemos hecho esto, necesitamos saber si está funcionando. Necesitamos saber realmente ¿esto
está funcionando o no? Tenemos que exponer. Tenemos que exponer
el despliegue. Tenemos que exponer el
despliegue ¿verdad? Y para exponer las implementaciones, tenemos que ejecutar tenemos que
ejecutar la aplicación Tenemos que ejecutar el
servicio de exponer para hacerlo realmente. Así que de la misma manera que
logramos el último, solo voy a hacer eso y lo
agregaría a un archivo de despliegue, y eso haría que
las cosas en realidad se muevan manera
más espontánea. Entonces, ¿cómo hago eso? Hago PC dos, expongo implementaciones de despliegues.
Hagamos algo. Necesito el nombre de
mi archivo de implementación. Bien, ese es el nombre. Así que recuerden que lo
he usado como, exponer despliegue, o
puedo decir exponer despliegue, lo que funcione para
usted, despliegue ¿Cuál es el nombre? El
nombre es demo Deployment. Implementación de demostración.
Implementación de demostración, ese es el nombre, implementación de demostración.
Entonces, ¿cuál es el tipo? Quiero tipo. Quiero tipo. Quiero tipología node pots porque eso es lo que
necesitamos, Node pots. Recuerden, podríamos crear
esto de manera declarativa. Pueden ir a revisar la documentación, pero solo
les estoy mostrando una manera sencilla tener esto realmente cableado. Entonces, ¿cuál es la olla de la vaina que estás
tratando de evaluar? La vaina la vaina es 80 80. Hagamos un Gyro en él. Gyron liens O. Eso es O Yarmo ¿Ves? Esto
me lo da. Obtiene el servicio. Simplemente haré lo que voy a
anexarlo a mi archivo de despliegue de demostración Impresionante. Voy a aclarar esto. Entonces haz VI demo, despliega, y tengo eso. Si vengo aquí, aquí es exactamente donde está.
Comienza desde aquí. Mi hago esto, entonces solo hago dash, dash ,
dash y completa
todo lo que necesito. Recuerda, cuando estás
usando una olla de nodo como te
mostré para la última parte
cuando estamos exponiendo una vaina, necesitas agregar dos cosas. Número uno, ves que ha agregado
el tipo nodo pot, así que no importa que
esté arriba o abajo, sino que debe estar en la misma
línea con esta sección de pot. Esto está hecho. El siguiente
objetivo es que necesites agregar tus macetas de nodo NodePort, desde qué bote de nodo quieres acceder
a él Así que me quedaré por ahí. Yo solo uso al azar. Entonces 32 000. Bien. Eso es tan 32 mil,
así que eso funciona el resto Entonces con esto hecho, solo
voy a hacer esto. Voy a estar bien. Ahora que lo he configurado todo, pueden pausarlo, chicos. Déjame solo cortarlo de nuevo por si quieres hacer una pausa aquí, solo para cortarlos caso a corte, así ya ves, es así
lo que parece. Para que puedas hacer una pausa y ver comparar con lo que has
generado desde tu propio fin. Me aseguro de que todo
sea exacto. Una vez que
muestres que todo es exacto, entonces puedes hacer una solicitud de K. Recuerda, estoy postulando
porque ahora
tengo dos recursos creados.
No quiero recrear. Pero a medida que cubas, aplica,
luego despliegue de demostración. Así que ya ves, esto no se crea. Esto no se crea.
Esto se crea. Entonces hagámoslo ahora hagamos ahora
todo esto para conseguir todo. Verás, tenemos un
mapa de configuración, tenemos una demo, tenemos un puerto que se está ejecutando, no hay errores,
tienes una nota puertos. Esto tiene un cerrado sin exón explicó qué
es el En yp en el último video Entonces también tenemos esto, que
es el bote reenviado a 32 mil. Esto hecho, voy a mostrarles algo un
poco increíble, ¿verdad? Así que me alegro de estar usando a este tipo. Me alegro de estar usando ¿cuál es
el nombre? Esta terminal. Este terminal me asiste puedo dividir pantalla,
varias pantallas. Ya ves que tengo otra
pantalla aquí, ¿no? Ahora bajo pantalla. Entonces vamos a conseguir una pantalla más aquí
porque tenemos tres. Entonces, ¿qué voy a hacer?
Quiero mostrarles chicos. Recuerda que podríamos usar troncos. Los registros podrían decirnos cuál
estamos golpeando por vez. No sé si
le agregué registros,
pero ojalá
podamos conseguir. No lo sé. Yo no comenté. Hombre, creo que no hice eso. Lo que ojalá agregué
algunos registros aquí. Vemos entrar el registro, así que sabemos cuál se está
evaluando por vez. Veremos cuál se está
evaluando por vez. Creo que sería
genial porque yo habría expuesto a los tres. Yo te habría mostrado
tres solicitudes, ¿verdad? Las tres aplicaciones.
Todo bien. Solo hagamos una demo.
Si no lo entiendo, entonces probablemente sea
algo que rápidamente me apresure a hacer y luego
configurarlo todo de nuevo. Lo que voy a hacer es
elegir a este tipo. Y voy a hacer K. Recuerda, no
puedo hacer K aquí porque
no he terminado como, aAsk Kekutu Entonces Alias, K a Kukatu no
tengo que teclear un cuatro
K tenias K a Windows, realmente no
sé cómo usar en Windows. Bien. Entonces con esto, entonces
hago un Kog K logs. ¿Ves? Esto me da los registros. Ahora quiero quiero verlo. Quiero vigilar los registros. Iniciar sesión Kupkotpp Sigamos. Creo que es F.
Creo que es F. Genial. ¿Ves? Yo puedo seguir. Yo elijo a este segundo tipo. Yo entro aquí y hago K, registros, F. Recuerda, podrías hacer DF antes o después no
importa. Yo le sigo. Ahora ya ves. Entonces el último, elijo a este tipo y hago K logs, F. El último. Tenía estas tres
instancias ejecutándose. Hagamos una llamada. Ahora, haz una llamada. Entonces déjame recogerlo de mi
boceto. ¿Dónde está el boceto? Este tipo, voy a hacer una llamada, luego voy a hacer una V. V
da más contexto. Yo contexto. Entonces obtienes Gen. Quiero ejecutarlo Quiero ejecutarlo Quiero
ejecutarlo en Era el nombre ahora Quiero ejecutarlo. Digamos, todo en 1 segundo, y debería correr muy rápido. Me vendría bien un reloj, ¿verdad? Creo que puedo usar un reloj porque solo quiero seguir
golpeándolo varias veces. Yo sólo quiero ver
tratando de recordar el comando ahora. Hay un comando en
Linux que te permite. Simplemente le das un tiempo y sigues
llamando a los endpoints Creo que lo que voy a hacer
es hacer una llamada. Déjame buscar dash, dash help. ¿Está aquí? Para todas las opciones, use la forma de ayuda de dash, todas. Ellos tienen. A ver, ¿tiene que
pensar que es N o algo así? Ahora no me acuerdo. N. Usando pasa, eso no es lo
que estoy buscando. Ver ahora, Sí. Creo que olvidé que el comandante estaba
buscando. Podrías hacer un reloj. Un reloj siempre golpearía
puede ver N en Linux, luego 02, luego curl entonces lo que estoy tratando de ejecutar,
que es hasta el 2000. Recuerda que lo enviamos al 2000. Lo que esto hará es cuando
agreguemos esto seguirá
llamando a la aplicación
confíe cada 0.2 segundos. Entonces puedes ver que está
golpeando a todos estos nodos, todo junto,
o a todo. Ves a cada uno de
ellos moviéndose aleatoriamente, lo que
significa que en realidad es
balanceo de carga automáticamente. Pero sin embargo, no verás
porque no agregué ningún registro, así podrás ver
cuál se está moviendo. Lo que voy a hacer para habilitar esto para
asegurar que tenemos
esa funcionalidad y en realidad se podría
ver que lo que voy a hacer es agregar un registro dentro de
este contenedor. Lo haré en SLL para J
en SLF en SLL para J, como me fui para J, luego entraré aquí justo
antes de que se imprima, y haré Log Entonces diré que
diré que es código. Prueba el código de Keke. Entonces pondré una marca de tiempo.
Pondré una marca de tiempo Solo diré que la marca de tiempo
y la marca de tiempo
serán sistema que es Hagamos esto. Vamos. Una vez que está en esto
definitivamente cambiar. Vemos que esto es salidas
cada vez. Lo que voy a hacer es
empujar rápidamente este
registro de commits agregado a los puntos finales. Yo sólo hago esto. Yo solo empujo
esto muy rápido, muy rápido. Estoy tratando de ver los tiempos
casi 17 minutos ya. Bien, entonces ahora que
hemos empujado esto, lo siguiente que voy a
hacer para tener realmente este tono es VN paquete limpio. Entonces dash esta prueba de mantener. Ustedes ya están familiarizados
con estos comandos, chicos. Solo estoy haciendo lo
mismo solo para llevar esto a donde realmente
podamos desplegar? Entonces esto para. Entonces el
siguiente paso es Docker Yo lo haré DRM Image. Quiero eliminar
los guiones d Demo, luego uno sí sirve A ver. ¿Cuál es el
tema g? No hay tal imagen. Sí, sí, sí,
eso es ZZ eliminado. Ahora construyamos la imagen. Yo seré Docker. Yo sólo
entraré solo ayúdame a mí mismo. Construcción Docker. Dash T, ¿verdad? Dash T. Entonces
vengo aquí puntos. Puntos. ¿Bien? Bien. Todo bien. Entonces con eso, así que vamos a
empujar consigue Doka lo siento. Empuje Docker. Lo mismo. Yo
sólo escogeré esto. Llamemos a esto 2.0.
Vamos a codificar este 2.0. Eso simplemente sería más increíble. Vamos a codificar esta 2.0 para que se vea
como la siguiente versión, ¿verdad? Eso lo convertiría en
Docker Bud, 2.0. 2.0. Esto es más cvates. 2.0. Con eso hecho, entonces
haré Docker, lo
mismo Pero esta vez,
lo haré Docker push, push lo
mismo Empuje. Esa no es la
p. pero luego empujo, empujo Bien. Todo bien. Esto luego empujará
porque no tiene muchos detalles muy rápido porque ya tengo la mayoría de
las capas disponibles. Con esto disponible,
mientras esto esté funcionando, entonces
vendré aquí y
tiraré todo hacia abajo. Hacer corte de cubo, lo siento. Eliminar, desplegar. Es un despliegue de demostración. Así lo llamé yo.
Eliminé todo lo que paré. Entonces llamemos a todo lo
que tenemos. ¿Vamos a eliminar el servicio
eliminar servicio.Esto es Servicio o eliminar como vemos, vemos el nombre es qué? El nombre es este tipo. Bien. Entonces no hay necesidad de servicios. Así es.
Eso está bien. Eso está bien. Eso es todo. Bien, así que vamos a
conseguir todo otra vez. Ya ves, todo se borra. Ahora, vamos a comprobar ¿esto ha
empujado con éxito? Esto ha empujado con éxito. Y eso es empujado
con éxito. Vuelve aquí. Haré una demostración VI, desplegaré, luego
cambiaré la imagen. La imagen en servicio, recuerden, es ahora lo que 2.0. Ahora es 2.0. 2.0. Todo bien. Voy a hacer con esto,
iré a Docker Hub. Entonces, si revisamos Docker Hub, si refrescas esto,
¿qué es este tipo? Refresca esto, vuelve aquí. ¿Por qué no hay refreshi? Este tipo no es refreshion.
¿Cómo te refresco? Este tipo, vamos a ver. No quiero
ir a Docker Hub. Yo sólo quiero estar
aquí, llama a esto aquí. Llama a esta búsqueda este tipo. Bien. Necesito esto, dame esto. Lo sé. Encuentra esto. Entonces ahora esto se está poniendo complicado. Vamos a DocHub Hub. Yo sólo voy a entrar. Esto es D Hop. Yo sólo voy a iniciar sesión.
Contraseña de nombre de usuario. Ese es mi nombre de usuario. Mi contraseña está ahí
mismo uso el mismo chico. Bien, entonces puedes decir que empuja esto. Vamos a abrir este tipo
revisamos las etiquetas. Tienes varias etiquetas
disponibles. Entonces hay un 2.0. Se puede ver.
Bien, no hay problema. Voy a arreglar esto más tarde. Entonces
es 2.0. Entonces tienes un 2.0. Eso es lo que estaba
tratando de ilustrar. Volvamos rápidamente. Ahora que ya hemos hecho
esto,
volvamos al siguiente
video para probar esto. Nos vemos en el siguiente video.
143. Despliegue de prueba en K8s: Oigan, chicos, aquí Z, este
es el momento de las pruebas. Como pueden ver, he
creado He abierto el terminal Windows,
el terminal Linux. Lo primero que voy a hacer
es despejar la pantalla. Vamos a traer esto. Este despliegue,
asegurémonos de que esto es lo que tenemos aquí ya que pueden ver esto
termina con los siete F cinco, 785. Así que lo traje aquí. Entonces solo estoy limpiando
antes que nada, esta es una Clare para limpiar los registros y traer y poner
en marcha, ¿verdad? Entonces los troncos. Entonces para esto, lo mismo. Si ves esto termina con
un 785j VR 77, JVR 77. Entonces esto es correcto. Creo que ¿con qué termina esto?
Yo no verifiqué eso. Bien. Hacer, NH correcto. Y el último
es Z nueve, ¿verdad? Este es Z nueve.
A ver. Bien. Todo bien. Ahora, tengo hay un concepto llamado reloj que te
mostré puedes usar reloj. Mira, aclaremos este Watch, luego llegará
al punto final en el momento que coloques, esto está disponible
solo para Linux. Cuando hagamos esto, verás que todo se toca
al mismo tiempo. Eso demuestra que está
siendo balance de carga. Recuerda, estamos llamando a
los anfitriones locales 2000, que es el
pod de notas al que accedes. Está pasando por
el
balance de carga de servicio en todas las vainas. Vamos a darle a esto ahora. ¿Puedes ver? Todo
está siendo evaluado. Esto, esto, esto solo
va hasta el final, ¿verdad? Entonces esta es una buena prueba para que sepas que las cosas están funcionando con precisión, ¿verdad? Entonces pruebas para Linux,
chicos de Windows que te
cubrieron, no te desmayes Entonces lo mismo para Windows, solo
haces un reloj. Así que nuestros proveedores
vigilan esos murciélagos para que estén en
los formatos exactos. Nuestros proveedores vigilan esos murciélagos para que ustedes los usen para Windows. Entonces haz una llamada y haz lo
mismo a menos que golpee esto. Verás, está funcionando con precisión. Entonces esto
es increíble, hombre. Bien, chicos, esto es exactamente lo que
quería mostrarles. Y para aquellos que
tienen curiosidad por el contenido del archivo de reloj o este es el contenido
del archivo de reloj, el contenido es solo eso es
todo lo que necesitas hacer, ¿verdad? Para que puedas acreditarte a ti mismo. Si no usas
el archivo, puedes simplemente copiarlo o
simplemente ingresarlo. Pero proporciono un archivo,
lo pongo a su disposición chicos. Ahora que hemos podido
probar esto y vemos que las cosas funcionan con precisión de la manera
que deberían ¿qué sigue? Recuerde, tenemos que pasar
a un proyecto de demostración para evaluar
rápidamente cómo
funcionarían las cosas y pudimos
lograrlo. Entonces, lo siguiente que tenemos que
hacer ahora es que necesitamos a nuestros proyectos base en los que estamos
trabajando y que
conozcas antes de
usar este proyecto demo, nuestro pod base que es exactamente
lo que usamos en este curso. Ahora traeremos la imagen,
configuraremos el servicio de configuración, usaremos y configuraremos las implementaciones. Ahora, ya no voy a exponer pod porque solo te mostré
cómo hacer reenvío de puertos, pero exponemos el despliegue, creamos un servicio, luego lo
probamos para
ver cómo funcionan las cosas. Esta vez también estamos
cableando la base de datos. Ve ser un poco complicado,
pero lo consigue hecho. Vea cómo se
puede utilizar la base de datos. En lugar de usar un
local que alma probablemente
esté usando la IP de mi sistema. Entonces la IP de mi
sistema es exactamente lo que se va a usar
y eso se encontraría. Bien, chicos,
volveremos. Volveremos a
eso. Para esta, la IP, entonces hay un Neto CP. Hay una IP a la que se puede acceder o Sos el
netoop probablemente voy a Les voy a enseñar
cómo hacer eso. Una vez que llegas al siguiente video para la aplicación Base en la que
estamos trabajando. Los veré chicos
en el siguiente video.
144. CD de CI, parte 1: Oigan, chicos. Oigan, chicos,
genial tenerlos de vuelta. Todo bien. En esta sección, básicamente, estaremos
hablando del CICD Tenemos que ver una pista de lo que vamos
a estar pasando, y es por eso que en realidad
está aquí. ¿Todo bien? Ahora,
descubrí que mover mucho
mi músculo en realidad
causaría que las cosas estuvieran creando algunas líneas punteadas
en la pantalla y las cosas realmente se verán bien. En el paso uno, ves que
estamos tirando del código. Ahora, lo genial es que tenemos algo llamado
acciones que está disponible. Para
ayudarnos a crear parte de esta
tarea ya en GitHub, para que no tengamos que
escribirlas nosotros mismos Ves que el código de
extracción de filas de ruta es el paso uno,
que está disponible. La parte para
entornos virtualizados, que está disponible. Hay un concepto llamado runner, donde en realidad podrías poner
en marcha un Windows o Ubuntu, usando Ubuntu en nuestro caso. Ahora bien, si te das cuenta de que en realidad
se
configuraría tenemos un
entorno Java Mv en, no significa tirar dependencias, la compilación un AcbImage
lista los Ahora para la parte de
subir artefacto, ya
hay una acción
que nos ayuda a completar eso Pero la parte de
descargar en el paso dos, también la tenemos disponible. Ya está disponible la parte de iniciar sesión
en Sudoker o empujar en Sudoka.
Sólo quiero mencionarlo. Entonces si realmente te
desplazas dial lo ves, tenemos el concepto de corredor. En realidad se podía
ver ese enlace. Ese enlace está realmente disponible. Uno por uno,
solo moveré esto a mi otra pantalla y comenzaré a abrir los enlaces uno por uno. Empezamos a ver cómo
funciona realmente. Para ello, vamos a tirar en
el primer enlace, copiar esto. Todo esto estará
disponible, ¿verdad? Esta es una almohadilla para corredores. Si miras cómo
elegir un corredor, ya
tenemos
corredores disponibles. Así que podrías elegir
corredores. Esto diciéndote que los corredores están disponibles
Linux, Windows, Macows Voy a estar usando Linux,
estoy usando Upunt. Esa es una parte
Esto está disponible, así que ya está eso. Ahora bien, ¿qué pasa con los contenedores
de servicio? También verá los contenedores
de servicio listados? En el archivo, voy a compartir los contenedores de
servicios
son una forma de
poder realmente tirar o traer
una imagen de Docker a su alrededor En ese caso, lo estaremos
usando para Postgs para
ayudarnos a simular realmente la
conexión a Postgres, en el servidor virtual.
Eso es otro poco. Entonces, ¿cómo ver el software
disponible, el software que está
disponible, bien? Software que están disponibles
dentro de cada uno de los corredores. También hay otro enlace. Voy a proporcionar
este archivo como mencioné que
contiene todo esto. Si realmente revisas
y bajamos, verías que tenemos
todo el software ya instalado dentro. Estos son todos los softwares,
ya instalados. Ahora, se puede ver que aquí no
hay Mv, habrá haciendo
algunos ajustes. Entonces también hay otro
bit que quiero mostrarles
antes de que luego entremos y
luego empecemos a desarrollar. Ahora ve esta parte. Esto es para JDK. Ahora bien, si me desplazo
hacia abajo para el JDK, el JDK ya tiene soportes Ahora bien, si
lo miras, ya tiene soportes
geniales para Java 21, pero no tiene para Java 22. Tenemos que hacerlo
manualmente por ahora. Si también
lo miras, se supone GravyM pero como
esto no está disponible, tienes que hacerlo manualmente Este es un punto que en realidad necesito
mencionar. A medida que avanzamos, comenzamos a
mirar cómo usar todas y cada una de
estas acciones una por una. Quiero que esto sea muy breve. En el siguiente video, simplemente
saltamos
y comenzamos a trabajar con nuestros flujos de trabajo o
los vemos en el siguiente video.
145. CD de CI parte 2: Oigan, chicos, genial
tenerlos de vuelta. Para esos se siguen
en mi último caso, hice una manera muy detallada de
usar realmente los flujos de trabajo. Esta sección puede
no ser tan detallada, pero puedo asegurarle que cubra todo lo que necesitamos
construir y
empujar a Docker Hub Todo bien. Ahora,
en realidad empezar. Estaremos dando algunos
detalles y esos detalles, como los necesites ya que los estás usando, te lo estaré
mostrando. Ahora para que realmente construyas un flujo de trabajo de Github
dentro de tu proyecto, recuerda que este proyecto
es empujado a GitHub y ya
tenemos
algo ya empujado. Quiero sacar eso a colación. Bien, tratando de comprobar que mi otra ficha.
Ya empujaste esto. Ya lo tenemos, sí, lo
estoy mencionando. Bien, genial. Entonces esto ya
está disponible. Esta parte que ves esta parte de las acciones de Gear es lo que va
a desencadenar nuestro trabajo y estar usando y estar trabajando con todas
las cosas que vas a crear de
inmediato. Empecemos. Para que Git Asha
reconozca tu archivo eso, Oye, quiero que ejecutes
esto como un trabajo para mí. Necesitas crear un
paquete o un directorio, y tu nombre es Git Hub, y tiene que estar en
la carpeta raíz. Tiene que estar en
tu carpeta raíz. Si no está ahí, no
va a funcionar. Es GitHub, no JT Hub. Es GitHub. El GitHub,
esto tiene que estar ahí. A continuación, hay que tener un
directorio llamado workflows. El flujo de trabajo necesita estar
ahí, muy importante. Voy a seguir
adelante y llamar a esto. Voy a crear un flujo de trabajo
que va a estar conteniendo todos los scripts a usar
llamado deploy the Yarmo Esto es lo que se requiere.
Impresionante. Impresionante. Ya ves tengo una extensión ya
me quejé, Oye, tienes que proporcionar esto Baje.
Vamos a llegar ahí. Bien, así que procedamos. En primer lugar, me das
un nombre y el nombre, solo llámalo pero construye y
empuja la imagen para el despliegue. Todo bien. La siguiente parada es donde
queremos ejecutarlo, ¿verdad? Los puntos son o ¿qué acción
queremos ejecutarlo? Quiero ejecutarlo a empujón. No lo voy a ejecutar a empujón. Entonces, cuando presiono, esto debería suceder. Si hago algún cambio, y presiono, esto activará el flujo de trabajo. Si estás empujando, qué rama, tienes que definir
la rama que esta tiene que ejecutar y quiero que corra en la
rama principal, ¿verdad? Porque si notas que estás corriendo en la sucursal principal, ¿verdad? Así lo llamábamos.
Entonces revisamos nuestro código. Consulta nuestro código. Esta es en realidad la rama principal que
no es la marca principal, por lo que va a correr
en la rama principal. Vamos a definir algunos detalles
geniales ahora. Ahora el siguiente paso
es establecer por defecto. ¿En qué entorno quieres que
se ejecute este flujo de trabajo? Quiero que se ejecute en shell. Para ejecutar un shell, hay que
pasar algunos valores predeterminados, ejecutar un shell, ejecutar luego shell Shell quiero Bash. Podrías definir porque
soy más conveniente usando bascript así que
voy a usar Bash Ahora esta es la empresa Era la compañía ahora porque
está buscando trabajo, creo, vamos a llegar ahí. Ahora queremos definir nuestro trabajo. Este es nuestro trabajo.
Bien, ahora para un trabajo, debes darle un nombre a un trabajo. Un trabajo necesita tener un nombre. Se podría pensar en
un concepto un trabajo, un flujo de trabajo tiene una serie de trabajos, un trabajo sería una serie de pasos
que quiere lograr. Así que tenlo en mente. Eso es
exactamente lo que vamos a hacer. Voy a estar usando Voy a llamar a
esta sección de trabajo construido. Construir sección de empleo, y ¿en qué entorno
te vas a ejecutar? Ahora bien, esto es muy importante, chicos. Esto es muy importante. ¿Qué ambiente queremos? ejecutar un ambiente
llamado acción. ¿Dónde se
llama acción a este entorno? Es necesario
poder decir dónde se
llama acción a este entorno. Ahora, si vas
a la configuración, ve a la configuración,
Entornos. Quieres que sea capaz de
cuando esta acción se esté ejecutando, podrías crear
tantos entornos. Esto podría funcionar
normalmente para usted. Si tienes cosas como si tienes cosas
como tal vez una muerte,
una puesta en escena, una producción,
entonces normalmente podrías definir hacia dónde quieres que corran las cosas. Para mí, quería ejecutar
algo llamado acción. Voy a llamar a esta acción. Bien. Entonces este es mi entorno. Tengo un ambiente
ahora llamado acción. Ahora, mi entorno
ahora guardará cosas como secretos y mantendrá variables de
entorno. Entonces, a medida que avanzamos a medida que
agregamos los detalles, tenemos que estar viniendo
aquí para usarlo realmente. Bien, así que procedamos. Volvamos a esta parte. Muy bien, así que estoy usando
acción y
quería ejecutar Runs Ubuntu. Quería correr
en Ubuntu más reciente. Ubuntu ts. Vamos a correr en Bunsuats. Ahora bien, esta es la parte en realmente
quiero atar
mis contenedores de servicio. Como mencioné,
los contenedores de servicio te ayudan a ejecutar imágenes
Docker en un entorno
virtualizado dictamente para que puedas probarlo En realidad quiero traer un contenedor, quiero una pontina Quiero llamarlo Pzgres Pogues porque voy a poder usar
este nombre en lugar Eso es muy muy importante. Entonces quiero servicios. Servicios que quiero, quiero
llamarlo Postgres también. Esta es la parte de la historia. Este
es el nombre que quería decir, esta parte aquí, este nombre
voy a ir en lugar de IP. Post gas, entonces la imagen
que quiero usar es un PostgressPostgress 162 porque eso es
lo que Ahora quiero establecer algunos detalles del entorno del
entorno que se van a usar para conectarme realmente. ¿Cuáles son los
detalles del entorno, Postgres DB? Esto está disponible en Docker Ho. Esta configuración está
disponible en Docker Hall. ¿Verdad? Ahora para realmente
buscar entorno, necesitas así es como
buscas un Obtener entorno,
usa la palabra clave llamada vas que es Db Name ¿Lo llamaste Db name? Vamos a confirmar.
Voy a entrar. Voy a abrir
esto lado a lado. Voy a abrir
esto lado a lado, dividido, para que podamos verificar. Dijimos nombre Db. Esto
estará esperando nombre D. También tienes postgresa
en la contraseña así. Entonces esto será ya lo has
adivinado. Este sería el jarrón. Entonces ahora esta es contraseña, tan sensible, así que esto
va a mantener en secreto. Secretos, lo llamaré
DB en la contraseña de Sco. Verás, coincide con esto. Entonces esto estaría
en mi nromentable. Esto estaría en mi secreto. Recuerda, te
lo mostré antes. Secreto de variable de entorno. Entonces eso es lo que estoy
reflejando aquí. ¿Bien? El siguiente paso, voy a tener un
post grass en el usuario de Sco. Los mismos detalles,
voy a sustituir esto. Pero esta vez alrededor
mi usuario será SQUs luego DB guión bajo nombre de usuario Creo que eso es
realmente funciona, chicos,
Dibnderscore, nombre de usuario.
Vamos a poner las ollas. Las ollas porque estamos
esperando una olla aquí también. Vamos a decir ollas. Bien, probablemente no
solo me preocupo por las ollas y solo voy a hacer que todo funcione ahora 543, dos,
43, dos, 543, dos, así que no solo lister esto con
variables de entorno Voy a tener
ollas, estas ollas deberían estar directamente aquí. Sí. Esto se habría podido configurar. Ahora, puedes ver
que necesitamos ir a crear el dbname
usando db user name Secretos tienes que establecer esto. Estas cosas son muy importantes. Estaremos haciendo estas cosas. Hagamos esto de
una vez por todas. De hecho voy a tirar hacia arriba, vamos a tirar hacia arriba a este tipo. Vamos a poner a este tipo arriba.
Recuerda que recogemos acción. Esta es la acción que
en realidad configuramos acción. Vamos a entrar aquí. ¿Cuáles
son los secretos que tenemos? Déjame probar tenemos DU Underscoe nombre de usuario,
Db UnderscoPassword Los secretos lo llaman Db
underscoeuser name. Esto sigue esto paso a paso, chicos. ¿Cuál es nuestro nombre de usuario? Yo solo quiero usar
exactamente lo que usamos aquí, exactamente
lo que usamos aquí. Nuestro nombre de usuario, cual es
el nombre era usuario, voy a entrar
aquí. El apellido es usuario. Según lo creado. Ahora vamos a crear para
contraseña, Vamos bajo secreto. Vamos a llamarlo DB
llamemos contraseña. Y pide contraseña. Como solo ves cuál
es la contraseña que usamos,
lo mismo que usamos aquí. No voy a cambiar el inten
por el bien de la consistencia. Voy a ir aquí a Secret. Bien, entonces esto es genial.
Esto es bastante genial. Entonces lo siguiente que
configuramos es el host, configuramos el host y
configuramos los pots, ¿verdad? Tenemos un anfitrión aquí
y tenemos un alfarero, así que tenemos que definir
el anfitrión y la olla. Prácticamente podríamos decir que
queremos un anfitrión local aquí, ¿verdad? Así dicen las publicaciones de host. El anfitrión va a entrar, vamos a ver. Tenemos que definir
a nuestros anfitriones. Queremos en este ambiente, así que va a estar
entrando aquí, solo un post. Lo que acaba de forzar va a hacer aquí. Entonces no solo estamos
haciendo uso de la olla, sino que este post es esencial, por lo que somos capaces de conectarnos
a la aplicación. Ir a las ollas 5432, porque eso es exactamente lo que
colocamos aquí, ¿verdad Eso es exactamente lo que estamos
configurando en un archivo de implementación, este archivo de implementación, ¿verdad? Entonces coincide. Ahora
el siguiente paso, aún no
sabemos lo que
va a ser esto, ¿verdad? Es este host de servidor caliente. Aún no sabemos lo que
va a ser, ¿verdad? Entonces solo voy a dejar esto solo voy
a dejar esto fuera,
bien, porque esto
básicamente funcionaría para nosotros más adelante. Pero esto normalmente es necesario
para que nosotros construyamos también. Entonces estos los podemos ignorar por ahora porque
directamente no estamos usando. Solo queremos construir nuestra
imagen y nuestra imagen no se conecta al
servidor caliente para construir, ¿de acuerdo? Así que prácticamente podemos
ignorar esto por ahora. Bien. Bien. A ver. Entonces esta es mi queja aunque
no, ¿no? A quejarse. Probablemente solo
estableceré un récord ficticio por ahora, un disco ficticio De lo contrario para quejarse. Así
que solo lo configuraré. Entonces en caso de que lo busque, ve que está
disponible, ¿verdad? Para que ese ambiente
esté disponible. Para esto, solo lo
llamaré anfitrión local, solo para poner algo ahí. Pero algo ahí. Para las piezas, 8099 lo que usamos. Entonces aquí, 8099. Entonces, por último, esto. Sólo llámalo salud por
ahora, salud, ¿verdad? Solo salud. Todo bien. Hemos sido capaces de
configurar esto. Después volveremos el siguiente video para continuar desde donde paramos. Los veré chicos
en el siguiente video.
146. CD de CI parte 3: Oigan, chicos. Oigan, chicos,
genial tenerlos de vuelta. Hemos entrado en
configurar estos detalles, Db Name, D pass, el nombre de usuario. Hemos creado en estos
entornos que
mostramos antes y el
ambiente se llama acción. Esto ya está configurado hasta cierto punto, por lo que sólo
podemos volver atrás. Medio ambiente. Si lo
sacas a colación de nuevo, tenemos cinco detalles, dos secretas cinco variables,
lo cual es muy correcto. Eso ya está
disponible por ahora. Esto es lo que estamos usando. Esto está disponible en la variable de
entorno. Asegurémonos de que añadimos eso a
la variable de entorno. No, no tenemos que
inte crear esto. Se llama DB name, DB DB en el nombre sc. ¿Cuál es el nombre que usamos? exactamente
el mismo nombre usando aquí? Solo curso GraphQL.
Voy a colocar esto aquí. Bien, así que eso
es bastante genial. Hemos agregado esto en, hemos
agregado todos estos detalles y podemos proceder a esta parte. Esto ha sido establecido.
Esto se ha configurado en secreto y nosotros lo hemos montado, procedamos. Voy a ir a la derecha otra vez, empujar quiero que este comando
actúe sobre el empuje. Las ramas en las que
realmente deberías trabajar son las principales entonces una vez que usas Bash, para cualquier comando que queramos ejecutar De hecho ya lo hemos hecho. Lo siguiente que queremos hacer es querer establecer su número de
pasos que queremos que sucedan. ¿Qué pasos quieres que suceda? Primero lo hacemos una vez
que obtenemos el código. Vamos a llamarlo, código G. ¿Cómo obtenemos el código?
Utilizamos una acción. Quiero usar una acción,
usar la palabra clave usa. La palabra clave utiliza. Ahora, ya he explicado
cómo son las acciones. Si lo miras, he
sacado una página antes. Todavía puedo sacarlo a colación. Es una página que
mencioné antes. A ver. Bien. Entonces la página me butopela solo agrégalo
aquí. Todo bien. Entonces esta parte para sacar código, mencioné que
tenemos aletas para
ayudarnos realmente a hacer esto, ¿verdad? Para ayudarnos a sacar código, las acciones y similares que
tenemos eso está todo disponible. Entonces, para que realmente el código de pago, tenemos algo llamado
las cajas, ¿verdad Tenemos algo llamado
la acción de pago. Así que vamos a explorar cómo se ve el
mercado ito market. Veamos cómo
se ve, ¿de acuerdo? Entonces voy a decir
GID action checkout. Entonces GID acción checkout. Si lo miras, así
es como se ve. Y usamos la
palabra clave usa, ¿verdad? Usos. Eso es lo que usas. Entonces todos estos
básicamente no son necesarios. Te envié
alguna configuración extra
que quieras agregar. Pero solo haciendo esto solo, sacaremos tu código de GitHub y lo llevaremos a ese entorno
virtualizado ¿Bien? Esto es genial,
chicos. Es bastante genial. Entonces eso es exactamente
lo que voy a usar de la misma manera en que
en realidad se especificó. que voy a usar
ya lo tengo escrito en alguna parte así que solo
voy a traer esto y solo copiarlo. Entonces sí, así que eso está
fuera. Después siguiente paso. Así poder
realizar ese siguiente paso. El siguiente paso, queremos
configurar set. Vamos a configurar. Configurar JDK,
llamémoslo gravIn Gavian JDK. ¿Recuerdas lo que hicimos localmente? Lo que construimos localmente es exactamente lo mismo que quiero
hacer aquí, ¿verdad? Eso es lo mismo
que quiero hacer aquí. Gavio 22, ¿verdad? Entonces usamos run
porque esta vez estamos usando la palabra clave
run y
ejecuto porque voy a escribir algún
conjunto de comandos porque en realidad no
podemos básicamente no hacer no hay te
mostré Ella
que no tenemos un 22 soportado en este momento. Entonces tienes que hacer esto a nivel local. Ahora, he entrado en escribir
todos estos comandos, y voy a espaciar es
muy, muy voluminoso, ¿verdad Chicos muy voluminosos,
pero voy a mostrarte cómo
se ve todo, ¿verdad Bien, entonces tal vez te estés preguntando
por qué tengo este comando. Así que tenga en cuenta. Cuando
tienes esto aquí, simplemente
significa
que quieres colocar varias líneas. Eso es
lo que esto significa. Esto significa que quieres
colocar varias líneas, no
hace nada
más que eso. Cuando tienes esto,
esto está vinculando esto. Si coloca esto,
significa el comando en la siguiente diapositiva y esta diapositiva que debería
estar en una línea. Eso es lo que significa todo el
último Bo slash. Por eso digo que todo
contiene Bo slash. Ahora pasemos paso a
paso y veamos qué hice. El primer paso, lo que hice, en realidad
estoy construyendo
y haciendo y actualizando el servidor Ubuntu, actualizando, entonces
en realidad estoy instalando WG WG es en realidad más como un rizo, una forma de
descargar realmente cosas Después me descargo el bunt 22. Descargo el Boto 22. Lo siento, descargo Gavian
22 del sitio web de Oracle. Lo descargo en, y
también descargo Apache maven. El último Apache Mv 399, entonces realmente
extraigo la gal VM. Cuando haces una estrella, la estrella
coincidirá con cualquier cosa que
tengas aquí, cualquier cosa que tengas aquí para igualarla. Eso es lo que estoy haciendo. Si lo estoy igualando,
estoy extrayendo. También estoy extrayendo al maven
apache, lo cual es genial. Después de extraer y estoy
quitando estos archivos. Después de extraer, ya no
los necesito , elimino esto,
elimino los
archivos zip zipl o archivos GZ Los elimino después de
eliminarlos, luego expse ahora exportando
esto a BSD Ahora bien, ¿qué es Bs DLC? Si esto estoy exportando a bash o LC es porque la forma en que estableces una
variable de entorno en Java y la forma en que estableces una variable de
entorno lineal es exactamente
lo que está sucediendo Estoy exportando a bash o LC. Cuando se supone que debes
darle un golpe al LC alrededor de la salsa, lo
haces pegar y
podrás hacer versión
Java y
luego la versión VN Eso es exactamente lo
que estoy haciendo aquí. MavingHme También estoy
haciendo lo mismo. Puedo ver ahora para Github, tenemos un concepto de si
estás usando Jenkins, tenemos un concepto de espacio de trabajo Ambiente en el que estás trabajando. Te puedo dar ese espacio de trabajo. De hecho estoy tirando de esto, es un comando Git up que te
da acceso. Estoy haciendo eco a esto. Estoy diciendo el espacio de
trabajo actual, eso es lo que significa. El espacio de trabajo actual, busque apache mediante el cual descargó
y extrajo el bin. Quiero que hagas eco de estas
partes en la parte de Git up. GituPad es más
como si estuvieras configurando la variable de
entorno así que debería estar ahí Lo mismo que estoy haciendo aquí estoy configurando la variable de
entorno. Entonces estoy agregando
todo a las partes. Estoy ndingeo las partes. Hay un concepto de partes, así que voy a
mostrarte de esta manera. Esto en realidad lo
dejaría muy claro. Entonces si revisas, había algo llamado
bash C. Así que cuando haga un punto de gatos Bash, ya veré A mí me falta algo. Bien, en caso de que esta
golpiza de deudas onduladas, LC. Todo bien. Entonces esto es bash LC Así es como se ve.
Así es como se ve bash LC Si quieres que algo
sea permanente un comando, lo
agregas a tu
bashLC y ves que agregaste esto y eso es
exactamente lo que estoy haciendo Esta exportación exportación,
también hay un concepto de palmaditas. Pat todo lo que agregue a
las rutas es como Java home. Es como tus partes de Windows que lo pondrán a disposición
en todo el sistema,
para que puedas hacer eco de la ruta de eco. Entonces ves que todo esto es un camino. Entonces es por eso que tienes disponible
el NVN, algunos comandos disponibles directamente porque en realidad se
agrega a la ruta Entonces exactamente lo mismo que estoy
tratando de actualizar aquí. Esto no hubiera
sido un problema, asumiendo que tenemos mavn soportado directamente en este contenedor o en este runner
que es Ubuntu, y tenemos esta acción, tenemos el conjunto de acción Java Habrían hecho toda esta
fila yo lo estoy haciendo de forma manual. Por último, estoy llamando a la
salsa el RLC porque salsa la bash LC
hará que esta sea permanente Después de hacer esto, estoy imprimiendo, estoy imprimiendo, solo estoy imprimiendo algo aquí, oye,
eso imprime aquí. Asegurémonos de que llegué aquí. Después estoy imprimiendo
la versión Java y estoy imprimiendo
la M v en versión Con estos chicos,
te veré en el siguiente video.
147. CD de CI parte 4: Oigan, chicos, genial
tenerlos de vuelta. Hemos entrado, en
realidad hemos hecho esto. Te expliqué el último video fue una explicación total
de lo que es esto, y también te mostré cómo configurarlo con
todos los secretos
vinculados al entorno y hemos
podido
lograrlo , debería ser bueno volar. El siguiente paso, el
siguiente paso que quiero
agregar voy a llamar al nombre, preparar. Recuerda que el nombre
puede significar cualquier cosa, pero hazlo significativo para que
puedas saber lo que estás haciendo, salsa en configuración y construcción Eso es lo que quiero
hacer. Entonces quiero ejecutar algún conjunto de
comandos también ejecutar. Recuerda, cuando
pones esta pipa noticia, quieres correr mult line Entonces voy a hacer una versión Java ayudándole a sacar el código así
no voy a estresarme Sólo para traerlo.
Hagamos esta pipa. Entonces vamos. Voy a traer esto.
Si nos fijamos en este es exactamente el mismo
comando que ejecuto área. Nada diferente, ¿verdad?
Entonces veamos esto. Esta es la versión Java. Estoy diciendo que este paso debería
ser lo mismo ahora. Este comando es lo que
lo pone a disposición hace disponibles las bibliotecas
nativas, mismo que tenemos en
este archivo Docker, pero si nos fijamos en el nivel Z lib,
esto deletrea este
entonces nivel Gleb CD Si miras esto,
solo estoy trayendo los sentials Built porque si te estás
ejecutando en un directo a ubuntu o Linux,
debes ejecutar este comando Estos son los comandos que ejecutas. Pero para el archivo Docker, queremos más como
una versión micro, y por eso uso Mico DNF para sacar las
exactas que Pero para Ubuntu, en realidad
puedes ser un poco autobús y traer todo esto. Ahora bien, no
conformé este comando. Si realmente entras, vas
a GravIn ve a
GravIn ahora, ya
ves, esto es para Linux Si quieres apostar por
Linux, este es un comando. Aquí es exactamente de donde lo
recogí. Entonces si estás usando DNF, te
dijeron que
usaras esto para DNF Esto es exactamente lo que
tenemos en un archivo Docker. Pero en lugar de usar DNF, estoy usando Mico DNN que
es versión simplificada, pero estoy usando los comandos set
exact Puedes ver esto
no lo hice. De hecho lo estoy
trayendo directamente de lo que se
mencionó para Gravim Esto es. Vamos a proceder. Ahora cuando ejecuto el comando, este comando lo ejecuto
localmente enviando amoniaco Mv en limpio. Sólo
voy a mover la limpieza. No creo que necesitemos limpiar porque siempre está limpio una vez. Tienes P nativo, nativo brújula skip step, entonces todo
es igual. No estoy haciendo nada.
Podrías cambiar esto. Estoy en África legos eso es
lo que legos de África. Entonces esto físicamente recuerda
que podrías saltarte esto. Ahora bien, este es el
concepto de perfil. ¿Qué perfil de resorte
debes usar? Entonces podría decir que quiero este tipo quiero que este
tipo use Docker Quiero que este tipo me use
Docker para llenarlo. El perfil de giro
que uso es Docker. Con eso, entonces
entraré, vamos a configurarlo. Voy a ir a esto, voy a
esto y voy a configurar esto. Diré primavera en el perfil de
puntuación, use Docker. Voy a tirar de eso. Espera espera, ingenio. Tenemos las cosas configuradas
y esto ya está configurado. El siguiente paso es entonces,
intentemos ver. Hay una manera de hacer caché a Maving. Hay una manera de guardar Mv en caché. Ahora, lo he usado
un par de veces, pero a veces funciona, a veces no
funciona, así que me embolsa. Probablemente me falta algo. Vamos a caché Maving
voy a tratar de caché para que construya
realmente simple Hay un concepto o
hay una acción disponible para eso,
que se denomina caché de acciones que actúa VF lavar la
versión actual en la versión cuatro Entonces debes tener alguna suite de
detalles extra ¿cuál es esta? Esto entonces diría,
busca el 102 Eposit y
lo guarda en caché y si vas a esta acción, verías, como mencioné, no
me invente las cosas,
ya está ahí para C. Caso y ver dependencias,
si revisas, esto Si vas a buscar Hombre Hombre
Hombre Maven, Maven. Veamos desde Neven.
¿Aquí el Maven? Sí, Java Maven.
Miramos en Java Maven, ya ves, esto es exactamente lo que
mencioné y eso es
exactamente lo que estoy usando Todo bien. Entonces eso
es bastante genial. Entonces tenemos esto. Entonces sólo voy a seguir adelante y
sólo enumerar el archivo. Quiero enumerar los archivos
que ya están en. Vamos a enumerar archivos. Así que estoy enumerando los archivos en mi directorio de destino después de que esto se haya
construido con éxito. Entonces quiero subir artefacto. Ahora P el artifactor
quiere que funcione. Quiero que se guarde en caché
durante cinco días. Eso es lo que estoy haciendo con
esto. Quiero que escriba. decir, si existe un
artifactor, quiero verite Esta acción también
está disponible para subir También podrías
comprobarlo y ver cómo funciona. Así es exactamente como
se llega a usarlo. Pero en esta ocasión, estamos
guardando archivos Docker
y nosotros estamos guardando en caché, estás guardando Dockerfile y target graph ko c Recuerda que
esto es ejecutivo,
así que eso es exactamente lo que Ya casi terminamos, chicos.
Ya casi terminaste, chicos. Lo que voy a hacer
es que iba a tirar de los muchos comandos
que se escriben. No quiero
aburrirte con todo esto. Muchos comandos están trayendo el trabajo del Paso dos igual que te mostré. Todo bien. Lo que esto hace es, aquí es donde empujamos la imagen. Primero, consigue el medio ambiente. El mismo ambiente es la acción, que es el mismo que
definimos aquí, la acción. Ahora, estoy diciendo que este necesita significa que esta sección nunca
se ejecutará ahora. Por defecto, el
flujo de trabajo de Github se ejecuta en paralelo. Cada trabajo se ejecuta en paralelo. Pero en el momento en que uses
algo así como medicamentos, este tipo
dependería de él? Dije que esto
dependería de ello Si esto no se ejecuta,
esto nunca va a correr. Esto debe ser igual. El nombre debe ser el mismo. Verás, este nombre de trabajo
debe ser el mismo. No es lo mismo, no
va a funcionar. Debe ser lo mismo. Esto lo
necesita. Todo bien. Si trato de destacar esto. Ves que resalta este reconocer
automáticamente es correcto. Entonces una vez que corres
con Bontts de venta, estoy jalando esta acción,
esta acción también es necesaria Recuerda, estamos empujando aquí
y estamos descargando aquí. Podrías haberte saltado
esto, pero solo quería mostrarte cómo podrías
usar múltiples trabajos Todo bien. Aquí lo voy a
llamar GraphQL Entonces voy a
descargar una vez que
descargue Aof Dload
content by is Quiero enumerar lo que hay,
todo lo que hay ahí. Una lista entonces, quiero instalar
Docker, Docker Install. Yo llamo a este Docker Install. Ahora, ¿qué me di cuenta? Me di cuenta cuando estaba construyendo
y desarrollando este curso. A pesar de que
mencionaron que Docker estaba disponible para el medio ambiente, no lo
pude encontrar. Fue muy difícil
para mí por eso tuve que hacer esto. Tuve que ejecutar e implementar
Docker manualmente. Eso es lo que está haciendo esto.
Estoy desplegando Docer manualmente Un Docer desplegando
manualmente, se puede ver, estoy usando pseudo
y obteniendo Si vas a ejecutar Docker
con scripts de conveniencia, solo tienes que escribir esa cosa,
encontrarás esto disponible Así es exactamente como este
te puedo mostrar. Digamos Docker.
Instalar Docker Instalar Docker en Ubuntu. Entonces quieres instalar Ubuntu. Vas a Ubuntu y te desplazas hacia
abajo hay algo llamado crips de
conveniencia, tazas de
conveniencia Si estás usando copa de
conveniencia ya ves, es el mismo
comando que estoy ejecutando. Esto instalará el campo Docker. Es exactamente lo que estoy haciendo. Simplemente ejecuta esto y esto
instalará Docker. Eso es lo que hice.
Entonces estoy iniciando sesión. Hay una acción para iniciar sesión. Echemos un vistazo a esta acción
para iniciar sesión. Acción para iniciar sesión. Entonces te estoy mostrando que
todo está disponible, bien, para que no tengas que repasar los eventos en el camino. Entonces solo tienes que
usar esto directamente. Entonces esta es la acción
para iniciar sesión realmente. Pongo tu nombre de usuario,
un nombre de usuario de Docker y una contraseña de secretos Ahora para esto, te voy a
mostrar cómo configurarlo. Voy a estar haciendo eso
en el siguiente video. Todo bien. Entonces esta parte, te
voy a mostrar. Pero esta parte es donde inicias sesión y aquí es donde
empujas, ¿verdad? Empujas usando esto. Ahora bien, entonces todo esto
es detalle. Volveré en el siguiente video
para explicar este genial stock, veamos en el siguiente video.
148. CD de CI parte 5: Oigan, chicos, genial
tenerlos de vuelta. Quiero hacer alguna
explicación más sobre estas partes. Entonces, ¿cómo se obtiene un nombre de usuario? Este es tu nombre de usuario de Docker
Hub. Es tu contraseña de Docker Hub. Pero no tu contraseña, me refiero a docHub token antes solía
ser una contraseña, pero se volvió muy arriesgado, así que siempre puedes usar Vamos a crear un
token que vamos a usar. Te voy a mostrar
cómo crear un token. Lo cargo mi Docker Hub. Quiero estar segura de que no estoy
exponiendo nada sensible. Pero esa es la mayoría otra pantalla, así que vamos a Docker Hub Docker Hub, voy a iniciar sesión
y te lo mostraré. Bien, así que estoy iniciando sesión. ¿Bien? Eso va a entrar. Estoy tratando de iniciar
sesión. ¿Bien? Firma. Bien. Así que firmé
esto con éxito, así que voy
a traer la pantalla de vuelta para mostrarles cómo funciona. Todo bien. Entonces, esto es todo. Así es como se ve. Así es como se ve Docker
Hub. Ahora bien, si quieres
generar un token, vas a las partes. Entonces vas a la cuenta esta parte de la configuración de la cuenta,
déjame estar seguro. Creo que las partes. Configuración de la cuenta. Verifique la configuración de la cuenta.
Esto se está cargando. Configuración de la cuenta.
Déjame estar seguro. Quiero estar muy segura. A la vez, no quiero
evadir nada. Bien. Todo bien.
Creo que lo descubrí. Vas a ajustes.
Voy a repasarlo otra vez. Entras aquí,
vas a la configuración, configuración cuenta y
llegas
a la configuración de la cuenta, scode y ves token de acceso
personalizado Aquí es donde hay que ir. Vas al token de
acceso personalizado, ellos crean un nuevo token. Mi nuevo token, lo voy
a llamar gráfico QL Cs. Curso de Gráfica QL. Después fecha de vencimiento. No quiero que caduque. Básicamente, quiero
caducar en 30 ds, ¿verdad? Entonces, ¿qué quiero que haga? W se lo voy a dar todo. Lee, escribe,
borra, todo. Entonces después de este
tribunal, físicamente, sólo
voy a
revocar la tasación Por lo que genera. Lo ves
generado, luego copias. Usted copia. Este es mi
Dername que luego puedo copiar Ahora, recuerda que esto
es una cosa de una sola vez. En las indicaciones de contraseña Enter. Esto es lo que
se supone que debes entrar. Esto no estará
disponible dos veces. Así que por favor recuerda que esto
no estará disponible dos veces. Copia porque no
puedes volver a verlo. Lo he copiado, lo he copiado, voy a ir a mis secretos. ¿Cuál es la otra
pestaña que estaba usando? Creo que esta fue esta
temporada de pestañas esa pestaña de mi pestaña de acción. Aquí, voy a llamarlo mis secretos Docker
Underscore Nombre de usuario, mi nombre de usuario
es consistencia. Después siguiente, Docker
dsc contraseña, contraseña. Yo pisti aquí dentro. Todo bien. Contraseña de Doc Chisondsco. De ahí
viene esto. Hacer Canaches un nombre.
Hacer bien a Canas. Yo lo llamo token. Entonces
voy a llamar a esta contraseña. Contraseña que utilizo. Yo sólo sea consistente. DondersCpassword. Eso
es lo que tengo ahí. Todo bien. Entonces probablemente
solo voy a llamar a esto y vamos a llamarlo graph
que one dot zero. Gráfica QL un punto cero. Cuando empuja, entonces
usa mi nombre de número. Esto es básicamente
todo lo que tenemos que hacer. Voy a hacer un resumen. Recuerda la primera parte que estamos
usando usa la acción push. Acción push, branch main,
quieres usar un Bash. Todos estos comandos que se están
ejecutando son comandos bash. Por eso estoy usando Bash aquí. Entonces quiero acción ambiental, te
mostré cómo
crear un ambiente. Quiero correr en Bunstt te
mostré lo que contiene
Buncats Estoy usando
contenedores de servicio. Así es como tú. Esto está disponible en
Git en Docker Hub. Cuando escribes en post chicos, solo
puedo mostrarte de inmediato. Esto es muy importante. Di Cerdo Doa. DockerHub,
escriba en Creo que ya estoy conectado. Así que solo busca psqes. Psques. Y busca psques Escalados muy hacia
abajo. Escalado hacia abajo. Ves el uso. Bien,
entonces este es el uso Bien, así que publica
adivinar la contraseña. Sí, creo que
hay otra que es más definitiva. Pero déjame revisar Postguest así que estos
son los comandos Usuario post gas, PostgasPassword. Sí, entonces la
variable de entorno que podrías usar
para que estés pasando eing. Entonces pas esta
variable de entorno entonces postga ZB,
derecho, esto va a
poder realmente
averiguar exactamente a qué te refieres Y eso es
lo mismo que hicimos aquí. Lo miras con cuidado, ¿verdad? Post guess ZB, PostguPassWD, usuario de
postgas, y de ahí
fue de donde lo obtuve Detalló que GavinNgavin no tiene acción para GavianF Tengo que configurarlo manualmente
y explicar este bit. Consulta el último video para
ver lo que te expliqué. La lista es un camino
que estoy construyendo, ¿verdad? Te mostré de dónde
sacar este comando. Te mostré en el sitio web de
GaviM y te
mostré este comando que en realidad
ejecutamos localmente Esto también está disponible
por escrito en notas que se adjunta
a esta sección. Entonces estas son las
partes donde luego
usamos la acción para
intentar almacenar en caché tal vez, aunque no estoy del
todo seguro de si funciona, entonces enumeramos el archivo,
luego subimos esto. Una vez que lo subas,
qué estamos subiendo. Recuerda, esta es
la carpeta de destino, estamos seguros de que
obtenemos esta gráfica QL caso isecutable también haciendo
el Dockerfile es esencial para nosotros. Entonces más o menos, creo
que eso es lo que empujamos. Cuando llegamos a la imagen push, luego
descargamos los
artefactos, luego ejecutamos esto. Entonces esta es la parte en la
que te lo dije, no
estoy seguro de que Docker estuviera
realmente en ese corredor de Ubuntu, así que solo tuve que instalar Docker Entonces me conecto,
te muestro donde esta. Yo solo te enseñé
cómo usar tu nombre y contraseña y luego a este tipo. ¿Bien? Entonces en el siguiente video, lo
vas a ejecutar
y ver cómo funciona. Y la forma de ejecutar esto
es muy sencilla, chicos. Entonces lo que voy a hacer es,
sólo voy a concluir esta sección. Lo que voy a hacer es concluir esta sección
con solo presionar. Entonces Git comete A CM, lo llamaré
yo
solo lo llamaré CI, CID LCD action, LCD action, first push o debería simplemente
llamarlo guitar box flow? Flujo de trabajo de GitHub. Primer empujón. Bien, eso debería cerrar cierra. Confirmemos eso. esto para que puedas comprobarlo. Bien, ¿dónde
está mi carpeta? Bien, esta parte de aquí. Acabo de entrar aquí,
la sección de código
con la sección de temas, cuestión acritano. Pon esto aquí. Entonces recojo esto, y voy
a estas partes. Todo bien. Ya etiqueté eso
solo escoge 33, eso es 33. Bien, cierra, h 33. Todo bien. Entonces
voy a empujar esto. Ahora este va a
ser un proceso largo. Va a ser un proceso largo. Cuando lo empuje, verán de
inmediato se pone en marcha. Entonces, cuando entres aquí,
revisemos nuestra acción. Cuando cargamos esto, ya ves, esta es la primera así que ya ha entrado . Entonces vamos a rastrear. Ves que esto es dependiente. Esta sección
de imagen push depende de esto. Esto va a
llevar mucho tiempo. De hecho voy a
terminar el video. Entonces el siguiente video, te
voy a mostrar cuál es la salida y si hay un error, te voy a mostrar de igual manera. Os veo el siguiente video chicos.
149. CD de CI, parte 6: Oigan, chicos, genial
tenerlos de vuelta. Todo bien. Entonces, ¿recuerdas el trabajo que
empujamos en el último video? Entonces este es el resultado. Todo funciona
con éxito excepto la sección push image. Veamos el
error diciendo que no puede encontrar ningún artefacto llamado artefacto
GAF kill Entonces, lo que significaría que
cuando en realidad estábamos empujando estamos presionando este nombre podría no haber correspondido. O este artefacto
no está disponible, así que
vamos a comprobarlo. El conjunto de juergas At
fad ya ha caducado y fue subido usando una versión
compatible de dos kits. Así que vamos a revisar. Yo voy a hacer, voy a comprobar. Voy a entrar aquí. Vamos a descargar
la sección de subida. La sección de subida,
cambié este nombre. Quería subir el artefacto de pozo clave
GAF. El problema era que el problema
era que ahora agregué aquí. Creo que quiero
hacer un delantero aquí. Vamos a hacer retroceso. Bien. Entonces aquí, estoy usando At
Graph Activat pero mientras tanto, estoy usando el demo de Graph Quo, porque lo copio y pego,
así que esos son los males
de copiar y pegar así que esos son los males
de copiar y Con esto, deberías poder entrar y ellos deberían
poder encontrar esto,
vamos a comprometerlo una vez más. Git commit, solo voy
a cometer y solo decir, no
voy a
adjuntarlo a ninguna idea. Decir nombre fijo de descarga
y carga. Porque usa el nombre para conocer el para practicar empujar, ¿verdad? Entonces esto es muy, muy
importante, chicos. Entonces esta parte. Entonces ahora son lo mismo,
deberías poder
realmente hacer frío. Entonces vamos a dar empujón. Entonces, una vez que empujes, esto
volverá a entrar. Entonces es un construido esto um
porque recuerda que siempre
fue decir, empujar, empujar. Construidos. Entonces esto
va a construir. Entonces esto tomó un tiempo
antes de que lo hiciera. Entonces si nos fijamos en
esto, inicialmente, que construimos
tardó un más tiempo para esto el más largo tardó
9 minutos, ¿verdad? Entonces voy a
presionar de nuevo. Sí, así que esto está presente ahora mismo. Entonces esto básicamente tomará unos 12 minutos justo antes de
que realmente termine. Bien, entonces voy a pausar el video y una vez hecho esto, voy a
ponerme en contacto con ustedes, y procederemos
a ver si esto se completó y empujó
a Docker con éxito ¿Todo bien? Ahora voy
a publicar el video. Ustedes. Todo bien. Esto terminó con éxito. Todo bien. Y esto es
bastante impresionante chicos. Pasemos por los pasos. Veamos qué pasó. Vemos que esto realmente funcionó.
Esto realmente funcionó. De hecho, somos capaces de
configurar nuestro mazo en realidad nos llevó tanto tiempo
o no mucho tiempo Este fue uno que tanto tiempo
tardó preparar
el mazo y construir Al parecer, eso fue
lo mismo que llevó tanto tiempo mientras
estábamos construyendo localmente, esto funciona y enumeremos nuestros archivos. Vamos a enumerar los archivos. Si revisas para listar archivos, puedes ver esto básicamente nos
muestra todo
dentro de este archivo. Este es un curso de GAF Que.
Esto es ejecutable. Este de aquí, esto
es ejecutable, y esto es realmente
genial. Todo bien. Si bajas, veamos
el artefacto que subiste,
nuestra subida de artefactos fue exitosa Entonces si comprobamos, esto
fue cuando subimos, entonces vayamos a la sección
push image. Recuerda que
dependen el uno del otro. Descargué el artefacto. Por eso se
descargó con éxito, que fue la que
llenó la otra vez. Entonces veamos el contenido.
Se ve el contenido, el expediente Docker y
el caso GAF QL Entonces esto instaló
Docker con éxito. Entonces esto fue capaz de iniciar
sesión con éxito,
Login tuvo éxito. Entonces si miras
esto fue capaz de
empujar la imagen con éxito. Recuerde que había configurado
para ejecutar algunos detalles geniales antes de que
realmente se publicara y esto
en realidad estaba haciendo una
limpieza posterior y esto funciona Vamos a revisar. ¿Tenemos esto? Deberíamos tener algo
llamado Gráfica Q ¿un punto cero? Porque así es exactamente como
lo llamamos. GPhC Wonder cero. Esto es. Gráfica Q Wonder cero. Déjame revisar esto otra vez. Estoy viendo talla como hace
apenas 2 minutos. Me pregunto por qué está
bien, déjame abrir esto. Bien, una las imágenes geniales. Imagen Docker. Publica porque
necesitas agregar algunos detalles. Me pregunto por qué esto en realidad
no está mostrando
el tamaño total. Volvamos a revisar.
Probablemente algo salió mal durante la deuda. Va a confirmar,
Login exitoso. Déjame revisar la imagen push. Entonces la parte donde
estaba post push para limpiar la carpeta,
empujaron. Voy a bajar
todo el camino. Yo empujé, empujé, empujé, al strctan, veamos
qué pasó al final Veamos desde aquí, esta parte, copié esto fue
interag un archivo Docker Copié desde la base de construcción hacia arriba, luego me muevo a esta parte
exponiendo capas. A ver. Estas son las capas de empuje. Estoy esperando 19819815 MB empujando capa y dice que todo esto fue empujado Veamos qué es esto.
Mira los metadatos. Los metadatos dicen que la
maravilla gráfica es correcta. A ver. Todo bien. La única razón por la que
esto no será. La única razón por la que esto podría ser porque
cuando uso el costo, podría estar recogiendo de esto y no
se ve como lo mismo, pero aún así espero
que muestre esta parte. Bien, lo que voy a hacer, voy a
tratar de sacar de mi servidor local,
mi Docker local Si voy aquí, da clic en esto,
debería poder tirar. Debería poder hacer
Docker pull y voy a copiar esto bajo cero.
Entonces Docker tire Veamos a qué se mete. Dónde está Docker, creo que
tengo Docker abrió Docker. Docker de mano abierto.
Tengo las ollas. Mira Imágenes,
se llevó un contenedor. Bien, busca imágenes. Entonces voy a hacer ZG Graph QQ. Dav QO, luego un D cero. Gap k1z lo encuentro?
Sí, ya está. Esta Gráfica k una la Z. esta es. Vamos a tirar de
esto. Vamos a tirar de esto. Estoy tratando de sacar
esto, acabo de pasar el video y sacarlo y
ver qué es lo que realmente. Si tengo los detalles completos, probablemente la subida aún no
estaba hecha. A lo mejor la subida de
probablemente el nombre
del tamaño no solo se esté mostrando y tenemos los
detalles de la guía, así que ve a publicar esto Bien, así que esto demuestra
que fue un éxito. Entonces esto fue tirado
tirado con éxito. Lo que voy a hacer quiero
traer en mi terminal. Vamos a ho en mi terminal.
Vamos a aclarar esto. Voy a hacer Docker. Imágenes. Mira las imágenes. Eh. Entonces puedes ver que esto realmente
fue exitoso. Así que simplemente tiró, ¿
y esto es qué? 273 MB. De hecho, trabajé con precisión. Entonces supongo que fue la
acción de Git la que no solo está poblando o Docker Hub que no solo está
poblando Todo se muestra
como debería. Y esto es bastante genial.
Esto chicos bastante chulos y tenemos los detalles que necesitamos. Todo bien. Entonces esto es básicamente todo lo
que estábamos viendo, y en realidad somos capaces de
obtener todo correctamente. Entonces supongo que hay un proceso para actualizar esto es actualizar esto. Tenemos todo lo que necesitamos, y ahora lo tenemos en nuestro entorno
local. Ahora podemos ejecutarlo en contra. Probablemente solo podamos
construir el ubertiJAFL desplegado en CubertAsí que los vemos
150. CD de CI, parte 7: Oigan, chicos, genial
tenerlos de vuelta. Todo bien. Ahora que hemos seguido adelante para ser
realmente la
imagen con éxito, hemos empujado y hemos empujado
al doctor Hub y
pusimos a Local puse mi registro,
mi registro local, así que
he seguido adelante para agregar el archivo de implementación de Kubernetis Entonces, comenzando con,
creo un mapa de configuración. El mapa de configuración es básicamente
donde
guardas toda tu configuración
que debería existir dentro del registro o que debería existir básicamente
dentro de tu aplicación. Y eso es lo que he hecho
aquí. Esto coincide con todo. Db nombre de usuario, Db
par como se puede ver el host los pods
que es el host caliente. Tienes el anfitrión,
tienes las vainas o hay algo así
como anfitriones calientes. Tienes el anfitrión, tienes las ollas y nosotros
tenemos
el cuidado de dbNameGap llama al perfil de primavera
que estamos usando, tú eliges este perfil Entonces también tenemos
el servidor host, este chico Osa host y no
server pots. Tenemos esto. No he incluido esto
y esto todavía por una razón porque voy a estar
usando mi IP Wi Fi, ¿verdad, mi IP local, verdad? Entonces no quiero usar esto porque no puedes
usar host local, tienes que usar tu IP. Entonces pasando por
Internet para conectarme a
mi entorno local de Cbonets Entonces voy a
agregarlo antes de iniciarlo. Entonces para la
parte expuesta, estoy usando star así que solo
quiero exponer
todo por ahora. ¿Todo bien? Después en adelante, el archivo, archivo de
implementación, así es
básicamente como funciona. Tenemos las actualizaciones rodantes. Nuestras actualizaciones rodantes,
tenemos cosas como las que expliqué esto en
los videos anteriores. Yo me aseguraría de que todos
estos videos se agreguen cuidadosamente
revisa los videos, ves todas las
explicaciones al mismo. Entonces en realidad
te estoy dando algunos detalles básicos para iniciarlo. Esta es la imagen. Debes poner en donde debes sacar del
nombre de usuario, luego la imagen. Básicamente, esto es lo
que tengo. Bien, recuerda nuestro actuador, aquí
donde entra. Oc trator ayuda a la disposición
y la ligereza habló. Vea este servicio que usamos ahora para exponer el servicio y así
poder llamarlo desde un entorno
local. Estoy usando el
concepto de note pot. Ya he explicado
todos los detalles en los videos que sembramos, asegúrate de verlo realmente Ahora mismo que tenemos esto funcionando
lo siguiente que tenemos que
hacer es sacar a colación ubernttis
en nuestro Ve a Kubernettis y arranca
Kubernetis y aplícalo Kubernetis Va a tomar
unos segundos, los minutos y
en realidad empezar así
que solo publico el video
cuando vuelva, vuelva. Todo bien. Así que gracias por regresar. Y como se puede ver, ahora se
inicia acbntis. Así que vayamos a una terminal
para comprobar realmente esto. Entonces voy a
usar esta terminal. Voy a usar esta terminal. Ya tengo Keep
cul en almacenado. Así es como
realmente interactúas. Lo que haría, lo comprobaré. Mantuvo configurar el contexto actual. Digamos el contexto Docker
Dktop, que es bastante genial. Navega check LS, tenemos
este archivo de implementación, pero adelante y simplemente despliega este archivo de implementación directamente. Voy a hacer Keep Co Keep Co dos, luego aplicar o
podrías hacer crea F, luego Deployment Yama
file Solo usaré esto. Crea todo junto. Entonces llamaré entonces. Keep
Cut two get all gets all. Bien, entonces hay un error, y el error está buscando. No encuentro nuestra Imagen. Entonces entremos en esto
para ver qué pasó. Entonces entraré aquí y
haré Kip Cats Logs. Ahora, presione esto Registros F. Bien. A ver. Verás, está esperando porque no se puede sacar la
imagen. Está buscando esta imagen, pero no puede encontrar esta imagen. Este es este tipo. Está
buscando esta imagen no se puede encontrar. Voy a hacerlo describir. Describir. Describa la vaina.
Veamos qué está pasando. Está buscando,
mira la ortografía, agarra GHQL ese es el problema Co aquí, la imagen
debe ser grafica esta imagen. Lo que voy a
hacer, voy a sofocar así que entraremos aquí Voy a borrar esto,
voy a borrar
todo y desplegamos. Mantenga Kaká obtener todo. Mantener Kat eliminar,
eliminar despliegue. Grandes implementaciones, y el
nombre de implementación es lo que Graphkyw. GAF QO. Como suprimido.
Ahora borra el servicio. ¿El servicio es qué? Servicio GAF Q. Puedes ver que estoy
haciendo aquí GraphQL. Servicio Gp Q como el nombre
que realmente especificaste. Eliminar servicio así podría
decir eliminar SVC, ¿verdad? SVC Y por último, eliminar el mapa de
configuración, que es CM. Dices config map
completo o simplemente un CM. Gráfico QL. Esto está hecho, voy a
tratar de redesplegar todo de nuevo. Mismo comando. Esto se hace de nuevo
y voy a hacerlo ir. Error de tiempo de ejecución del contenedor. Soiferent error ahora, así que vamos a
ver cuál es este error. ¿Voy a sacar esto bien? Y digo corte de cubo para describir. Describir puerto. Bien, entonces, ¿cuál es el problema? Así que míralo, dices
fallar al crear tarea, C runtime up este
permiso es desconocido. desconoce el permiso.
¿Cuál podría ser el problema? Vamos a revisar. Z Z. éste está realmente presente en la máquina debido a la que
ponemos tantos, está bien Ahora el problema no se pudo
iniciar la respuesta del contenedor de Damon no pudo
crear la tarea de Shim, que es que OCI crea no
pudo exacto esto Permiso denegado porque se desconoce, no lo sabe. Necesitamos ver qué es
esto y mirar nuestro archivo Docker una vez más y ver cuál podría ser el
problema porque
se supone que todo va a ejecutar
realmente a este tipo Vamos a verlo. Tengo un archivo Docker.
Estos son puntos de entrada, y esto básicamente debería funcionar. ¿Cuál podría ser el problema?
Vamos a verlo. Tenemos esto. Tenemos esto arriba. Estamos copiando esto en esta a, entonces estamos comprobando a
los directores que ya están en esta app y lo
estamos jalando Déjame ver como nos volvamos a poner. Obtener todo lo que pueda hacer así que esto menos tratar de depurar
es un poco más. Veamos qué está pasando. Espero que esto se haya
copiado con éxito. Las exhibiciones no se
copiaron con éxito. Lo que voy a hacer,
déjame intentar correr D Dcer ya veo. Sever podría ser el problema. Para que pueda correr esta
formación es la nueve, tengo un problema, recuerden
que no definimos a nuestro anfitrión. Esto también sería un tema. Esto no está claro cuál es el
problema voy a ir a poner en mi anfitrión e intentar ejecutarlo de
nuevo y ver qué pasa. Voy a publicar
video, poner esto adentro, lo
voy a poner en una diferente mi otra pantalla para que
no exponga mi IP, ponga, luego borraré
esto y lo haré. Sigamos adelante, borre. Seguiré adelante,
eliminaré el despliegue, eliminaré el servicio o
eliminaré la configuración. Eso es. Así que puse en mi anfitrión. Bien. Oigan, chicos.
Decidí que solo estoy en este video. Entonces en el video
que viene de la edición del sábado, luego para ver exactamente por qué
estamos teniendo ese problema, entonces volveremos
a terminar esto, los
veo en el siguiente video.
151. CD de CI, parte 8: Hola a todos, genial
tenerte de vuelta. He podido construir
esto
con éxito , solo voy a mencionar eso. Esto se ha construido con éxito, sin embargo, hay una advertencia.
Yo fui capaz de construirlo. Esto en realidad bulled
con éxito, ya lo
he registrado y voy a
ver el código ahí Yo solo reviso el
cuando te registras en la Gite en el código en Git, compruebo el flujo de trabajo y
poder ver que todo va Sin embargo, debido a que ejecutamos demasiados comandos
o por alguna razón, estoy descubriendo que la imagen
nativa en realidad arroja un error extraño o
algún problema de permiso. He intentado depurar desde
hace bastante tiempo. Con el fin de terminar realmente este
video para que realmente se vea construido para lograr el
propósito, construí el uno. El que construimos localmente, en realidad
presioné a github y realmente pude hacerlo. Me refiero probablemente al servidor
Ubuntu que
en realidad era provisión le faltan algunos detalles o alguna biblioteca. Ahora mismo, lo
que he podido
hacer es lo que construí localmente, lo
llamé gap one merecer. No sé por qué
elegí el nombre, y eso está funcionando
con éxito. De hecho, podemos simplemente entrar. Yo solo cojo esto solo escojo
esto hago más lindo exec. Yo hago exec, luego dash IT. Entonces metí eso sin
el slash delantero. Para slash Bn bash. Verás,
en realidad podrías entrar. De hecho, nos muestra
todo lo que tenemos, que es un ap y eso
fue exactamente lo que usamos. Si revisas el
archivo de Daco, ves que está arriba, en realidad la
estamos colocando arriba y esto está funcionando correctamente Ahora bien, si voy a salir esto existiendo esto,
entonces puedes comprobarlo. Vamos a describir esta vaina. Yo voy a hacer esto. Voy a describir
esta vaina
para ver cómo se ve el tronco. Voy a hacer Qc
describir la vaina. Uh, eh. ¿Vemos esto entrando? ¿Estamos en condiciones de ver
esto en realidad Todo va
bien. Comprobemos los registros. Voy a revisar los registros ahora, Cubitadora y troncos. Muy bien, entonces vemos que esto
realmente comenzó con éxito, y así es básicamente
como se ve. Esto es muy maravilloso, y creo que en realidad podemos
trabajar con esto. Todo bien. De hecho, hemos sido capaces de
construir esto con éxito. De hecho, intentemos con el comando. Intentemos comando para ver
si realmente funciona. Lo que voy a hacer
es que voy a
arrancar mi servidor de autorización. Fresco. Tengo mi
servidor de autorización. Esto ya comenzó. Todo bien. Tengo
mi servidor de telecon Esto se pone en marcha. Ahora,
ya puse mis datos. Ya puse en mis datos, que solo voy a
mostrar el servidor caliente. El servidor caliente y el host, lo
señalé a mi IP local, y eso es en realidad
eso es bastante genial. Lo que voy a hacer ahora mismo
es que luego puedo hacer una llamada. Si entonces hago una llamada a
esto y obtiene la ficha, bien, entonces tengo esta ficha Ahora bien, lo que expuse, si realmente
miras el archivo, déjame intentar mostrarlo desde una pantalla de modelo para que
en realidad no exponga ese bit. Bien. Así que estoy
tratando de presumir de eso. Bien, entonces eso viene bien. Todo bien. Tráelo a
colación. Sí, aquí está. Entonces, si lo miras para las ollas de nodo en
realidad estoy exponiendo 32 mil Entonces significa para nosotros
coll desde afuera, vamos a estar usando 32 mil. ¿Todo bien? He copiado. He copiado la
ficha. Así que usa esto. Ya tengo este set. Entonces dijiste 2000,
cambiemos las probabilidades. Recuerda usar un Control A, para que no tengamos sobras Probemos esto. Solo vamos a buscar a la
compañía. Todo bien. Impresionante. Ya ves que podríamos conseguir todo lo que tenemos aquí. Comprobamos departamentos,
departamento está funcionando bien. Significa que
realmente somos capaces de trabajar esto,
el depósito de aplicaciones. Al menos en realidad se
metió en la vaina. Entonces significa que esto está funcionando
con precisión, bien. Hemos podido cubrir
todo lo que nos propusimos hacer. Y esta es una guía bastante
impresionante. Esto es bastante impresionante. Entonces, el siguiente paso, lo que
vamos a estar viendo es ver cómo ahora, si tienes un
servidor GraphQL funcionando, ¿cómo te conectas a él Entonces vamos a seguir adelante
y hacer clic en el cliente. Y con ese cliente, luego
nos conectamos a
este servidor Graphc Entonces veremos cómo
comunicarnos con mutaciones y también veremos cómo comunicarnos con la
consulta para que tengamos
un proceso de extremo a extremo, estamos construyendo un servidor de
cue de gráficos nosotros mismos, o en realidad estamos creando o realmente nos
conectamos
a un servidor de atención gráfica. Con esto,
los veré chicos en el siguiente video.
152. CD de CI parte 9: Oigan, todos.
Genial tenerte de vuelta. Todo bien. Entonces lo que pretendemos hacer en esta sección
es bastante sencillo. Entonces, lo que queremos hacer
es en la última sección, miramos el despliegue
usando un pipeline CICD, y en realidad
implementamos un GA ViaMH Pero sin embargo, podría
haber un escenario que solo quieras
desplegar el jar fat
normal, normal o el jar
ejecutable, lo estamos viendo
en esta sección. Estoy a punto de
registrarme en la sucursal D. Usar la rama para
manejar realmente este tipo de implementación. Actualmente estoy en la rama Dev
como puedes verlas en dev. Vamos a cambiar
en lugar de amina, ya que hemos dedicado nuestro
principal a empujar realmente gravimg usando
la muerte para impulsar esto ¿Cuáles son los cambios
que van a pasar? Todo va
a permanecer igual, si lo miramos hasta ahora.
Esto va a cambiar. Todavía vamos a estar
usando la misma acción. Todavía se
va a utilizar la misma acción. Ahora aquí es donde potencialmente
entrará el cambio. Vamos a sacar el código. Todavía necesitamos todas
estas versiones
necesitamos el gravi podríamos
usar el mismo graviu Si no eres consciente Gavin básicamente también tiene un
mal momento de JV equivocado, no excluye es solo
que construye encima de él y es capaz de
hacer algo más único Bien. Aquí lo tenemos ahora. Esto es lo que
va a cambiar. Ahora para nuestro comando, no
vamos a
ejecutar estos animales, vamos a hacer
envian paquete limpio Podríamos simplemente hacer paquete, creo que acabo de hacer paquete
ambiental. Empaque luego omita pruebas, luego eliminamos todo el derecho. Aparentemente, no
creo que todo esto
realmente haga ninguna
diferencia, ¿verdad? Porque nosotros solo
básicamente
solo hay comandos adicionales que en realidad
podrías agregar. No creo que necesite cosas como llamada
paralela o los me gusta, pero podría simplemente darle al usuario
los tiempos que podrías
establecer a los tuyos entonces recuerda que
mencioné esto es básicamente
para darnos un
algoritmo criptográfico más seguro o más fuerte para un aleatorio seguro que
si vas a estar usando creo que esto es
básicamente lo que necesitamos Vamos a
conseguir un archivo jar, chicos necesitan un archivo Ja. Ahora, algo más
necesita cambiar. Ahora bien, si estás al tanto, recuerda que el archivo Docker que creamos, este archivo Docker prácticamente
era para el Necesitamos modificar realmente
make for Docker file. En lugar de modificar,
voy a dejar esto como esto. Voy a crear
otro archivo Docker. Voy
a señalar ese archivo Docker para construir nuestra imagen Eso es exactamente lo que
vamos a hacer. Sólo voy a traer
eso enseguida. Muy bien, entonces tengo una cabeza
para hacer eso, como pueden ver,
cupo Dokofle
llamado Docker file
OD y estoy usando Amazon
Coreto 22, ¿verdad? cupo Dokofle
llamado Docker file OD y estoy usando Amazon Yo solo quiero usar el
número Jeff Recuerda, ese es todo el propósito
de este video, ¿verdad? Entonces para construir el hecho jecutable. Entonces de la misma manera,
sólo estoy pasando. Entonces estoy usando compilación en capas, ¿
verdad? Construcción en capas. ¿Correcto? Básicamente, solo tengo de una vez que se ha hecho el paquete, en realidad solo
me
despojo todo y elijo todo lo que
necesito que necesito, y
realmente soy capaz de construirlo. Así es básicamente como
debería verse, ¿
verdad? Se registrará el tishod Esto no es diferente. Esto no suele ser
diferente del aspecto que tienes y
tienes tal vez Java luego
guión jar luego tu jar, queremos usar un
punto de entrada, y los me gusta Podrías decidir ir
con la convención que
acabo de ver que solo
muestra una diferente para usar realmente construye tu archivo Docker usando
una compilación en capas Esto es básicamente lo que
vamos a tener. Ahora tenemos esto, tenemos que seguir
adelante y modificarlo. Ahora recuerda, esto no
sería mirar esto. Si piensas en
esto, entonces tenemos esto. no necesitamos este
comando
porque ya no estamos
haciendo esto. Voy a tomar esta orden. Este mando
ya no es necesario, ¿
verdad? Porque
no tenemos que hacer esto. Yo saqué a este tipo, ¿verdad? Vas a estar sacando, ¿verdad? Esto sigue activo. Aquí en realidad estamos
configurando la versión Java. Estamos configurando la
versión Java y el Maven y las luces blancas porque esto básicamente
funcionaría, Java dos, y básicamente podremos ayudar
a ver el
correo electrónico como un archivo Java, en realidad
podemos usar
Amazon corrector para completar el trabajo, eso básicamente debería funcionar Entonces si no avanzas para ver cosas que estás guardando en
caché, esto está bien Ahora necesito mencionar
este almacenamiento en caché, creo que me falta
algo ahí Todavía no he podido
averiguarlo, pero al parecer, creo que necesito
agregarme algún tipo de clave para habilitar el almacenamiento en caché Voy a seguir adelante como
patrón desde aquí. ¿Qué más tenemos que
hacer? Ya no necesitamos esta lata porque aquí
estamos escuchando archivo y haciendo cumplir
este ejecutable Ya no necesitamos esto porque en realidad
estamos construyendo
el archivo Java, el archivo Java, así que ya
no necesitamos esto. Voy a sacar esta orden. Ahora queremos subir
los artefactos. ¿Cuáles son los artefactos que necesitamos? Ahora, recuerden, aquí
estarán subiendo cualquier cosa. ¿Subiendo un conjunto de cosas? Si miras cómo lo subimos, necesitamos archivo Darko Lo que estoy subiendo Docker
file Underscore OD. Esto es exactamente
lo que estoy apuntando a Docker file disco Old Esto es muy importante, chicos. Hacer archivo subrayado Od. Eso básicamente sería tener. Entonces, cuando construimos esto, creo que normalmente estará
bien una vez que construyamos. Veamos exactamente
cómo se ve. Pero cuando construyamos esto,
vas a
tener un archivo jar, ¿verdad? Es cualquier cosa que
tenga un tarro de punto estrella. Esto es exactamente lo que
estamos buscando pedir. Recuerda, voy a copiar estos datos,
voy a tenerlos. Entonces tenemos todo esto está bien. Voy a llamar a este
maravel artifi jar, para que no entre en conflicto
con lo que teníamos antes Vamos a descargar lo mismo y
lo que descarguemos será AvelGQL quiero decir,
no Gavi, GraphQL no Gavi, Bien, así que también lo
tenemos hecho. Entonces esto es para la sección de
descargas y este es un detalle que se
va a descargar como ya
conocemos . Entonces
ahí lo tenemos. Voy a tener un Jap
voy a tener un objetivo, voy a tener esto, y esto básicamente debería
funcionar como debería Ahora bien, la diferencia es,
piensa en esto, si tuviera que hacer esto,
usando este inicio de sesión de Docker, el inicio de sesión Docker utilizará
el archivo Docker predeterminado Necesito revisar tu
documentación para ver cómo podemos especificar un archivo Docker diferente, y volveré en un minuto Yo sólo pegaré el
video y volveré. Bien, así que puedo
averiguarlo. Entonces tenemos esto. Sólo te voy a mostrar lo que tenemos
en la documentación. Si nos fijamos en la
documentación, básicamente, esta es documentación para la acción de
compilación y empuje. Y si buscas la acción
build y push, indica
que
en realidad podrías usar algunos comandos
adicionales, y estos son los
comandos adicionales que puedes usar ahora. Si quieres. algunos de los ejemplos
que se dieron. Este es un contexto en
caso de que quieras. Ahora bien, si no mires hacia abajo, verás que hay un archivo en caso de que quieras
partes para Dockerfile Esto es por defecto, pero
estamos cambiando. Entonces estoy usando los
puntos, luego slash. Mi Dockerfile sería entonces
docophlon que se llama esperanza. Así es exactamente como
deberíamos trabajar. Veamos cualquier otro ejemplo. Expediente. Yo sólo miro, mira eso. ¿Alguna otra cosa? A ver. Entonces esa es básicamente
la única descripción que tenemos para ello. Todo bien. Entonces espero que eso
realmente funcione y en realidad
no tengamos ningún error, lo contrario, en realidad volvemos. Entonces esto es básicamente
lo que tenemos. Así que
en realidad he podido tener que modificamos que
vamos a meter en el frasco. Y lo mismo que
tenemos aquí, he añadido la madera Docker No voy a recoger el expediente Docker. Así que estoy recogiendo esto, el frasco. También estoy escogiendo esto. Entonces
todo va a ser traído. Entonces somos capaces de construir y empujar
realmente. ¿Bien? Entonces vamos
a ser cosecha. Quiero cambiar esto
para que sea diferente. Voy a llamar a
este frasco de cull Graph. Llamémoslo G Giga, Giga un punto cero, eso en realidad nos
daría un poco de
diferencia Giga un punto cero,
eso en realidad nos
daría un poco de
diferencia. Creo que
esto básicamente es. Tenemos esto para trabajar en Dev
y voy a empujar esto. Voy a empujar esto, en realidad
deberías entrar. no debería estar construyendo
la imagen grande Ya no debería estar construyendo
la imagen grande y vamos
a ver las cosas bien. Vuelve en el siguiente video, te
voy a mostrar los resultados, y si hay alguna
otra actualización por
hacer, en realidad voy a mostrar esto. Los veré chicos
en el siguiente video.
153. CD de CI parte 10: Oigan, chicos, es bueno
tenerlos de vuelta. Todo bien. Entonces esto
está hecho, ¿verdad? Cuando acabamos de empujar, todo funcionó con precisión, no obtuvimos ningún error, ¿verdad? Todas las correcciones que hicimos para empujar el número jar
realmente funcionaron con precisión, y luego seguiré adelante para mostrar Docker Hub para ver la
imagen que se empujó Y esta es mi
cuenta, si la revisas, y esta es la Jarra. De hecho compruebo si vuelvo
a Docker Hub en la base, ahora ves que solo es
empujado GJar si lo abres, básicamente
podrías ver eso, solo empujado hace 2 minutos Esto realmente se hizo
y tienes el que cero y todo está
funcionando con precisión. También tienes la talla es 266, ¿
verdad? Todo
funcionó con precisión. Ahora bien, ¿cuál sería entonces la implicación y cómo
ejecutamos esto localmente Lo primero que vamos a hacer si realmente sacamos esto a colación, es que se supone que debemos iniciar sesión en el escritorio de Docker y
extraer la imagen localmente Para sacar la imagen localmente, luego actualizamos un
despliegue amo fuego. Ese es básicamente el siguiente paso que se supone que debes hacer. Sigamos adelante y
en realidad hagamos eso. Hagámoslo
enseguida. Voy a construir mi
dock en el escritorio. Escritorio Docker,
eso se acerca. Bien, entonces
entraré en mi sección de imagen. Entonces voy a cambiar esta brecha G. Te diré a
GJ un punto cero. Entonces esto va a poder
realmente obtener la imagen, ¿verdad? Ahora, mi Docker está realmente levantado. Entonces, lo siguiente
que voy a hacer es que voy a sacar
esa imagen, ¿verdad? Voy a sacar esa imagen. Ahora, recuerden,
fácilmente puedo simplemente buscar aquí. De hecho, podría elegirlo directamente porque
ya está sincronizado con mi sartén, diré
slash G o G Jar Entonces Giga, ¿verdad? Así
es. Esto es. Entonces, si ve, ahora puedo seguir
adelante y simplemente
tirar de esto, ¿verdad? Y esto no solo
introduce esto en mi repositorio local o simplemente
podrías ir a
tu terminal y simplemente hacer un pull de Docker,
solo sacar el nombre Ahora bien, ¿cómo se obtiene el
nombre? Es muy sencillo. Así que solo ve a Docker Hub, que mostré antes. Una vez que vas a
Docker Hub, ya ves, ya
tienes esto así que
podrías usar este mismo nombre, pero en lugar de empujar, usa pull Tirador de Docker. Tira, entonces entonces realmente tiras esto que va a ser
Giga entonces un punto cero Al parecer eso es
lo que va a pasar. Creo que esto debería
haber salido adelante. Entonces esto sigue
jalando ahora mismo. Esto ya está hecho. Esto ya
está disponible. Vamos a echarle un vistazo.
Comprobemos las imágenes. Vamos a las imágenes, después
buscaré a Gi Ja, se
puede ver que esto
ha sido jalado. Esto se tira, y esto es chicos bastante increíbles.
Esta bastante impresionante. Ahora ya tenemos esto hecho. El siguiente
lo siguiente disponible que se supone que debemos hacer es
traer
a colación un Cubontis Mabunti está corriendo como
puedes ver aquí abajo. Mac Boni sigue funcionando. Voy a seguir adelante
para establecer mi anfitrión. Recuerda, este va a
ser el host de tu sistema ahora. Esta es la razón porque tenemos un entorno virtualizado que no
está disponible para
nuestro sistema host De ahí que en realidad estoy
poniendo a mi anfitrión Wi Fi. Así es mi
IP Wi Fi, quiero
decir, así es como probablemente va a través de Internet para luego
conectarse a cosas
como las credenciales,
más como el servidor at que creamos,
el servidor autiano que creamos,
y luego la base Esa es toda la
idea. Voy a hacer eso voy a hacer
eso y traerlo. Antes de hacer eso,
voy a poner en
marcha mi servidor de autorización. Entonces mi servidor de autorización, lo traigo a colación,
entonces esto es todo. Lo traigo así esto
comenzará en el número de macetas. Voy a sacar esto a
colación. Esto va a correr. Lo pondré en la otra ventana, lo
pondré en la ventana, esto viene arriba solo
tamiz, sube. Arol. Esto es para arriba,
esto está arriba, ¿verdad? Entonces lo tenemos
iniciado el 88998099. Entonces esto está arriba, voy a
traer esto. Lo llevaré al otro lado. Fresco. Esto es bastante genial. Ahora
que lo hemos hecho, se supone que hay que
hacer lo siguiente, bastante impresionante. Empiezo se suponía
que debía agregar la TI. Voy a tomar esto
en mi otra pantalla. ¿Correcto? Entonces voy a seguir
adelante agregar mi IP. Recuerda, si estoy
usando el Windows, todo lo que necesitas hacer
es escribir IP config, y poder
verlo realmente para un MAC, puedes escribir espacio IP AGR Voy a ser capaz de
realmente sacar eso. Entonces voy a hacer
eso mi otra ventana. Recuerda, es secreto. En realidad no lo expones. Entonces voy a hacer
eso por mi bien. Así que lo elegí y
en realidad he reemplazado esos valores, ya los
he reemplazado, y esto es genial.
Esto es bastante genial. Ahora, creo que ya
lo he hecho. Déjame simplemente hacer algo
también para comprobar. Creo que tengo eso.
Entonces puedo verificar. Comprobemos
Kubernetis o clados. Pasemos de
nuevo a pasar por
el mismo proceso para estar seguros de
todo en fuerza. Voy a decir
mantener CTL eso es todo. ¿Hay algo
corriendo? Sí, algunos de los últimos detalles que ejecutamos mientras en realidad
estaba haciendo algunas pruebas. De hecho voy a
quitar todo esto porque me olvidé
de aclarar esto. Voy a hacer un cubo CTL, eliminar e implementar, simplemente eliminar desplegar. Se
trata de un despliegue. Yo sólo voy a elegir el teclado gráfico, quito esto. Elimino esto. Entonces si quieres
quitar el servicio, yo haré SVC, que es tomas de servicio
para el servicio. Eso también funciona. Voy a mover el servicio.
Vamos a sacar esto. Después también quita la gráfica. También elimino el mapa de
configuración, CN. ¿Tenemos ese mapa de configuración? A ver. Creo que no
tenemos ningún
mapa de configuración por el momento, así que esto está bien.
Volvamos a ponernos. Olvídate, esto es lo único que
tenemos disponible. Todo bien. De hecho, hemos podido completar los detalles con Clay para luego ejecutarlo tal como está, bien. También hice algunos ajustes si voy a mostrarme enseguida. Tengo mi IP en la parte superior, así que es seguro. Ahora bien, si ves también
he aumentado el retraso inicial porque
recuerda para galv, si no estás ejecutando una gavage, el inicio del tiempo
en realidad tomará un poco de Solo me refiero a 30
segundos, son 30 segundos, aquí están 30 segundos también, en realidad
podría llegar así que
necesito hacerlo en realidad en esto. Esto también es muy clásico. Porque si en realidad
estableces solo 2 segundos para el retraso inicial como
lo hiciste en la otra parte, realidad lo tienes que
llenar bien. Todo bien. Entonces creo que tenemos todas
las cosas básicas que necesitamos. Vamos a seguir adelante, hacer un LS. Bien, genial. ¿
Qué tal mis archivos aquí? Mi despliegue para
cy acaba de implementar. Yo solo clare haré una Q CTL,
aplicaré al chef, luego
despliegue, el Todo bien. Ahora haz
un Q CTL, consigue todo Todo bien. Entonces esto es quejarse de la imagen, así que veamos qué está pasando En realidad solo entramos en
algo sobre el pool de imágenes. Entonces Q CTO describe,
luego describe la olla y tiene esto Creo que necesito
quitar las piezas. Sí. Lo que dijiste, Bao tirando de tarro de imagen, 10. La imagen retrocede
en realidad puede encontrar esto. Vamos a ver qué está
pasando aquí, ¿verdad? Quiero estar seguro, sí, agregué la imagen correcta, jar. Ahora, déjeme
retomar esto. Grita esto. Yo lo haré Docker, Docker Image
s Voy a hacer Gjar luego estrella. Bien. Ya que no
tenemos este cero de Windows. Interesante. No tenemos esto. Voy a jugar,
veo la razón por la que. Creo que debería ser ZZ, Theko porque
tiraste directamente, ¿verdad Uh, eh. Este es
el tema, ¿verdad? Entonces por eso falló la imagen. En realidad no
coloqué en los derechos. Lo que voy a hacer,
voy a venir aquí. Debería ser Theta
k, ZZ, entonces tal. Esto debería poder
encontrar la imagen ahora. Voy a borrar. Voy a borrar todo de
nuevo. Eliminar todo. ¿Cuál es el último? Adelante y solo borra el último. Lo borraré, luego
solo revisaré de nuevo. Esto se aplicó luego eliminar. Eliminado todo.
Intentemos aplicar esto de nuevo. Yo sólo voy a aplicar. Hagamos un get all ahora. Ahora bien, este es un error diferente. No es un error de imagen genial. Vamos a entrar a ver
cuál es el tema. Voy a ir en un par de
esto hago un cubo CTL, luego describir vaina y tener esto Digo esto ya presente genial. Pudo encontrar esto ahora. Pero el dicho atrás de reiniciar
contenedor y vaina esto. Está reiniciando el contenedor. ¿Cuál podría ser la
razón por la que se está reiniciando? Comprobemos los registros.
Yo voy a hacer esto. Voy a revisar las bitácoras. Cuando digo bitácoras. A
ver si se desvirtieron Bien, entonces hay un problema. Ah, sí, y estoy seguro de que
sabes por qué es este tema. No se puede encontrar el marcador de posición. No puede encontrar el marcador de posición. Así que en
realidad vamos a comprobar esto. Entonces al mismo
tiempo, si sabes que no hemos iniciado
nuestras bases de datos, eso también podría ser
un error potencial. Muy bien, así que arregla todo
eso en el siguiente
154. CD de CI, parte 11: Oigan, chicos, genial
tenerlos de vuelta. Genial tenerte de vuelta
una vez más. Todo bien. Así que en realidad hemos podido ver que estamos lidiando con
el tema de los perfiles. Entonces, lo que he tenido que hacer
hice alguna modificación. Reviso
Dockerfile habría actualizado esto para usar los perfiles de resorte
activos que
en realidad
estaban Así que en realidad podrías
mantener lo que tenemos. Entonces lo he cambiado a DB host. Entonces también tenemos los DB pots
DB host y DB pods como básicamente lo tienen ahí, ¿
verdad? Todo bien. Estoy tratando de hacerlo para poder
ser mi anfitrión Db. Recuerda que sin apuntar
realmente a mi IP, y también he actualizado este
cheque la aplicación Docker Ya está todo aquí, Db Host, DB pots. Ahora
tenemos esto, ¿verdad? Ya me adelanté,
construí y empujé Dock Hub. hecho, he empujado a En realidad he empujado aquí, déjame mostrarte un
empujón a la acción. Si miras la acción,
disbte con éxito, utilizo el requerido, debería
ser requerido
mal escrito,
requerido host Entonces esto en realidad se
hace correctamente. Entonces en realidad saco la imagen. Si miras solo mira
la imagen, la imagen de Docker, S entonces ZeQuz slash De hecho saqué
esto hace 13 minutos, lo cual hice esto. Esto ahora está funcionando para que
podamos entonces realmente ir en prueba y verificar nuestra vivacidad se rompió
y nuestro libro de preparación
y ver si las cosas están
funcionando como Lo que voy a
hacer, entonces sólo
voy a entrar y
simplemente aplicar esto. Yo sólo mantengo que todo
esto está funcionando. Recuerden que dije 32. Si tuvieras que mirarlo, creo que no mostré esa parte. Si revisas el despliegue, entra
aquí, bien. Fije 30 segundos como segundo de retardo
inicial. Antes de que realmente
comience y comience a
patear para ver
si está activo o no, son 30 segundos
para ambos por la preparación
y vivacidad Entonces solo espera. Esto es 24. Comprobemos de nuevo, este es el 28. Entonces el periodo, dije
que debería comenzar a verificar son 15 segundos después. Estamos viendo esto. Sólo
vamos a esperarlo. Creo que en realidad debería darse vuelta Así que vamos a comprobar de nuevo. Si quieres, podrías
hacer un dash dash watch, pero en un comando en el Linux, Esto tiene que ser un q
específico, físicamente. Entonces ves que
empezó, yo empecé. Si quieres que haga una pausa,
golpeando de nuevo el comando, otra cosa que podrías
hacer es simplemente decir consigue página, luego dash dash watch. Sólo quédate en esa espera. Bien, así que eso está
arriba, así que revisemos su sonda de preparación y
revisemos su sonda de vivacidad Esto es para la preparación. Si le pegas a esto, está funcionando. También quiero mencionar que
cambié el cuaderno a 32,001, y vamos a revisar su sonda de
preparación Reviso su
sonda esc vivacidad, bien. Verás, esto está
funcionando con precisión. Bien, chicos, creo
que en
realidad hemos podido ver que la
apportiy comenzó,
así pueden seguir adelante y probar de
la misma manera que probamos cuando
realmente sacamos la imagen que
recuerden usar tu IP,
tu IP es una cosa clave que
revisé en Revisé en el archivo plomer. Esa es la clave que
necesitas para asegurarte de
poner en lo demás,
esto no va a funcionar. Déjame moverlo déjame mover
mis IPs para mostrarte exactamente dónde vas a colocar
eso para un repaso. Trae esto para que veas, tenemos el
host hot server y el host DB para colocar ahí la IP y
poder tener esta conectada. Con esto, creo que hemos
cubierto todo lo que
necesitamos cubrir en este curso. Tenemos solo un detalle más, que es si se está ejecutando una
aplicación Gp QL, ¿cómo me conecto a ella ¿Verdad? ¿Cómo escribo
código contra él, para poder
usarlo realmente en reste o clientes de descanso? Usamos clientes de descanso para crear una forma muy genial de
conectarse realmente a un servidor de
graph curo existente, que puedas saber cómo hacer mutación y al mismo tiempo, sabes cómo hacer
realmente una lectura. Con eso,
los veré chicos en el siguiente video.
155. Cliente Graphql 1: Oigan, todos. Bienvenido a la última sección de este curso. Ojalá, esta va a
ser la última sección, ¿no? Bien, lo que estamos haciendo aquí es
construir realmente un cliente. Como mencioné, pudimos
construir un servidor, ¿verdad? Tradicionalmente,
no es de la misma manera que te habrías conectado
a un Gavi, estarás conectado a un servidor HTTP o a una aplicación que
está construida con HTTP A pesar de que es sill HTTP, te estás conectando de alguna manera, pero Gavi es un poco diferente, para realmente hacer esto,
tuve que dejar un
proyecto diferente que voy a estar revisando y estar disponible en la sección de
descripción Siempre se podía comprobar
para ver dónde está. Ahora, también he seguido
adelante para crear varios detalles
porque no quería que este video fuera
demasiado largo, ¿verdad? O hay algunos
detalles innecesarios que siento. No es necesario, ¿verdad? En realidad es necesario, ¿verdad? Pero siento que podría hacerlo
fácilmente más fácil
creando distancia por delante. Entonces voy a pasar por explicar
todo lo que he hecho. Este video en particular antes
explicaré todo lo que se
ha hecho hasta ahora, y empiezo a construir sobre eso
a partir de videos posteriores. Todo bien. Bien, genial. Entonces, para conectarte al servidor AGA VM, ¿cuáles son las cosas
que estás viendo? Así que vamos a darle
paso a paso, ¿verdad? ¿Cuáles son las cosas que
estás viendo? Entonces tomaremos un escenario. ¿Correcto? Tomamos un escenario
y el escenario, los dos escenarios que ya
están hechos en
estos momentos es la creación de una empresa. Si quieres crear una
empresa, necesitas algunos detalles. Comprobemos también la búsqueda
de todas las compañíast. Un a fetch company, necesitas
pasar todos estos detalles. Ahora, lo genial para recuerdes es que cuando intentas crear
realmente
estás tratando de
usar realmente Gan quieres
conectarte a un cliente, no uses un cliente para
conectarte al servidor de Gavian Es casi similar
a la prueba que ruteamos. Significa que tenemos que
encontrar la manera de
poder pasar nuestras entradas si
tiene algunas no tiene. Después lo pasaremos a la gráfica
HTTP Gavi HTP QL. Perdón por estar diciendo
Gavi media gráfica, perdón. GraphQL a ese punto final. Ahora bien, si tuvieras que mirar, si tuvieras que mirar esto,
voy a estar cambiando mucho de pantalla así que probablemente lo voy a
tomar un poco despacio. Lo miro, estamos haciendo
un post a este punto final. Prácticamente, entendemos que todas nuestras peticiones serían
planteadas a los puntos finales Entonces estamos pasando estos
detalles. Este es el cuerpo. Por favor, ten en cuenta, este
es el cuerpo por el que estamos pasando. Este es el cuerpo que en
realidad estamos pasando. Entonces me plantea la pregunta, ¿cómo vamos a representar esto si queremos usar Postman o
decir que queremos usar un cliente, la forma en que lo estamos haciendo
ahora mismo, descansar clientes, verdad Ahora, nadie eligió cliente de descanso porque no hay
diferencia entre spas y plantillas de descanso. No hay rendimiento
y mejoras significativas en
el rendimiento. Es solo que hacen uso de cosas llamadas escrituras API fluidas. De hecho, podrían
tener una forma dinámica de escribir
cosas para aquellos que ya se usan
ya acostumbrados a los clientes web. Entonces, por eso vamos
a llevarlo paso a paso. Ahora la forma de conectarme, lo que tenía que hacer antes que nada, en una base, creé un cliente. Este cliente realmente no hace
nada excepcional. Todo lo que hace es que solo estoy recibiendo un cuerpo de solicitud que es genérico y estoy obteniendo
una respuesta que es genérica. Este es el número donde
estás dentro de tu plantilla st. Ahora convirtiendo ahora
para una plantilla de chaleco, probablemente
estés haciendo una plantilla que B intercambia o
publique por entidad. Así es como
funciona. simplemente buscar el equivalente. Ahora dentro de un post,
se podía ver que estoy duro codificando cosas porque no
quería que fuera demasiado complicado. Entonces estoy pasando el cuerpo, sea cual sea el cuerpo con pedacitos
que estés pasando aquí. Voy a hablar de
esto en un minuto. Después el encabezado. Cualesquiera que sean los encabezados,
todos los que podamos
tener porque podríamos tener varios encabezados, cosas como nuestra
autorización y similares, así que lo pasaremos.
Entonces recuperamos. Eso es básicamente lo que significa. Una vez que enviamos la
solicitud para recuperar, entonces ¿en qué queremos
formatear la clase? Lo que eso significa es nuestra respuesta, cualquier respuesta que
venga, ¿qué tipo de respuesta estamos esperando? Podría tomar una clase
para hacer eso de verdad. Ahora,
hablemos de la respuesta. Ahora para la empresa, si
estás plenamente consciente, sabes que así es
como se
ve la respuesta de una empresa . Te
voy a mostrar. Nos fijamos en nuestra empresa, empresa
fáctica, eso es un dato, el anidado dentro de los datos,
somos empresa Fetal Anidado nosotros es que
tenemos éxito un mensaje, entonces tenemos el detalle principal El principal detalla una
lista de empresas, que contiene nombre, número de
hogar, oficina central o país. Tú para comparar así es
exactamente como se ve esto. Datos, el anidado es cuál es la respuesta así que tenemos los
datos, los anidados entre ellos Tenemos la empresa de creación. Entonces tenemos, perdón creo que estoy
viendo lo incorrecto. Veamos qué
estoy viendo otra vez? Esta es la respuesta fetal de la compañía. Bien, lo siento. Entonces esto es
lo que quise decir, esto es todo. Ahora vemos que tenemos datos,
luego tenemos compañía fetal. Pero entre ellos, tenemos el éxito
y el mensaje, entonces el DTO esa es
la lista de dt Podrías comparar
realmente llevar esto a un lado y llevar
esto a un lado, ¿
verdad? Y trae
esto a un lado. Para que veas que
tienes los datos, luego la compañía fg, que también es independiente. Entonces tenemos a estos
dos anidados dentro de él. Eso es lo que tenemos en la lista de empresa, que es una lista. Eso es lo que tenemos
la empresa que la hice desde la empresa DTO,
y tenemos todo esto Ahora agregué JS Propiedad
ignorada para que en caso de que algún
cambio de propiedad en el futuro, no afecte lo que tienes. Normalmente es cierto para el caso
de donde realmente tienes un, normalmente es cierto cuando estás conectado a
un servidor que
podrían cambiar algunas
propiedades más adelante, agregas esto y así no
se rompe. De hecho, hemos podido
modelar nuestra respuesta, entonces qué sigue,
veamos el cuerpo. Ahora para el cuerpo
es bastante único. Veamos esto.
Volvamos con nuestros clientes. Nuestros clientes están recibiendo
esto. Recibir este cuerpo. ¿Qué aspecto tendrá nuestro cuerpo? ¿Cómo sería el cuerpo de
este tipo? Si miras el cuerpo, el
cuerpo necesita contener esto. Esta es la consulta, todo esto. Sin hacerlo
demasiado complicado, solo
necesitas copiar
exactamente como es Wh exactamente lo que hice aquí. Entonces creé una interfaz. Mira la compañía fetal, eso es exactamente lo que hice. Yo sólo la pegué aquí. Ahora bien,
para los que se preguntan, ¿cómo hice que esto sucediera?
Es tan sencillo como esto. Podrías usar una pantalla doble co y simplemente
pegarla ahí. Creo que sí lo copié
correctamente. Simplemente copia. Podrías hacer esto. copia esto directamente y
solo pega dentro de él. Esto funcionará
con precisión. ¿Correcto? Pero por qué usar todo esto cuando ya
teníamos el bloque de
texto en Java. No puedo recordar la
versión Java que estaba tramando ahora, donde podrías
usar un triple código. Entonces una vez
que hagas eso, solo mételo. Eso es básicamente
lo que logré. Nada demasiado complicado, ¿verdad? Así fue como
pude traer esto. Entonces es solo una interfaz, solo tienes esto. Entonces,
¿cómo se usa? Entonces si no miras, entonces si no miras
esto, hemos podido
hablar del cuerpo, de la respuesta. La respuesta es ésta. Esta es la respuesta
que quise decir, para la compañía fetch, entonces somos capaces de
mirar realmente esta guía ¿Cómo se conectan? ¿Dónde entra
la pieza de conexión? Necesitas crear más como
una solicitud que tome en una consulta, luego variable. Ahora bien, ¿qué significa esto? Para el caso de una solicitud que no tenga entrada,
no necesitaría esto. Pero esto siempre es
necesario porque esta consulta siempre
viene de aquí. Mientras que para la variable será el caso de
por qué tienes una entrada. Entiendes,
será el caso de cuando tengas una entrada
cuando tengas una entrada, entonces en realidad entra aquí. Vemos ejemplo típico
que ya creé eso. Ahora este video se está
alargar un poco. Volvamos en
el siguiente video, así que continúa desde
donde empezamos. Nos vemos en el siguiente video.
156. Cliente Graphql 2: Oigan, chicos, es bueno
tenerlos de vuelta. Todo bien. Continuando
desde donde paramos. De hecho, pude
explicar estos detalles. Ahora, vamos a juntar toda
esta pieza. Vayamos al servicio del GOP Cuo. Si observa el servicio
GOP Co,
alqutd el servicio que los
cables están Ahora para la compañía Factual, todo lo que hice fue
establecer la búsqueda Si nos fijamos en esta compañía
característica, solo
estoy apuntando a esto. Así es como se conecta.
Ahora, trae eso lo traigo. Bien, entonces mi quivi quiero
quitar esto porque
solo podría tomar todo adentro y quitar estos bits escupe a distancia Eliminemos este también.
Comprobemos nuestros abucheos res ¿Nuestros abucheos res lo contienen? Alimenta la
respuesta de tu empresa, la justicia. Bien, entonces me quito el UID
y las luces. Eso funciona. Bien, así que esto está bien. Entonces podrías
agregarlo en recordar
podrías decidir qué
quieres recuperar o no. Ahora bien, este fue el primer caso, vayamos al servicio de caso
gráfico. La petición básica
que estaba mencionando, mencioné es cuando
tienes una entrada, recuerda cuando tienes una entrada, es cuando
usas esta otra no la necesitas,
necesitas la consulta. Si no miras esto,
solo lo paso solo la
consulta al aire. Entonces simplemente simplemente paso
esto como el cuerpo porque recuerda que te dije que la consulta
entrará como el cuerpo de la solicitud. Esto entra como el cuerpo, las respuestas luego el encabezado. Si miras vamos a explorar este encabezado. Encabezado
está justo aquí abajo. Si miras el
encabezado, el encabezado, único que estoy haciendo es simplemente
establecer un nuevo encabezado, si es nulo, esto es nulo, si el encabezado es nulo,
solo paso el encabezado, entonces solo reviso la
respuesta y el token de Asset como quiero el token SS exactamente igual pero acabo de
levantar el código. Estábamos obteniendo el token
*** para conectar a nuestro cliente con el servidor de
autorización. Solo estoy configurando un servidor ton. Recuerde que ahora todo el
punto final está asegurado. Eso es básicamente
lo que estoy haciendo aquí. Sé que esto no debería
ser extraño para ti. Eso es básicamente
lo que estoy haciendo aquí. Habiendo hecho esto,
habiendo hecho esto, eso es básicamente
lo que estoy pasando al encabezado
entonces la respuesta. Exploremos esto nuevamente entonces
para que tenga más sentido. Ahora estoy pasando el cuerpo. Recuerden que todo
va como el cuerpo, entonces estoy pasando
en la respuesta, que ya muestran,
luego la cabecera. Así sería
realmente representado el encabezado. Voy a entrar. Si entonces
ejecutamos esto como es, ¿verdad? Entonces echemos un vistazo a la API. Si ves la API,
no estoy haciendo nada. Todo lo que estoy haciendo
es recordar
que había codificado la mayoría de las cosas. Sólo estoy llamando al
cliente y a la compañía. Y así llama a esto,
vamos a construir esto. Entonces realmente no es complicado, crear un cliente para Graph Q. Así que voy a decir, vamos a ejecutar esto. Todo bien. Entonces si haces esto
y miras a la compañía, si le pego compañía. Bien, entonces hay un error. Entonces dice que hay un error de
sintaxis en esta parte. Así que vamos a revisar. Quiero
sospechar esto de nuestra consulta. Esta consulta detalla. ¿Verdad? Entonces, revisemos estos detalles de
COVID correctamente. Habrá algo mal que
realmente necesitamos traer Bien, entonces mirándolo de nuevo. Ahora, creo que nos
falta la quervy, pero esto no se veía Bien,
ahora, intentemos esto de nuevo Intentemos esto otra vez.
Entonces a medida que iniciamos esto. Reiniciemos esto. Bien. Esto viene
a medida que empezamos. Bien, así que
intentemos esto otra vez. Bien, para que veas que
esto realmente entra. La consulta, creo que
omití una de esta parte. Sólo tengo que
copiar lo volví a pegar. Recuerda, yo solo reflejo exactamente
esta misma cosa. Todo es lo que traje. Pude ver que en realidad soy capaz recuperar todo lo que toda
la compañía en consecuencia. Ahora bien, esto está funcionando
Esto funciona muy bien. Ahora, vayamos a
la empresa Create. Para la
empresa Crea, podrías ver un listo me toda la respuesta ahora. Veamos cómo
es la respuesta o la empresa Crea. Mira la empresa,
todo lo que se necesita son datos, la nesta es Crear empresa, luego mensaje de éxito y UID Si miras esto, esto
es exactamente lo mismo. Crea Crea Empresa,
luego apaga todo esto E. Ahora por favor ten mucho cuidado,
quería mostrar esto. Lo siento, estoy mezclando reservas
. Esta es la empresa. Vamos por ella otra vez. Esta es
la empresa y esta es la misma. Todo bien. Entonces tenemos datos, crea empresa, luego
el lío de éxito a UID Esto está bien representado. Bien, genial. Ahora
ese es el partido de ida. Ahora el partido de vuelta
es ahora
veamos la consulta. ¿Ves la consulta? Ahora, comparemos
con la consulta sobre. Yo no cambié
nada. informar exactamente de
la manera que es. Entonces QC es mutación,
crea empresa, se
puede ver que podría comparar
la nueva compañía, ¿verdad? Exactamente, solo
copié y ordené. Ahora se puede ver que esta es
la representación exacta. Ahora esto funciona.
Ahora veamos cómo entra este cable. Ahora, todo
seguirá igual, pero la diferencia entra entonces
en la entrada de la empresa. Para el puesto de la compañía, todo lo que tenía que hacer era simplemente crear, acabo de crear el
DTO para solo poner en todas estas imputas que es
esta parte esta Recuerda, tenemos las
imputas nueva compañía,
todo, creado el DTO
para reflejar realmente todo esto Pero por favor ten mucho, mucho cuidado con lo
que voy a hacer a continuación. Entonces después de poner
todos estos DTO en, todo está bien
como está, bien No obstante, cuando ahora estamos
creando nuestra solicitud Bs, Cotner Bz, ya ves,
agregué la Ahora estoy agregando la variable. ¿Recuerdas el
nombre de la variable que usamos? El nombre de la variable es
lo que Neil Company. Eso fue lo que agregamos aquí. Compañía Neil, que
luego la pasa a compañía imputa exactamente esta
misma cosa que tenemos aquí Nueva empresa,
pasarla a insumos de la compañía, y eso es
lo mismo que traes aquí. Si miras esto, no
estoy diciendo nueva compañía y estoy pasando
esto como una variable a esto. Esto en sí mismo, recuerda se
convertirá en un mapa
si te comparan con mapa internamente porque tus DTO o tus pods
son básicamente mapas, para ser representados como cadenas Entonces traes esto como Jason, quiero decir, entonces
esto simplemente funciona. Esto es que no hago
nada diferente. Estoy recibiendo una empresa de rets, estoy usando los mismos
clientes que creé, que es esto,
también estoy recibiendo esto W esto hecho, entonces
vamos a ejecutar esto. Estamos haciendo una compañía ts, así que lo que he hecho
es por esta parte, acabo de agregar una identificación
que estoy usando para ir a buscar Esta identificación es lo que pasé, veamos cómo funciona. Si ves el ID,
solo paso el ID solo para que
cambie y lo paso
para crear compañía, entonces solo tenía estilos
codificados donde codificé así que esto
en realidad podría ser dinámico. Eso es lo que hice. Todo bien. Vamos a probarlo y ver qué ha pasado. Voy a
cambiar esto a tres. Bien, puedes ver que esto
fue creado con éxito. Entonces puedes ver, es bastante
sencillo hacer esto en realidad. Entonces dentro del código, simplemente
significa, ¿qué significa? Dentro del código,
probablemente no estés usando una API. Simplemente estás recibiendo esto
todo el camino juntos consigue tu compañía tranquila
o luego puedes
usarlo para hacer la lógica
que quieres realizar. Espero que esto realmente
funcione, chicos. Vamos en el siguiente video, y tomemos una
mutación más y una consulta más, y luego podremos
tenerlo todo junto. Los veo en el siguiente video.
157. Cliente Graphql 3: Oigan, chicos, es bueno
tenerlos de vuelta. Lo que he seguido adelante es traer
al departamento de dejar de fumar. Si tuvieras que revisar cheque o llanta o la
colección cartero que compartí, esto se
vería exactamente así No hay diferencia.
Podría simplemente explorar
rápidamente una
vez más por departamentos. Pero para sacar esto a colación,
verificar por departamento, podrías ver el departamento de pruebas de
partes. Verás, exactamente lo mismo.
Yo no cambié nada. Ahora bien, para el abandono si
miras la respuesta, la respuesta no habría dejado departamento y esto.
Vamos a reflejar esto. Ahora, utilizo una herramienta especial. Llamado GSN Formato Plus. Formato GSN plus. Entonces eso es lo que usaré para
crear mi restaurante. Entonces voy a llamar a este
Departamento resaus. ¿Correcto? Entonces este es el plugin
para los interesados. Entonces, ¿este es el plugin que uso? GSM para Mapas JS para Mapo. Entonces, una vez que estás dentro, todo lo que
necesitas hacer es acreditar la clase, copiar el JSON, cómo se
ve en una prensa O S. Esto saldrá luego
pegarlo y presionar bien y bien. Y esto automáticamente lo
creará para ti. Entonces esto es crítico, chicos. Y una vez que tengas umbog, automáticamente se agrega en lumbox Entonces solo voy a quitar
todo esto porque JCNPperty y estos
son los mismos. Entonces no hay necesidad de agregar
el JSMperty, ¿verdad? Bien. Así satisfacer el
primer escenario de caso. Yo sólo voy a poner así que
creo que esta es la respuesta. Ahora bien, las cosas podrían cambiar. Recuerda, estoy agregando esto
para que no te olvides. Siempre agregue adyacenignore.
Ajustar ver ignorar, ignorar propiedades. Ignorar nom. Cierto. Chris, siempre
agrega esto es muy crucial para que no
termines rompiendo paradas. Bien, ahora hemos hecho esto.
¿Cuál es el siguiente paso? El siguiente paso, como
saben, es ahora modelar esto, así que
voy a hacer esto. Voy a copiar esto tal como está. Voy a copiar esto tal como está, luego voy a esta parte,
que es mi petición, y lo llamaré departamento
Departamento impute departamento No deletreé esto
correctamente, departamento Impute. Entonces de la misma manera,
ponlo en el medio, o prueba, luego pegarlo, luego presionar bien, presionar bien. Todo bien. Entonces puedes ver esto básicamente en realidad entra. Ahora, ¿qué necesito? Si estuvieras muy
atento, sabrías que no
necesitamos este nuevo departamento
porque esto es lo que vamos a pasar en
un Sandy como variable Entonces no necesitamos esto,
así que sólo voy a entrar y quitar
esta primera capa. Voy a quitar
esta primera capa, voy a sacar esta capa de ella. No se suponía que debía
copiarlo o mejor dicho, déjame entrar y
copiar la escritura. Esto es todo lo que necesitaba. Es todo lo que necesitaba.
Si acabo de copiar esto, trae todo esto.
Espiando todo Quiero copiarlo todo.
Esos son para copiar esto. Bien. Bien, para que
pueda volver a entrar. Así que vamos a aclarar esto. Bien, así que
volvamos a hacer esto. Voy a quitar esto. Sólo quiero
mostrarte el truco ahí. Ponlo entre S, luego pásalo, ¿no? Bien. Todo bien. Creo que esto no es válido vamos a ver,
su nombre, ¿verdad? Oh, sí, no lo es.
Entonces hay que tener esto al principio. Tienes uno más
al final. ¿Bien? Entonces sí, esto se
verá mejor ahora. Muy bien, así debería, debería ser correcto. Todo bien. Bien, entonces tenemos la
representación adecuada de
lo que necesitábamos, y esta cal si lo miras y puedes decidir dejarlo. Ya que son diferentes, es por eso que
necesitas propiedad JS. Son lo mismo, no
necesitas propiedad de JSN, ¿verdad? Entonces son exactamente
iguales, así que no necesito
propiedad de Jason, ¿verdad? Entonces esta es la imputa, ¿recuerdas? Muy bien, entonces me quito todo esto. Elimino todo esto. Muy bien, bastante genial. Bastante genial. Bien, entonces tenemos esto etiquetado en y esto funciona
físicamente. Ahora tenemos una entrada departamental, cómo van
a ser nuestros insumos. Todo bien. Entonces podemos seguir adelante
para luego crear los detalles que necesitamos. Todo bien. Lo siguiente es
que tenemos una respuesta. Tenemos una respuesta departamental, que va a quedar
así y tener un imput Todo lo que necesitas hacer entra aquí. Vamos a crear a este tipo. Voy a llamarlo público, luego respuesta
departamental. Respuesta departamental solo
digo crear departamentos. Llamar a departamentos. Entonces
probablemente solo dale una identificación. Yo solo pasa probablemente
cambiando dinámicamente, podemos modificar canciones, tú lo llamas departamentos. Entonces vamos a construir el
departamento en la gente antes la construcción nuestro ocupado Básicamente no va a cambiar.
Yo sólo traeré esto. Pero esta vez, este
houl crea departamentos. Entonces estamos trayendo nuestras imputs, pero esta vez
, también necesitamos reflejar lo que hemos
pasado aquí ¿Qué estaría pasando por aquí? Nueva deuda, que es
nuevos departamentos. Vamos a
traer eso aquí también porque es
muy importante. Ahora recuerda código duro largo, siempre
podrías colocar
las cosas probablemente en una final estática. Tenemos esto. Ahora estamos esperando esto y
estamos esperando una solicitud. Esto es básicamente
lo que tenemos que hacer. Ahora lo siguiente que
tenemos que hacer ahora mismo, recuerda que el rojo encabezó
el encabezado aquí, cabezas en las que ya
toma en ficha. Lo siguiente que
básicamente debes
hacer es ahora construir el departamento. Ahora voy a volver a entrar en el insumo
del Departamento. Voy a convertirlo en un constructor, ¿
verdad? Voy a
convertirlo en un constructor. Yo lo llamaré no
Xs ya ahí. Después voy a añadir un ALX. Entonces me gusta arreglar
esto correctamente. Entonces como constructor, ¿verdad? Entonces eso básicamente funciona
para nosotros. De la misma manera también. Voy a hacer de esto un constructor
en AAC, luego en Builder. Podría usar el
Constructor para
construir cosas realmente . Todo bien. Entonces creo que esto básicamente resume
lo que tenemos que hacer aquí Así que entremos y construyamos
rápidamente. Voy a ir a esta parte, luego
voy a crear la dirección. Entonces vamos a
tener departamentos que
imputen los partmentimputes, los puntos constructor construyen Bien
genial Entonces esto entra. Voy
a traer todos los detalles. Entonces antes de eso
también vamos a necesitar la dirección dirección tomando
la dirección DTO, ¿verdad Es la dirección DTO. Saca esto.
Vamos a estar necesitando eso. Entonces finalmente, vamos
a estar necesitando punto aquí. Entonces necesitamos una dirección. Dirección Dirección DTO
Builder's Builder's Build. Esto es bastante genial. Todo bien. Si nos fijamos en esto, ¿
qué necesitamos? Nos fijamos en ¿qué necesitamos? Necesitamos el ID de entidad, el ID de entidad que necesitamos
las calles, la ciudad. Sólo voy a copiar esto para
que podamos simplemente reflejar esto. Sólo voy a copiarlo,
lo coloco para que podamos simplemente reflejar lo que estamos
haciendo desde aquí. Yo sólo colocaré esto aquí. Podríamos simplemente construir
cosas a partir de aquí. Necesitamos ID de entidad, la necesitamos calles. Calles. Entonces necesitamos esa ciudad. La necesidad de ese
código postal. Todo bien. Esto es bastante genial. Sí,
hemos podido hacer esto. Entonces para la empresa, necesitamos el nombre del
punto, bien, genial. Necesitamos el
número de departamento, el número de departamento. Necesitarás el nombre de la compañía, número
C punto RC, C luego división, genial. Eso es básicamente
todo, el nombre, esta parte y esta parte. De hecho, modificamos las cosas volvamos en el siguiente
video para completar este paso. Ustedes en el siguiente video,
158. Cliente Graphql 4: Oigan, chicos, es bueno
tenerlos de vuelta. Todo bien. Así que en realidad hemos
podido crear todos los detalles que necesitamos
para el departamento. Necesitamos el nombre,
número de departamento, todo está ahí. Bien, entonces ahora recuerda, si
has terminado de crear esto, necesitamos que las cosas aparentemente
fueran difíciles de codificar, así que necesitamos asegurarnos de que las cosas realmente
funcionen de la misma manera. Entonces necesito esta compañía. Entonces voy a
crear un comp nueve para asegurar que esa
empresa exista, recuerden, el departamento
que existe esa empresa. Entonces vendré aquí y diré que el nombre de
la compañía será este plus. El recuerdo agregar una identificación. Solo voy a agregar esta
identificación aquí, ¿verdad? Entonces solo usa esa identificación para simplemente
asegurarte de que son los mismos. Podrías hacer esto de otras
maneras, solo estoy siendo perezoso. Entonces esta segunda parte
sería la misma. Yo recojo esto también, ¿verdad? Entonces debería ser más. Bueno. Entonces la división, qué división tenemos divisiones
separadas, ¿verdad? Si nos fijamos en la
división, tenemos RRHH, yo sólo me quedaré con HR. RRHH. Entonces la dirección,
estar trayendo. La dirección debe ser la
dirección que usted aquí. Podría recibir esta variable. Vamos a llamarlo dirección. Bien.
Me dirigí está bien. Yo sólo te voy a pasar la
dirección D aquí. Eso está satisfecho. Por el nombre, apegémonos
al nombre también”. ir a llamarlo
recursos humanos, lo cual está bien. Llamémoslo recursos humanos. Pongamos la identificación, entonces es distintivo,
número de departamento, ¿verdad? Si lo miras,
número de departamento, ¿cuál es el número? Necesitamos el número.
Sólo voy a poner un número genérico. Digamos 5432 para simplemente seguir el
concepto y seguir y simplemente agregarle un número
más. A continuación, agregue ID a él. Todo bien. Entonces esta parte también
el número de prueba, voy a agregarle el ID. Creo que esto básicamente
satisface lo que necesitamos. Ahora bien, el número de entidad, ¿no? El número de entidad que necesitamos
crear básicamente es muy clave. Así que recuerda, el número de
entidad aquí, el número de departamento debe
ser el número de entidad, así que eso es muy, muy correcto. Entonces aquí, voy a hacer lo mismo solo para hacer que las cosas
se enfríen. Eso voy a decir
852, cuatro, ¿verdad? Después más la identificación
solo para hacerla. Recuerda, solo soy
la prueba de éxito. Yo sólo quiero que las cosas sean únicas. Así que voy a pasar esto aquí,
luego voy a entrar aquí. La entidad, esa es la entidad, al parecer ese debería ser
el número de departamento. Entonces voy a usar
ese número de departamento, así que es único. Bien. Entonces esto es básicamente único ahora. Entonces las calles, solo dale alguna calle estas calles de aquí,
L solo hago lo mismo. Las calles, yo
solo voy a las calles. Entonces más ID, recuerda, solo
estoy tratando de hacer que
todo sea único, ¿verdad? Entonces el gas de la ciudad, que está atando el código postal, sí, voy a
pasar en 1042 33 Bien, creo que tenemos
todo lo que necesitamos. Si no hemos volado
todo, si nos hemos perdido algo, esto debería funcionar por defecto. Recuerda, recuerda
por qué agregamos esto en. Este es un nombre muy dios
que usamos en nuestra consulta, que es lo que
tenemos aquí, ¿verdad? Entonces creo que estamos bien
para probarlo de verdad. Entonces voy a quitar
lo que trajimos, quitarle todo esto. Bien, entonces consigamos un
punto final para esto. Pero solo entra, crea un punto final no debería
ser diferente de esto. Sólo decir crea departamentos. Crear departamentos, llamarlo ID
de departamento, ID de departamento. Lo mismo, ID de departamento. Ahora, llame a esto
crea departamentos. Después ID de departamento. Así que
crea departamentos. Crea departamentos. Bien, así que básicamente, aparentemente no hay intercambios ¿
es la respuesta de los deptners? Respuesta del Departamento. Bien. Entonces esto es básicamente
lo que tenemos que hacer. Entonces, restudamos la
aplicación y la probemos. Ojalá no hayamos roto nada y todo
debería funcionar. Ahora, creo que me perdí el punto que probablemente necesite
compartir rápidamente antes de seguir adelante. Ahora bien, si nos fijamos en esto,
ya compartí ya
discutiendo los errores, cómo se ve el error
para la gráfica QL, básicamente solo tenemos una lista de error y lista
tenemos este mensaje, ubicación y los likes Esto es muy crítico.
Estoy agregando esto en. Si tuvieras que
mirar mi respuesta, estoy extendiendo este error
básicamente extendiendo caso no
consigue realmente sacar la flecha. Esta es una muy buena
manera de hacerlo realmente. Esto es muy crítico. En caso los datos, no
tenemos ningún dato, al parecer tenemos algún tipo de error y el error también
puede entrar. Estoy agregando a Jason para
incluir no nulo. Para que en caso de que sea nulo, no
veamos ese campo de error. Para el resto de paquetería
creo que quiero hacer eso. Yo solo diré en, Jason, incluir no.
Básicamente, esto es todo. Todo bien.
Comencemos con la aplicación. Voy a poner en marcha en modo de depuración. Entonces traeré a mi cartero. Simplemente duplicaré
esto, duplicado. Voy a llamar a esto
crea departamentos. Entonces al parecer, ¿se lo di? Vamos a estar seguros,
¿cómo lo llamé? Vamos a estar seguros, ¿cómo lo
llamé? Entonces entro aquí. Entonces revisamos el controlador, yo lo llamo crea departamentos. Bien, tornillo. La
convocatoria crea departamentos. Entonces al parecer necesitaba esto. Es ID de departamento, ID de departamento. Ahora, tengo
que asegurarme de que siga exactamente lo mismo de
la misma manera que lo tengo. Pero el departamento de crear.
Ya he creado esto antes. Así que vamos a darle otra vez
a esto para ver si tenemos una flecha. Bien, voy a liberarlo. Bien, vamos a soltarlo. Como puedes ver, nuestra flecha pudo patear porque ya
hemos creado esto antes. Recuerda cuando hicimos esta creación
duplicada de entidad en videos anteriores. Esto es realmente genial.
Voy a decir esto antes. Permítanme liberar estas partes
y déjenme liberar esta parte. Se puede ver que esto fue creado. Ahora voy a Departamentos, voy a usar ID de
departamento como cuatro. Vamos a crear esto.
Al parecer esto fue venido Esto
no va a volver, entonces significa que algo
hubiera ocurrido. Entremos a ver qué
habría pasado. Voy a poner esto porque es
necesario, guarda esto. Voy a compartir esto. Todo bien.
Vamos. Vamos a entrar. Si miro miro a mis
clientes y clientes de Graph Q, dice, este es el
error que tenemos aquí. Al mirarlo, dice, este es el error que obtuvimos para el
anterior que probamos. Ahora veamos qué estamos probando para el cliente GAF Q Ahora bien, si no estás seguro de
lo que está sucediendo aquí, básicamente
podrías
recibir una cadena de tu cliente es y
luego usar un mapeador JCN, que es un mapa de objetos
más bien para convertirlo Es totalmente tu elección. Yo solo pensé que
lo mencionaste para aquellos que podrían estar
interesados en hacer eso. Busquemos esto
para el departamento de EDS. Departamento de cd están tomando
una identificación y pasando en esto.Los TTIDS también corrigen el número de
departamento Bien. Entonces, ¿
pasé esto en buttin Sí, paso esto en
buteno, luego crea esto, esto realmente entra,
esto entró directamente Estoy esperando respuesta de
departamento. Esto entró. A
ver, ¿confirma esto? Sí, esto confirmó lo que estamos esperando por supuesto
que estamos esperando. Déjame revisar los detalles de mi consulta, mis detalles de consulta, si, mensaje de
éxito UID Esto confirma. Todo
bien. ¿Qué es EO ellos? C, ¿verdad? Déjame colocarme en modo de depuración. Este es el modo de depuración. Voy a colocar mi punto de quiebre aquí Coloco mi punto de quiebre aquí, así podré ejecutar esto forma aislada para ver qué pasa, que está aquí, Departamento
que crea departamentos Voy a colocarlo
aquí, así que solo
lo ejecutaré para ver si hay algún
error que vuelva. Vamos a darle a esto otra vez. Vamos a
crear una empresa una vez más. Hago este cinco. Entonces para
esto, voy a hacer cinco. Identificación de socios, y veamos. Bien, así que vamos a la caja. Entonces ID es cinco, así que todo
esto parece correcto. Se pueden verificar las entradas. La entrada se ve correcta,
cinco, cinco, 555. Bien. Entonces la dirección la
dirección se ve correcta, es cinco, cinco sep cinco. Entonces afirma, los estados,
los estados, los estados. Entonces no agregamos en estados. No agregamos en estados. Bien, así que reiniciemos esto. Esto se acerca. Antes de
saltar al siguiente video. Esto es para arriba enseguida. Hagamos esto cinco. Vamos a liberar este
más cuerdo la consola. Impresionante. Ya puedes ver, en realidad
lo creamos con éxito. Esto está funcionando
con precisión, chicos. Entonces hay una
plantilla de descanso o cliente de descanso, realmente
eres capaz de
hacer. Es muy fácil. En realidad se
basa en tu imaginación, cómo no quieres
estructurar las cosas y cómo
quieres conservar tus
datos. Esto funciona. En el último video, tomamos un ejemplo más,
que es una consulta. Intentemos la paginación. Los veré chicos
en el siguiente video.
159. Cliente Graphql 5: Oigan, chicos, genial
tenerlos de vuelta. Intentemos este último bit. Estoy tratando de
mejorar a nuestros clientes de descanso. Voy a encabezar
Addison que es la paginación que
corresponde a esta Ya agregué esto en.
Vas a meter esto Ya tenemos esto disponible. Recuerda esta consulta, tienes que
traer en este imput, este imput Esto tiene que entrar. Todo bien. En primer lugar, voy
a probarlo. Puedo ver cómo se ve nuestra
respuesta. Usarán nuestra respuesta
para luego hacer lo que necesitamos. Tengo que conseguir a mis
clientes mi ficha. Voy a conseguirla ficha. Bien, entonces obteniendo la ficha, ficha ha sido recuperada, entonces entraré aquí,
he cambiado esto. Recuerda, usa Control A o Comando
A para eliminar todo. Entonces vamos a comprobar
esto y le pega a esto. Impresionante. Veremos
cómo se ve esto. Voy a copiar todos
estos detalles, ¿verdad? Cuando voy a entrar aquí,
voy a mis clientes. Yo uso el plug in ya
lo mencioné antes, así que voy a llamarlo respuesta de
paginación Respuesta, llámalo paginación. Respuesta de puginación. Lo siento, podría decirte
paquete distinto a la clase. Paginación. Respuesta,
y la pongo en el medio, pego, entonces, entonces. Esto crea algo
automáticamente lo que necesito. Voy a quitar esto porque lo
mismo, te ves igual. Se podía ver yo
solo dejaría lo mismo ya
ves que todo
seguirá funcionando como debería. Ahora esto es básicamente lo
que necesitaba para el nodo, todo
entraría como debería para mí. Voy a tener que
volver a mí todos
estos detalles . Voy
a dejarlo como está. Solo voy a agregar en Jason, ignorar, esto ignorar, luego
ignorar propiedades o no, solo decir ignorar
propiedades o no. Ahora mueve esto y lo voy a
agregar aquí dos, no agregarlo aquí a, no agregarlo aquí igualmente. Por último, aquí, creo que tengo
uno más, que está aquí. Todo bien. Entonces esto
es básicamente todo. Recuerda, no codificé nada de esto o no lo
tecleé manualmente Solo podrías usar ese
plugin que tengo que necesitas. Ahora bien, el siguiente paso es que
necesitamos la entrada, ¿no? El insumo es mucho en
el Swiffer pam entra. Volvamos aquí. Entonces necesitamos esta imputa, que
es esta primera parte Entonces este imput es
esta primera parte. Entonces copia esta imputa recuerda que
quiero cerrarla. Copia estas imputas, ¿verdad? O copia de aquí. Copia estas imputas
y la cerraré. Sí. Veamos ahora. ¿
Me falta algo? Sí. Creo que me
falta algo, así que voy a necesitar tener
esto al final. Voy a tener más collibre al final que
las imputas. Esto es básicamente lo que necesito. Oh, sí, es lo que necesito. Yo lo llamaré imputas de paginación. Yo lo llamaré cerdo. Pignacionimputs. Yendo psitin, esto va a funcionar
ahora porque
necesito agregar esto y esto Para que parezca un Jason, entonces esto es finessing. Impresionante. Verás, tengo mis datos. No voy a
cambiar esto para
mostrarte que o lo
agregas o no, realmente no importa, pero esto es básicamente para casos en los que tienes
cosas como subrayado, quiero que confirme
la versión Java Eso es.
Voy a entrar aquí. Recuerda, no has terminado.
Vas a entrar aquí. De hecho voy a
copiar esto. Realmente no estoy haciendo
nada diferente. Voy a copiar
esto sobre eso. Yo sólo lo critaré desde cero. Voy a decir respuesta de
paginación pública. Vamos a conseguir la paginación. ¿Debo decir Pagent? ¿Pagent? Sí, necesitamos el tamaño de entrada. Esto es muy importante. Lo estaremos agregando
a las mismas cosas que tenemos. Esto está bien. Entonces quiero mi paginación imput. ¿Es un constructor?
Yo no lo creo. Voy a convertirlo en un constructor. De esa manera, me
vendría bien el constructor. Como construyó un Bder. Ahora entra aquí y
solo tráelo. Los cogollos se construyen. Todo bien. Esto es genial. Entonces nosotros así no
voy a estresarme. No voy a
traer esto. Entonces necesitamos que tengamos el
constructor donde tu. Sí. Entonces eso va a
escupir bien esta ciudad. Entonces voy a hacer esto.
Entonces comienza DOB Mm hmm. Punto DOB final. Mm hmm. Dots género Dot género. Mm hmm. Sueldo de punto de Mm hmm. Sueldo punto también. Mm hmm. Entonces comienza el punto H. Bien, la edad termina, luego comienza la edad. Todo bien. Entonces creo que
finalmente tenemos ese papel. Recuerda, cada una
de ellas es opcional. Para que
puedas decidir lo que quieras usar o lo
que no quieras usar Todo es opcional. Eso lo
explicamos muy críticamente en el último en los videos
posteriores hace. Así que pudimos en realidad sub videos
anteriores quiero
decir, videos anteriores. Entonces vamos a traer
esto ins. Sólo voy a usar el mismo valor. Entonces no cambia.
Yo sólo lo traigo. Entonces, ¿está todo tomado en una cuerda? Entonces comienza ZOB, fin de DOB, hecho, género masculino masculino,
¿qué estoy tomando? M entonces sueldo a partir de
este final de sueldo, esto entonces esto sumamos 23, y esto sumamos 30. Regla estándar.
Creo que usamos Pasante Voy a quitarme
esto. Entonces voy a llevar esto
a una variable. Yo lo llamaré imput. Todo bien. Entonces ahora tenemos esto,
ahora necesitamos usarlo. Entonces para usarlo, al parecer, tenemos algunos detalles aquí. Voy a copiar
todo esto
porque básicamente va
a ser lo mismo. Entonces voy a colocar esto aquí. Recuerda que necesito cambiar esto. Entonces, ¿qué esperamos respuesta de
paginación? Todos estos tipos siguen siendo los mismos. Ahora esta será la paginación, la paginación de los empleados. Todo bien. Ahora, veamos los detalles de
nuestra consulta. Yo lo llamo paginación de detalles, ¿cómo le llaman entradas esto lo llamamos insumos. Esto
va a ser imputa Imputs Recuerda que luego
lo pasa a estas partes. Entonces también necesitamos
algo más. No esto, también
necesitamos algo más. Nosotros para pasar la página. Yo debería ser la página. Y el tamaño. Esto
básicamente funciona directamente. Pasando el pase de página porque todo está
entrando en este mapa, recuerden, estas partes, ya
expliqué que esta parte
va a entrar como variable. Ahora tenemos variables extra,
así es como pasarla. Si son más de
ocho, recuerda que
puedes usar map off tienes que
declarar tu mapa, luego el nuevo mapa hash, luego traerlo paso a paso, luego editarlo. Todo bien. Creo que tenemos básicamente
todo lo que necesitamos. Sí, tenemos
todo lo que necesitamos. Ahora pues entra y
luego deja esto fuera. Trae esto en
llámalo página ocho. Paginados. Llamemos a
esto también Pagenate Deberías estar
devolviendo la
entidad de respuesta para paginados Entonces este tipo se llamará
PigNTT estará tomando dos valores, que es esta página y el
tamaño, página y un Al parecer, vamos a llamar
a esta página Es página entonces como búsqueda permanente
otra vez, como petición permanente El llamarlo tamaño. Entonces voy a ser una pulgada, luego la talla. Bien, así que vamos
a pasar eso. Tamaño de página, ¿verdad? Tenemos a este Olivero.
Voy a sacarlo. Ahora ves que esto es lo
que tenemos. Todo bien. Volvamos siguiente
video para probar esto. Los veo chicos en el siguiente video.
160. Cliente Graphql 6: Oigan, chicos, es bueno
tenerlos de vuelta. Pasemos por Apoginación una vez más. Este
es el controlador. Cuando entramos, guardando
la página y el tamaño, entonces estamos construyendo
el InfoSRMember, estamos codificando duro todo esto Toda la esencia es solo
mostrarte cómo usar un cliente para conectarte
al servidor de curado de
grafos, que actualmente se está ejecutando. Yo no sé si lo
mencioné, pero la cura gráfica se está ejecutando
actualmente ahí es
donde puedes conectarte
a ella directamente.
Esto se está ejecutando. Entonces ya tenemos
dentro de este código duro, habíamos codificado donde lo que
realmente va a estar llamando y ya tenemos el mapa el mapa que es el
encabezado ya entrando. Si revisas lo que está haciendo el
mapa, Q servicio. Esta parte de aquí, este ya es
el encabezado que
expliqué, que toma en el token, estás generando el
token dinámicamente. Bien, esto está
bien. Pasamos esto adentro. Vamos a probar a estos chicos. Vamos a probarlo y ver cómo se juega. ¿Cómo llamé al controlador?
Déjame mirarlo otra vez. El controlador, llamo paginate clientes Paget
pasan en Voy a entrar y
crear los duplicados de publicaciones. Llamemos a esto es lo
voy a llamar paginate. Entonces esto tomará en página, y esto tomará en tamaño. Pase en dos aquí, otro pase en diez aquí. Todo bien. Y esto se
va a llamar Pigate Página y ocho. Todo bien. Vamos a darle a esto y a
ver qué pasa. Impresionante. Pueden ver chicos, están teniendo todos los
detalles que necesitan. Luego puede ingresar
y luego agregar
los detalles que necesita
y usarlo según sea necesario. Con esto, hemos
podido realmente
completar todo ya que conseguimos que los clientes vieran cómo hacerlo
ahora así que podremos desarrollar un ser desde cero
para terminar bien nuestra gape, y ahora estamos usando
un cliente para conectar eso Esto es muy, muy impresionante Pasemos rápidamente
por uno más. En caso de que no
cogieras un solo alcance. Recuerda que
te mencioné en primer lugar, probablemente definas una
interfaz para poner en todas las consultas para tu
gráfica Q que vas a estar usando. El siguiente paso es configurar esto. Usted configuró esta versión muy
minificada. Petición minimizada,
tienes consulta, que va a ser la
consulta en tu interfaz Entonces este mapa es
necesariamente cuando tienes imputs cuando tienes imputs lo
mencioné antes Entonces seguí adelante, luego veo la respuesta y de hecho moded todo
usando mi plugin, plugin
asociado, consulta
con tus videos anteriores para ver cómo
pude generar esto sin
tener que escribirlos Entonces esto igualmente,
te mostré cómo generar esto, que son las infusras
en diferentes etapas Yo uso la última tormenta
que era un paginado y todo lo que necesitábamos hacer
cuando estamos construyendo es esta parte solo para el paginalred creó un cliente
dinámico que podrías usar toma en imputa
y te da una respuesta, que son genéricos para
que podamos pasar
cualquier imputa y obtener
cualquier respuesta con deseo como dependiendo Lo que hice entonces fue entonces
estoy pasando cosas, recuerden, usando esta
petición base que
mencioné, paso en la consulta,
que es una interfaz, luego el mapa de nuestras imputas El mapa es esto imputa. Esto imputa
corresponde a esto. Ver la página de inicio
, corresponde a esto. Esta página, si la
miras críticamente, eliminemos todos
estos detalles adicionales. voy a sacar para que en realidad pudiéramos
ver todo. Ahora bien, si nos fijamos en
esto, haga clic derecho en esto. Ahora bien, esta entrada
corresponde a esta entrada, la página corresponde
a la página, y el tamaño corresponde
al tamaño. Necesitas definir todas
tus entradas ahí. Con eso hecho, vamos a cerrar
todo en esta pestaña, cerrar todo el grupo de tabulación Ahora con eso, entonces
puedes pasarlo y conseguir que realmente conecte a una gráfica estas relativamente simples,
no es nada difícil. Todo lo que necesitas
recordar es que esta es la guía clave que realmente
necesitas hacer. Una vez que tengas esto, entonces
tienes tus datos base, esta búsqueda básica que te ayuda. ¿Verdad? Recuerden que mencioné una vez más, esto es estrictamente para cuando se tiene la imputa
la segunda parte. Todo bien. Con esto, podemos llegar
al final del curso. Somos capaces de pasar por
todo lo que necesitamos, todas las cosas que planeamos hacer, y espero que haya sido emocionante para ti tanto como
para mí al crear esto. Con esto, probablemente
te veré en el video de conclusión. Los veo en el siguiente video.
161. Cierre: Oigan, todos. Z aquí. Acabo de empezar a hacer este video de conclusión para poder mostrar mi cara para que ustedes vean quién era el instructor
detrás de este curso. Estoy muy contenta de que hayas
podido llegar aquí. Si eres capaz de
hacerlo aquí, medio sencillo de pasar por las
secciones espero que tengas, puedo imaginarte toneladas de
conocimiento de hecho una masa. De hecho estoy esperando ver la palabra proyecto todos
y cada uno de ustedes
van a construir. Es increíble ver que has podido
pasar incansablemente por este curso durante 20 horas para que puedas llegar hasta aquí,
Guau.
Enhorabuena. Ah, enhorabuena.
Mi sombrero llevaba un sombrero. Me baje el sombrero,
como ellos dirían. Ustedes han sido increíbles. Has sido maravilloso para ti poder
llegar a esta sección. No puedo esperar a ver las
cosas increíbles que estás a punto de hacer. Ahora bien, cómo trato de aplicar las cosas
cuando te aprendo cosas, busco la oportunidad más rápida
para implementar realmente Intenta ir al
video una vez más cuando tengas problemas,
haz preguntas, ¿verdad? Muéstrame preguntas
en las secciones, y haré todo lo posible
para responder a tiempo. Te estoy apoyando y no
puedo esperar a ver el mundo cambiando las aplicaciones que
ustedes van a ver Todo bien. Hasta
entonces. Adiós por ahora.