Construcción de un API REST usando Spring Boot completa |

Sdílet
Vložit
  • čas přidán 28. 02. 2022
  • En el 2012, siendo Spring un framework maduro con casi una década de evolución, en la página de Github del proyecto Spring se lanzó un issue bajo el texto: «Improved support for ‘containerless’ web application architectures [SPR-9888]«, con el objetivo de evitar tener que generar WARs de despliegue en servlet containers externos. Pueden encontrarse más detalles de este issue, este es el origen de Spring Boot.
    ✅ Aprende más en nuestro blog: sacavix.com/
    ✅ Apoya nuestro trabajo: paypal.me/yoandypv (Te daremos un regalito)
    ✅ Apóyanos en Patreon: / sacavix_tech
    (Con tu apoyo en Patreon accedes a ventajas exclusivas como directos, preguntas y respuestas en el chat, respuestas a tus dudas y acceso a nuestro libro "Patrones para la implementación de una arquitectura basada en microservicios".
    Spring Boot, nace en el 2014 como un proyecto de Spring que implementa principalmente los problemas planteados en el issue mencionado.
    Desde ese entonces Spring Boot se ha convertido en el marco de trabajo más demandando en el entorno Java por las empresas, cientos de miles de ofertas de trabajo se demandan diariamente.
    En este video construimos la aplicación ToDo API, una API REST completa desde cero usando Spring Boot.
    Aprenderás:
    Spring MVC
    Base de datos H2.
    Spring Data JPA (Realizar consultas con Spring Data y SQL Nativas)
    Manejar errores con el ControllerAdvice de Spring.
    Configurar y usar Swagger.
    Crear Mappers y el uso de DTOs.
    Espero te sea útil y práctico el vídeo y que puedas aprender.
    Para aprender más visita nuestra web: sacavix.com
    El código está disponible acá: github.com/yoandypv/todo-api (regalame una estrella en github si te parece útil :-)
    #springboot #api #microservicios #rest #swagger
  • Věda a technologie

Komentáře • 160

  • @edustreamimg
    @edustreamimg Před 2 měsíci +1

    Q bueno eres explicando y sobre todo cubriendo los casos de usos.

  • @danielobregon8535
    @danielobregon8535 Před rokem +23

    La manera en que te expresas al intentar explicar cada paso que das es increíble man! Te felicito, ya he visto varios videos de éste tipo, pero tu estas en el primer puesto! Saludos desde Argentina!

  • @emmanueltabordav3040
    @emmanueltabordav3040 Před 5 měsíci +3

    INDICE:
    1. 3:30 - CONFIGURACION DEL SPRING INITIALIZER Y DEPENDENCIAS
    2. 10:17 - DEFINICION DE LA ESTRUCTURA DE PAQUETES
    3. 13:06 - CONFIGURANDO SWAGGER
    4. 15:30 - ESTABLECIENDO ALGUNAS APLICATION PROPERTIES
    5. 17:59 - CREANDO EL CONTROLADOR TaskController
    6. 20:13 - CREANDO LA ENTITY O MODELO Task
    7. 25:58 - CREANDO EL REPOSITORY TaskRepository
    8. 28:23 - CREANDO EL SERVICIO TaskService, CON EL METODO createTask
    9. 31:10 - CREANDO UN DTO (Data Transfer Object) para la entidad Task
    10. 34:40 - CONTINUANDO CON EL SERVICIO TaskService USANDO EL DTO EN EL METODO createTask
    11. 36:25 - CREANDO UN MAPPER PARA CONVERTIR UN DTO A UN ENTITY PARA PODERLO USAR EN EL SERVICIO
    12. 41:33 - CONTINUANDO CON EL SERVICIO TaskService USANDO EL DTO Y EL MAPPER EN EL METODO createTask
    13. 43:05 - CREANDO EL METODO HTTP POST PARA EL METODO createTask EN EL CONTROLADOR
    14: 46:16 - PROBANDO EL METODO createTask DESDE SWAGGER
    15. 49:15 - AGREGANDO EL METODO findAll AL TaskService
    16. 51:22 - AGREGANDO EL METODO HTTP GET PARA EL METODO findAll EN EL CONTROLADOR
    17. 52:36 - PROBANDO EL METODO findAll DESDE SWAGGER
    18. 53:27 - AGREGANDO EL METODO findAllByTaskStatus AL TaskRepository
    19: 55:58 - AGREGANDO EL METODO findAllByTaskStatus AL TaskService
    20. 56:55 - AGREGANDO EL METODO HTTP GET PARA EL METODO findAllByTaskStatus EN EL CONTROLADOR
    21. 58:58 - PROBANDO EL METODO findAllByTaskStatus DESDE SWAGGER
    22. 1:00:2O - AGREGANDO EL METODO markTaskAsFinished AL TaskRepository
    23. 01:06:07 - AGREGANDO EL METODO updateTaskAsFinished AL TaskService
    24. 01:06:53 - AGREGANDO EL METODO HTTP PATCH PARA EL METODO markAsFinished EN EL CONTROLADOR
    25. 1:10:23 - PROBANDO EL METODO markTaskAsFinished DESDE SWAGGER
    26. 1:11:24 - AGREGANDO LA ANOTACION @Transactional AL METODO updateTaskAsFinished EN EL TaskService
    27. 1:12:40 - CREANDO UNA CLASE PARA LAS EXCEPCIONES
    28. 1:16:32 - MEJORANDO EL METODO updateTaskAsFinished EN EL TaskService USANDO LAS EXCEPCIONES
    29. 1:18:39 - CREANDO UN EXCEPTION HANDLER PARA QUE LAS EXCEPCIONES NO LLEGUEN DE MANERA DESCONTROLADO
    30. 1:21:37 - AGREGANDO EL METODO deleteById AL TaskService
    31. 1:22:59 - AGREGANDO EL METODO HTTP DELETE PARA EL METODO deleteById EN EL CONTROLADOR

  • @elvisalmonte3060
    @elvisalmonte3060 Před 5 měsíci

    Explicas de manera muy sencilla y haces parecer que las cosas son fáciles aunque no lo sean. Muchas gracias por compartir tus conocimiento, eso es de grandes!

  • @miguelangelesteban99
    @miguelangelesteban99 Před rokem

    Muchas gracias por compartir tu conocimiento, muy claro y conciso, espero con ansias la parte 2.

  • @hermanmoralesara7766
    @hermanmoralesara7766 Před rokem

    Muchas gracias, muy buen video para los que estamos comenzando con spring boot

  • @ricardocorralesduque1485

    Muchas gracias, muy clara y elocuente su explicación.

  • @alexandermolina2502
    @alexandermolina2502 Před 2 lety +7

    Que gran contenido, lo he visto ya 2 veces, muy útil y muy bien explicado. Muchas gracias por el contenido!

  • @nicolasgarcia253
    @nicolasgarcia253 Před rokem +1

    Oro mappeado a un video jajaaj es tremendo el contenido!

  • @emmanueltabordav3040
    @emmanueltabordav3040 Před 6 měsíci +2

    TE AMO CALVITO 💕💕

  • @lonnalestapidreke1877

    Estupendo Tutorial Yoandy, saludos y me alegro de verte

  • @denjiuzumaki4309
    @denjiuzumaki4309 Před 9 měsíci

    excelente, muchas gracias por compartir

  • @isalinass
    @isalinass Před rokem

    Fantástico vídeo curso, muchas gracias por compatir su conocimiento.

  • @miguelangelmendezcumplido1026

    Es el primer vídeo tuyo que veo. Excelente forma de explicar y el contenido muy bien estructurado :D Gracias!

  • @manuonda
    @manuonda Před rokem

    Muchas gracias por el contenido! Para practicar el fin de semana. :)

  • @davidferneycruzcruz7127
    @davidferneycruzcruz7127 Před 5 měsíci

    Muchas Gracias excelente video

  • @pablord516
    @pablord516 Před rokem

    Buenísimo vídeo. De verdad, enhorabuena.

  • @danielquintana5231
    @danielquintana5231 Před 2 lety

    Excelente video !!!! Muchas gracias al equipo de SACAViX Tech ....

    • @SACAViXTech
      @SACAViXTech  Před 2 lety

      Gracias a ti Daniel, espero te haya sido útil!

  • @user-vy1wt7wy3i
    @user-vy1wt7wy3i Před rokem

    Buenisimo, me ha servido mucho como aprendizaje inicial de Spring Boot. Muchas gracias!!

  • @gabrielp8660
    @gabrielp8660 Před rokem

    Sos excelente explicando. Gracias!!

  • @yeisonosorio5462
    @yeisonosorio5462 Před rokem

    Muchas gracias, se nota el deseo de que el proyecto sea entendido, saludos desde Colombia!

  • @ricardobonilla9821
    @ricardobonilla9821 Před rokem

    muchisimas gracias, se entendio todo a la perfecion !!!!

  • @programadoronce935
    @programadoronce935 Před rokem +1

    gracias, la verdad me ayudaste mucho, estoy en un bootcamp para entrar a una empresa y hicieron todo lo que hiciste vos, no me quedaba claro lo de h2 y jpa, pero con esto ya estoy a otro nivel.

  • @eduardohilariomendez3510

    excelente video Dev!, gracias Por toda esta valiosa info.

  • @ivanduenas8860
    @ivanduenas8860 Před 2 lety

    Es increíble lo fácil que lo haces. Gracias por tu dedicación. Listos, suscrito!

    • @SACAViXTech
      @SACAViXTech  Před 2 lety +1

      Gracias a ti Iván, me alegra te sea útil, nos vemos en los próximos 👍

  • @VIVAELPRTERP1976
    @VIVAELPRTERP1976 Před 2 lety

    Excelente videos!!!! Super entendibles, siempre aprendo algo nuevo con tus videos. Muchas gracias por compartirlo 😉

  • @neorevolutions222
    @neorevolutions222 Před 2 lety

    gracias por la clase magistral. excelente video. Oro en Puro. gracias x el aporte a la comunidad

    • @SACAViXTech
      @SACAViXTech  Před 2 lety

      Gracias a ti Cristian por el comentario, nos vemos en los próximos 😜

  • @juani221287
    @juani221287 Před rokem +1

    Excelente este video!!! Si bien vengo trabajando con Spring hace un tiempo, mostraste un par de cositas muy interesantes y que me sirvieron muchisimo, como el ExceptionHandler, y como utilizas los servicios.
    Impecable, sería impresionante que saques más videos asi, de proyectos para practicar!!
    Gracias

  • @hroddev
    @hroddev Před rokem

    Excelente material, tenia muchas dudas que me ayudaste a aclarar. Exitos!!

  • @DEVYulay
    @DEVYulay Před rokem

    eres grande man me has enseñado mucho. felicidades

  • @ChristianGaray-wc4gv
    @ChristianGaray-wc4gv Před 2 měsíci

    Un mostro, muy buena explicación vamos por otro tutorial💣

  • @homeliveinmobiliarias.a.s1008

    Excelente, felicitaciones!!

  • @javieraparisi3021
    @javieraparisi3021 Před rokem

    Genial tu video!!! eres el mejor de youtube explicando los temas de Springboot!

    • @SACAViXTech
      @SACAViXTech  Před rokem +3

      Gracias Javier, pronto se viene curso completo para principiantes, todo explicado desde cero 😍

  • @GerardoPerezMedina-eu9pr

    No suelo comentar videos pero esto sin duda es increible deberias hacer mas videos de este tipo

  • @paulocabelloacha4195
    @paulocabelloacha4195 Před 2 lety

    Excelente material practico, muchas gracias!

  • @EmmanuelRodriguez-gn2pt
    @EmmanuelRodriguez-gn2pt Před 5 měsíci

    Super entendible, te agradezco por la información, saludos desde Uruguay

  • @soledadtancredi3433
    @soledadtancredi3433 Před rokem

    Excelente info!

  • @GustavoGarcia-cr4ph
    @GustavoGarcia-cr4ph Před rokem

    Impecable la explicación, hice todo el proyecto y funcionó perfectamente, por ahí tuve algún tema en swagger que me mostró cada método que fui creando pero no me permitía ejecutarlo desde ahí, lo hice desde postman, pero seguramente es porque en algo le estuve errando, lo voy a revisar nuevamente, sigue generando contenido de este tipo que a los que nos estamos iniciando en spring boot nos aporta muchísimo, es oro en polvo, mil gracias

  • @Gamijoh
    @Gamijoh Před rokem +1

    Uno de los mejores videos que vi hasta el momento, todo lo que hiciste estuvo excelente. Facil de entender y cubriste lo mas importante de una api rest. Realmente te felicito. Me sirvió un monton el video.

  • @jengibre4449
    @jengibre4449 Před 10 měsíci

    Es genial este video!!!!!

  • @nemines0027
    @nemines0027 Před rokem

    saludos muchas gracias exelente tutorial

  • @cotirena
    @cotirena Před 2 lety

    Gracias por tus vídeos, me son muy útiles. Acabo de comprar tu libro para seguir aprendiendo y poder también apoyar tu trabajo. Saludos desde España!

  • @arvinardilla
    @arvinardilla Před 2 lety

    Excelente video!. Te felicito por hacer hincapie en las buenas practicas como por ejemplo que el controller solo sea un nexo con el service y que no hagas como muchos cursos, de ponerle validaciones y logica en los controllers.

  • @develomentsystemnrg9902
    @develomentsystemnrg9902 Před 5 měsíci

    Mi amigo, te felicito, que buena forma de explicar además de buen profesional, tienes excelente forma de enseñar un abrazo desde Medellín Colombia

    • @SACAViXTech
      @SACAViXTech  Před 5 měsíci

      Hola, muchas gracias por tu comentario

  • @iAndrikMM
    @iAndrikMM Před rokem +4

    Increíble manera de explicar las cosas, no pare de subir videos que vas para arriba!

    • @SACAViXTech
      @SACAViXTech  Před rokem

      Gracias Andrik !

    • @MrShadow732
      @MrShadow732 Před rokem

      @@SACAViXTech Me encantó tu explicación completa, ahora bien no es compatible con springboot 3 podrías hacer un remake para que este siga funcionando?

  • @gilberttenorioangulo2513

    Excelente Video. ti forma de explicar cada estructura , se nota que conoces muy bien el tema. continua... exito

  • @mirandoelcodigoymas4202
    @mirandoelcodigoymas4202 Před 10 měsíci

    Excelente contenido, usas una arquitectura mejor estructurada que la que trabajamos en la empresa. Gracias por compartir.

  • @AZCHILENO
    @AZCHILENO Před 2 lety

    excelente video, queda todo muy claro

    • @SACAViXTech
      @SACAViXTech  Před 2 lety

      Gracias, nos vemos en los próximos 😜

  • @danielcamachof
    @danielcamachof Před 2 lety

    Hermano muchas gracias por compartir todos tus conocimientos!, un saludo desde Bogotá Colombia🇨🇴🤙🏻

    • @SACAViXTech
      @SACAViXTech  Před 2 lety +1

      Gracias Daniel, saludos a la gente de la tierra del mejor café del mundo :-)

  • @miguelcamacho3381
    @miguelcamacho3381 Před 2 lety +1

    Gracias por compartir, muy claras las explicaciones, estaría interesante hacer unit test a este proyecto con Mockito y JUnit5, Saludos desde Mexico!!

  • @samuelarone7659
    @samuelarone7659 Před 9 měsíci

    Buen curso, se agradece tu aporte.
    Te ganaste un seguidor 😅

  • @ivancalisaya4218
    @ivancalisaya4218 Před 9 měsíci

    Buen video 👍

  • @ramonaguerovazquez548

    Que buen video, el del maestro..

  • @juansarmiento3196
    @juansarmiento3196 Před rokem

    Holaaa, muy buen video, mis felicidades ! Saludos desde Argentina !

  • @nahuelgarrido9045
    @nahuelgarrido9045 Před rokem

    Muy buen tutorial! Excelente profesor! Un abrazo desde Argentina.

  • @gogomac
    @gogomac Před rokem

    Gracias Teacher iniciando a aprender en el canal.

  • @CAFernandezB
    @CAFernandezB Před rokem +3

    Excelente tu contenido, y sobretodo el cómo lo explicas, de lo mejor en CZcams, sería genial un curso más detallado, y profundo de spring boot, con este estilo de crear una app, algo más complejo h robusto que abarque todos los conceptos y buenas prácticas... Gracias por tomarte el tiempo de general tan buen contenido.. éxitos...

  • @alejandrocabrera8132
    @alejandrocabrera8132 Před rokem

    Muy bueno pa!
    gracias, ahora sí entiendo jaja

  • @leonardomorganti654
    @leonardomorganti654 Před rokem

    Muy bueno, ojala siga con mas nivel para principiantes de cero a avanzado.
    Security, test unitarios..

  • @jose6183
    @jose6183 Před 2 lety

    Gracias!

  • @victormontivero1998
    @victormontivero1998 Před 2 lety

    Muy clara la explicación, se que requieren mucho esfuerzo, pero es muy dicactico esta clase de proyectos con buenas practicas.

  • @samrojas4295
    @samrojas4295 Před měsícem

    😅😅😅 gente les juro que no es un falso documental, es 100% real no fake.

  • @franciscoespinosagonzales2331

    Super... de verdad...

  • @natanaelmunoz5098
    @natanaelmunoz5098 Před 2 lety

    Muy buen video! Gracias por las enseñanzas! Sería genial un vídeo de Spring Security con respecto al Login con base de datos, y que se maneje los datos de esa persona logeada.

    • @SACAViXTech
      @SACAViXTech  Před 2 lety +2

      Haré un video al respecto, ya veo que es un conocimiento demandado :-)

  • @jhongogta
    @jhongogta Před rokem +1

    Muchas gracias, la adapte a Spring boot 3 y Swagger 3 jeje

  • @abnormal9512
    @abnormal9512 Před 2 lety +2

    todavía no lo empiezo pero ya me dieron ganas, por que en algunos cursos de spring explican con front, pero lo que mas me interesa por el momento es solo el back.

    • @SACAViXTech
      @SACAViXTech  Před 2 lety

      Genial, si te entran dudas déjame el comment y te respondo 💪

  • @anacarreno4371
    @anacarreno4371 Před rokem

    Muy buena la Explicacion, he visto que otros en su DTO igual lo vuelven a declarar el Id de la tabla, pero me esta quedando aclarado que nose debe declarar el Id en el DTO.

    • @SACAViXTech
      @SACAViXTech  Před rokem +1

      Claro, es una muy mala practica exponer las estructuras internas de tu base de datos, mas aun el id hacia afuera el id siempre que no sea necesario, mejor no exponerlo.

  • @CanalVigo
    @CanalVigo Před rokem

    Muy buen vudei

  • @monarcaShadow24
    @monarcaShadow24 Před 9 měsíci

    clase magistral te lo agradezco, he visto tu canal y tienes muchos videos con diferentes temas, me podrías decir que video ver como continuación a este video o como refuerzo para continuar mi aprendizaje en spring boot?
    te lo agradecería 🙏🙏🙏🙏

  • @cristianfuentes2330
    @cristianfuentes2330 Před 2 lety

    Muchas gracias por el video, todo muy claro y bien explicado. Podria explicar el uso de DTO. Saludos

    • @SACAViXTech
      @SACAViXTech  Před 2 lety

      Gracias Cristian, lo tendré en cuenta.

  • @ConvierteteAJesúsAhora

    Hola gracias por tu video tan completo y detallado. Muy didactico. Enseñar es un acto de amor. Tienes un video donde dices como hiciste tu pagina principal de Git? Donde mencionas tus hobbies me refiero. Eso que aparece antes de los repositorios. Yo quisiera colocar info asi, como lo hiciste.

  • @gilbertardila
    @gilbertardila Před rokem

    Super, ¿tienes más videos de Springboot?

  • @rickhunter8216
    @rickhunter8216 Před rokem

    BUEN TUTORIAL TIO VIX, ME GUSTA CUANDO ESCRIBES EL CODIGO Y VAS EXPLICANDO PARA QUE SIRVE. YO SUELO USAR MAS EL @AUTOWIRED QUE LA OTRA FORMA. 🙂

  • @sandorcaceres1052
    @sandorcaceres1052 Před rokem +1

    Muchas gracias el vídeo está genial :D una duda, ¿si quiero conectar el proyecto a una base de datos mySql cambia mucho? ¿que tendría que ver?

  • @andresgamarra9067
    @andresgamarra9067 Před rokem

    ¿Las excepciones creadas se pueden utitlizar manera general en cualquier error? O solo corresponden a lo relacionado con el Task

  • @barar7155
    @barar7155 Před 7 měsíci +1

    hola una consulta, de donde usualmente se saca esos codigos replay que mencionaste, como el SwaggerConfig y el de
    ExceptionHandler? buen video muchas graciass!!!

  • @luisserge2030
    @luisserge2030 Před rokem

    Una pregunta los DTO solo son usados para transformar la información que se recibe ? Se puede usar de alguna manera para transformar la información que se muestra ? Y si tengo una consulta que se forma de la unión de varias tablas puedo usar Mapper para responder esa consulta o debo hacer una native query?

  • @franciscoespinosagonzales2331

    Una duda, tendras pensado sacar una parte complementaria a este sobre el uso de jwdt y los componentes de seguridad... entiendo que si pones esa parte seria un video enorme, pero seria genial poder complementarlo... genial el trabajo que estas haciendo.

    • @SACAViXTech
      @SACAViXTech  Před 2 lety +8

      Hola, sabes que varias personas lo han pedido, creo que me voy a animar a hacerlo si, ahora en la parte 2 de este ya comprometí pruebas unitarias y de integración, pero si podemos hacer una parte 3 sobre el mismo proyecto y cubrimos la parte de Spring Security, estaría bien si.

    • @franciscoespinosagonzales2331
      @franciscoespinosagonzales2331 Před 2 lety

      @@SACAViXTech Super... justo hoy que puede descansar me quede en la casa y pase el video completo... me quede con una aplicacion para mi portafolio y las cosas bastante clara sobre lo que explicas en el proyecto...
      Hay una parte donde dices que se viene un curso, es un curso de pago? o sera gratis a aqui mismo en CZcams?
      Gracias por responder.

    • @SACAViXTech
      @SACAViXTech  Před 2 lety +3

      @@franciscoespinosagonzales2331 genial que lo pudiste ver, será gratuito 😃

  • @miguelalonsocoba1813
    @miguelalonsocoba1813 Před 2 lety

    Muy buen video, explicaciones claras y concisas. Tengo una duda, podrías haber integrado la dependencia de Spring Boot DevTools para que se inicialice la aplicación automaticamente cada vez que se detecte un cambio?

    • @SACAViXTech
      @SACAViXTech  Před 2 lety +1

      Hola, si es correcto, podía haberlo hecho, recomendado para ir más rápido, gracias por tu comentario 👍

  • @juaninostroza8277
    @juaninostroza8277 Před rokem

    hola desde chile, consulta necesito realizar unos servicios que traiga una lista de fechas aleatorias y que muestre las que se omiten aleatiriamente tambien, por fa me puedes explicar mas menos como puedo realizarlo por favor, gracias, tus videos son muy buenos

  • @alexanderjprado
    @alexanderjprado Před rokem

    ¿En la clase TaskInDTO no faltó implementar la interfaz Serializable?

  • @gogomac
    @gogomac Před rokem

    Hola Profe, saludo y gracias por estos aportes a nuestro conocimiento. Por favor me orientas para conocer como comprar o descargar tu Libro. Gracias

    • @SACAViXTech
      @SACAViXTech  Před rokem

      Hola Gonzalo como estás? Gracias por tu comentario, en realidad no es necesario comprarlo directamente, puede colaborar con el canal en Patreon y ahí esta disponible, en los comentarios del vídeo está como hacerlo, si se te complica agregame en linkedin y hablamos in@yoandypv

  • @edgarrsilvag6658
    @edgarrsilvag6658 Před 2 lety

    Saludos Buenos dias excelente video. Termine de comprender muchas cosas que aun no entendia. Ahora una pregunta para conocer tu opinion. Si el metodo save del Jpa Repository agrega el registro si el id es 0 o no existe y lo modifica si existe, es posible utilizar solo el request patch o post para modificar o agregar un registro. Que piensas???

    • @SACAViXTech
      @SACAViXTech  Před 2 lety

      Hola Edgar los verbos HTTP son solo convenciones semánticas, puedes usar un post para obtener datos y un patch para crear un recurso, funciona pero semánticamente no está está bien. Lo correcto es Post para crear nuevos recursos, put para actualizar un recurso entero y patch para una actualización parcial. Internamente a nivel jpa puedes usar un save para post y put, pero para un patch es más recomendable una un update con una query nativa que solo cambie lo que es necesario.

  • @brunoromanhuaman4882
    @brunoromanhuaman4882 Před 2 lety

    Buen video, muchas gracias :) , una pregunta que plugin tienes para que se te vea la consola de esa forma ? El único que encontré se llama Grep Console pero el tuyo se ve mejor

    • @SACAViXTech
      @SACAViXTech  Před 2 lety

      Ni idea, en realidad como viene por defecto :-)

  • @jcurtob4877
    @jcurtob4877 Před rokem +2

    Voy a echar mucho de menos Intellij Idea Ultimate cuando se me termine el año de estudiante... voy a tener que matricularme en cualquier cosa para seguir con el IDE gratuito 😁😁

  • @lilianaperez7408
    @lilianaperez7408 Před rokem

    Hola que JDK se puede usar? el version SE está bien o se ocupa algo que sea Java EE? Gracias

    • @SACAViXTech
      @SACAViXTech  Před rokem +1

      Hola Liliana instalate la sdk normal del sitio de Oracle, o la openjdk, si usas Linux o Mac puedes usar sdkman

  • @anacarreno4371
    @anacarreno4371 Před rokem

    He visto otros videos que crean el archivo TaskServiceImpl es ahi donde hacen la logica de programacion y tu lo haces en el TaskService. eso es valido tambien.?

    • @SACAViXTech
      @SACAViXTech  Před rokem

      Es solo un tema de nombres, pero lo mejor es seguir un solo enfoque, particularmente me gusta uno como el que planteas y no como el que seguí en el video (lo hice así por un tema de simplicidad), pero lo mejor es la interfaz o abstracción llamarla TaskService y la implementación TaskServiceImpl. Pero no es una regla, sino una preferencia nada mas.

  • @jhonlima9802
    @jhonlima9802 Před rokem

    Trabajas en Android Studio?

  • @rocamorapiano1
    @rocamorapiano1 Před rokem

    Cuando hago el POST va bien sin errores, pero me muestra esto:
    {}
    Y al hacer el GET me sale:
    [
    {},
    {}
    ]
    Lo correcto sería que pusiera:
    [
    {
    "description": "Prueba1",
    "eta": "2023-03-10T22:32:30.769Z",
    "title": "Prueba33"
    },
    {
    "description": "Prueba2",
    "eta": "2023-03-10T22:32:30.769Z",
    "title": "Prueba2"
    }
    ]
    Sin embargo cuando me meto a la base de datos y hago un Select, sí me salen todos los campos correctamente.
    Si alguien pudiera decirme por qué pasa eso y cómo solucionarlo se lo agradecería.
    Un saludo

  • @nuriselpalmaperez9163
    @nuriselpalmaperez9163 Před rokem +1

    Está muy bueno el video, muy bien explicado, pero me queda una duda en la parte de persistencia, ¿dónde está la implementación del método findAllByTaskStatus? ¿Por qué en markTaskAsFinished se realiza una query a la base de datos y en findAllByTaskStatus no? Saludos

    • @SACAViXTech
      @SACAViXTech  Před rokem +1

      Hola, eso es porque usa la magia de Spring Data JPA, puedes aprender mas aca: docs.spring.io/spring-data/jpa/docs/current/reference/html/

    • @Gamijoh
      @Gamijoh Před rokem +1

      Por lo que estuve viendo Spring crea la implementacion de los metodos find si tienen como parte de su nombre algun atributo de la clase ejemplo: findAllByNombre, findAllByPrecio..y asi con cualquier atributo de la clase que esta usando el repositorio.

  • @victormunar1562
    @victormunar1562 Před rokem

    Máster está bien que el entity llegue al controlador por medio del service y se devuelva al cliente o toca transformarlo en un dto en el service y devolver un taskOutDto? Muchas gracias explicas muy bien

    • @SACAViXTech
      @SACAViXTech  Před rokem

      Para hacerlo bien, no debe llegar nunca, en el próximo video voy a hablar de ese tema precisamente, sale el lunes. Gracias por comentar 😃

    • @victormunar1562
      @victormunar1562 Před rokem

      @@SACAViXTech gracias a ti por tomar el tiempo para responder trabajo con un CMS en java pero quiero más retos así que estoy estudiando spring boot y tu canal me ha ayudado mucho

  • @M4rcos.j
    @M4rcos.j Před rokem

    Hola me encantan tus videos una pregunta, como hago para que en el menu de generacion de proyectos me salga el generador de spring intializr??

    • @SACAViXTech
      @SACAViXTech  Před rokem +1

      Hola si usas community debes instalar un plugin, sino puedes hacerlo por la web directamente y descargar el proyecto, luego abrirlo por el ij

    • @SACAViXTech
      @SACAViXTech  Před rokem

      Déjame dicho si lo logras ?

    • @M4rcos.j
      @M4rcos.j Před rokem

      @@SACAViXTech instale el plugin SpringBootGen y el Spring Boot Assistant y no me aparece el generador todavia

    • @matiasesquivel5166
      @matiasesquivel5166 Před rokem

      @@M4rcos.j parece que solo se puede con la otra version, no con la community. yo me instale la otra con el email de mi universidad que te dan un año gratis, que se puede ir renovando y ya me aparecio . actualmente estoy teniendo problemas con la vista de swagger-ui.html pero bueno supongo que lo resolvere

    • @rociogonzalez9459
      @rociogonzalez9459 Před rokem

      @@matiasesquivel5166 pudiste solucionar el problema

  • @danielobregon8535
    @danielobregon8535 Před rokem

    Hola Yoandy, vuelvo a escribirte con una duda particular, ya que no he visto info al respecto y tú tienes mucha experiencia, tal vez me puedas ayudar.
    Supongamos que tengo una entity en la db y una de las propiedades de esa entity es una imagen. Puede devolverse la imagen en el json? Es decir, por ejemplo: id, name, edad, ByteArrayResource o MultipartFile
    Yo lo he intentado devolver en un dto pero no encuentro la forma.
    Me han dicho que me conviene devolver la imagen en otra response

    • @SACAViXTech
      @SACAViXTech  Před rokem

      Hola Daniel, poder se puede, pero lo más recomendable es devolver la URL de la imagen en un CDN o si es algo más precario en un servidor de contenido estático detras de un Nginx, no es recomendable devolver un base64 o algo de la imagen, causa overhead innecesario

    • @danielobregon8535
      @danielobregon8535 Před rokem

      @@SACAViXTech muchas gracias Yoandi!! El tema es que el proyecto recomienda que las imágenes se encuentren en la db. Por eso se me ocurrió devolverlas como una entidad asociada OneToMany. Estoy totalmente de acuerdo en que lo que dices, es lo mejor, pero en mi caso, tal vez tendria que llamar otro endpoint en el mismo botón y que traiga el json con los datos y otro con la imagen. Es buena idea? Gracias de nuevo amigo. Abrazo!!

  • @rb811
    @rb811 Před 2 lety +3

    una consulta un API REST es lo mismo que decir MicroServicio ???

    • @SACAViXTech
      @SACAViXTech  Před 2 lety +3

      Hola RB , no, no es lo mismo un API Rest provee un mecanismo basado en la patrón de arquitectura REST para comunicar aplicaciones, los microservicios son un estilo arquitectónico para construir aplicaciones como un grupo de pequeños servicios, la relación es que a menudo estos pequeños servicios se comunican usando REST pero pueden usarse otros métodos de comunicación. Gracias por comentar

    • @rb811
      @rb811 Před 2 lety +1

      @@SACAViXTech a ya pero entonces este turorial que has hecho es un servicio API REST que podría incorporarse a un microservicio o agregarse a un conjunto de servicio que equivale a un microservicio ? me gustaría que hicieras un video que relacione un servigio API REST Acon microservicio ya qur no lo entiendo muy bien

  • @brunoromanhuaman4882
    @brunoromanhuaman4882 Před 2 lety

    1:24:55 por que el TASK_STATUS se guarda como numero ?

    • @SACAViXTech
      @SACAViXTech  Před 2 lety

      Hola Bruno, eso es porque es un ENUM y toma por orden 0, 1, 2 ... y guarda en base la posición del ENUM, eso se puede cambiar y decirle que guarde el String, por defecto guarda el ordinal que es el número, en cambio puedes decirle que guarde el string anotando el tipo del enum con esto encima @Enumerated(EnumType.STRING). Pruébalo y me cuentas.
      Saludos !

  • @arlangalvez7312
    @arlangalvez7312 Před rokem

    Uff tengo un problema, estoy en el min 20 pero no logro que mi api me muestre el swagger. No da error, corre perfectamente pero no me saca el swagger. Que puede ser?

    • @SACAViXTech
      @SACAViXTech  Před rokem +1

      Hola Arlan, asegúrate estés usando las mismas versiones del ejemplo, en ocasiones tiene problemas de compatibilidad o comparte el código en un git y lo miro si quieres

    • @arlangalvez7312
      @arlangalvez7312 Před rokem

      @@SACAViXTech PERFECTO! muchisimas gracias. Geniales sus videos!!! Un placer contar con su ayuda!

  • @TROLLIEL13
    @TROLLIEL13 Před rokem

    crei que api rest era un enlace externo pero tu usas localhost

  • @williamsvictor2028
    @williamsvictor2028 Před 2 lety

    Podrias compartir el codigo del proyecto . gracias

    • @SACAViXTech
      @SACAViXTech  Před 2 lety

      Con gusto, el código está disponible desde el artículo del blog relacionado. Puedes acceder desde acá. sacavix.com/2022/03/06/aprende-spring-boot-con-un-proyecto-real/

    • @williamsvictor2028
      @williamsvictor2028 Před 2 lety +1

      @@SACAViXTech Muchas gracias

  • @sacarymoviesamu
    @sacarymoviesamu Před rokem

    No me va la cosa esta. Joder

  • @maximilianocastiglioni9679

    Muy bueno el video, felicitaciones. Consulta: En la arquitectura que planteas es valido que una clase que implementa IMapper puede comunicarse con un repository (o varios)?
    Por ejemplo supongamos una clase PersonaInDtoToPersona .
    Tengo una clase DTOPersona con un idPais(de tipo int ). Cuando voy a armar la verdadera clase persona esta mal que invoque al paisRepository.getPais(idPais), para luego agregar el pais a la clase Persona? y asi con otros objetos que puede tener la clase Persona adentro.(Direccion, Telefono,etc)
    mi clase quedaría algo así
    import com.example.procesador.persistence.entity.Persona;
    import com.example.procesador.persistence.entity.Pais;
    import com.example.procesador.persistence.repository.PaisRepository;
    import com.example.procesador.service.dto.PersonaInDTO;
    import org.springframework.stereotype.Component;
    @Component
    public class PersonaInDtoToPersona implements IMapper {
    private final PaisRepository paisRepository;
    public PersonatInDtoToPersona(PaisRepository paisRepository) {
    this.paisRepository = paisRepository;
    }
    @Override
    public TransactionData map(TransactionDataInDTO in) {

    TransactionData transactionData = new TransactionData();

    Pais pais=paisRepository.getById(in.getIdPais());
    persona.setPais(pais);

    persona.setNombre(....
    persona.setApellido(...
    return persona;
    }
    }
    Desde uruguay, muchas gracias !!

    • @SACAViXTech
      @SACAViXTech  Před rokem +1

      Hola Maxi, poder se puede, pero creo que pudiera quedar mejor si abstraes los mappers del repositorio, el mapper debe ser algo noble, no debería depender del acceso al repositorio o a otro recurso externo. Un mapper debería tener solo un método llamado map que recibe como parámetros A y B en tu caso PersonaInDTO y Persona, y en todo caso en tu clase de Service inyectas ese IMapper con el qualifier del PersonaInDtoToPersona, de esta forma queda totalmente separado. Como lo tienes ahi el mapper depende de PaisRepository y probablemente el servicio donde inyectas ese mapper tambien tenga alguna dependencia de PaisRepository.
      Bueno espero haberte ayudado algo, te recomiendo el libro "Arquitectura limpia", aborda mucho estos temas y sobre todo lo relacionado con las relaciones de dependencia y las "razones de cambio", que te aplican en este caso.
      Un abrazo !

    • @maximilianocastiglioni9679
      @maximilianocastiglioni9679 Před rokem

      @@SACAViXTech muchas gracias. Si tenes razon. Opte por terminar de "completarlo" con los objetos pesados que tiene adentro en la clase service..