MEJORA TU API DE NODE JS CON ARQUITECTURA HEXAGONAL

Поделиться
HTML-код
  • Опубликовано: 16 окт 2024

Комментарии • 31

  • @L3anAv
    @L3anAv 2 месяца назад

    No soy de comentar mucho en videos, pero este se lo merece. La verdad, excelente toda la serie de videos acerca de como implementar algo con esta arquitectura. Justo estaba queriendo hacer una app de notas para incorporar typescript y todo esto me viene genial para agregarle algo más. Muchisimas gracias por compartir tus conocimientos! la verdad se agradece, sos muy claro al explicar y tus videos estan muy bien estructurados, te felicito!. Nada más que decir. Saludos y que sigas bien!

    • @mvrcoag
      @mvrcoag  2 месяца назад +1

      Hola!
      Qué bueno que te gustó, y espero que te funcione de maravilla en este y los próximos proyectos que desarrolles, mucho éxito!
      Saludos! 👋

  • @gerardopacheco9521
    @gerardopacheco9521 2 месяца назад

    wooa excelente!!!! es un nuevo enfoque para mi todo esto...muchas gracias

    • @mvrcoag
      @mvrcoag  2 месяца назад

      Qué bueno que te gustó! Un saludo 👋

  • @Josevi-f8w
    @Josevi-f8w 2 месяца назад

    ¡Excelente trabajo el que realizas! Gracias por ayudarnos a ampliar conocimientos. Saludos desde España.

    • @mvrcoag
      @mvrcoag  2 месяца назад

      Me alegra mucho que te haya funcionado! Saludos desde México 👋

  • @lucianoleyria
    @lucianoleyria 2 месяца назад

    Excelente video! La verdad que después de buscar mucha información sobre la arquitectura hexagonal, creo que en esta serie de videos fueron muy bien explicado cada uno de los conceptos. Muchísimas gracias!
    Estaría bueno si pudieras hacer un video en donde le agregues un middleware con validaciones y otro con un manejador global de errores.

    • @mvrcoag
      @mvrcoag  2 месяца назад

      ¡Muchas gracias Luciano!
      Excelente idea, tal vez podamos hacer un video dedicado a errores y cómo aprovecharlos, ¡Gracias por el aporte!

  • @eduardovielma7205
    @eduardovielma7205 3 месяца назад

    Excelente! muchas gracias por este aporte es brutal!!!

    • @mvrcoag
      @mvrcoag  3 месяца назад

      @@eduardovielma7205 muchas gracias! 🙌 Un saludo! 👋

  • @lucassanchez7083
    @lucassanchez7083 4 месяца назад +1

    Muy buen contenido! de lo mejor en español, estaría bueno un ejemplo de arquitectura hexagonal con NestJS y TypeORM.
    Saludos.

    • @mvrcoag
      @mvrcoag  4 месяца назад +1

      Muchas gracias! Claro que sí, saldrá esta semana!

  • @AlejandroRL868
    @AlejandroRL868 3 месяца назад +2

    bro, buenas noches, saludos desde cuba, si puedes mas videos de estas serie y si puede poner tests estaria genial

    • @mvrcoag
      @mvrcoag  3 месяца назад +1

      Claro que sí Alejandro! Cuenta con que en un próximo video llevaremos a cabo los tests, ¿Alguna tecnología o framework en específico con el que te gustaría que se realizará el vídeo? Te leo! 🙌

    • @AlejandroRL868
      @AlejandroRL868 3 месяца назад

      @@mvrcoag hola, no, ese es el problema, que no tengo ni idea de ese tema, asi que te lo dejo a ti jajaja gracias

    • @mvrcoag
      @mvrcoag  3 месяца назад +1

      @@AlejandroRL868 claro, cuenta con ello! Saludos

  • @lautarojuarez6690
    @lautarojuarez6690 4 месяца назад +1

    Que buena serie genio!, voy a poner en práctica todo esto, es una estructura super limpia y ordenada, te hago una pregunta, a la hora de consumir la API desde un front también se puede utilizar esta arquitectura? Y en ese caso como se implementaría?, saludos, nuevo sub!

    • @mvrcoag
      @mvrcoag  4 месяца назад +1

      ¡Muchas gracias! 🙌 Claro que es aplicable, si bien los conceptos de hexagonal architecture tienen más popularidad en el backend, es posible aplicarlos al frontend. Haré un nuevo video al respecto para explicarlo mejor! Saludos 👋

    • @lautarojuarez6690
      @lautarojuarez6690 4 месяца назад

      Genial, voy a estar al tanto!!

  • @ElYorWTF
    @ElYorWTF Месяц назад

    No es por nada, pero no estas usando los conceptos de drivers y drivens que dice alickstar cockburn y jmgarrido en su libro. Veo que estas haciendo una especie de onion architecture con uno que otro concepto de ports and adapters. Corrigeme si me equivoco

  • @valerio-9137
    @valerio-9137 4 месяца назад +1

    Gran contenidooooo

    • @mvrcoag
      @mvrcoag  4 месяца назад

      Muchas gracias! Es un placer

  • @danielagudelo1126
    @danielagudelo1126 3 месяца назад

    Hola, el contenido me ha sido de mucha utilidad. Una duda. Si tengo una interfaz que quisiera compartir entre varias clases de distintas dominios, ¿Esta se puede crear en la carpeta shared/domain/nombre.interface.ts y ahí importarla desde los dominios que la use?

    • @mvrcoag
      @mvrcoag  3 месяца назад

      Hola Daniel! 🙌 Qué gusto que te haya aportado.
      En cuanto a tu duda, sí, es totalmente posible, aunque hay que tener cuidado en abusar de la carpeta "Shared" ya que podría volverse la carpeta donde terminemos metiendo todo y entonces perdería sentido la división de módulos que justamente propone la arquitectura hexagonal.
      Si tienes más dudas quedo pendiente, un saludo! 👋

  • @andres-kj9hg
    @andres-kj9hg 3 месяца назад

    Excelente contenido, una duda si quiero implementar un orm como deberia hacerlo ?

    • @mvrcoag
      @mvrcoag  3 месяца назад +1

      @@andres-kj9hg ¡Muchas gracias! 🙌
      En cuanto al ORM es sencillo, lo puedes aislar a su propia carpeta en la capa de infraestructura.
      Por ejemplo, si quieres usar TypeORM en un módulo de "User" podrías crear una carpeta en User/infrastructure/TypeOrm y aquí por ejemplo archivos como TypeOrmUserRepository y TypeOrmUserEntity.
      Esto variará en función del ORM que uses, aunque aquí ya que se trata de infraestructura tenemos más flexibilidad a la hora de definir como creamos, nombramos, y relacionamos los archivos entre sí.
      En el canal hay un vídeo de Nest JS + TypeORM, tal vez ese ejemplo te pueda ayudar, y si tienes más dudas házmelo saber! Un saludo 👋

  • @juancarlosuribebedoya7761
    @juancarlosuribebedoya7761 23 часа назад

    Este material está genial, es oro!
    En el archivo main.ts alrededor del minuto "11:30" en la línea 9 siempre me sale un error que no he logrado corregir, he investigado bastante y no le encuentro solución dice así:
    No overload matches this call.
    The last overload gave the following error.
    Argument of type '(err: unknown, res: Response, req: Request, next: NextFunction) => express.Response' is not assignable to parameter of type 'PathParams'.
    Alguien sabe cómo lo puedo solucionar? Tambien me sucede en el archivo ExpressUserRouter.ts, en cada router tuve que poner 'controller.getAll as any' por que de lo contrario sale el mismo error. Gracias de antemano!

  • @fdovazqc
    @fdovazqc 2 месяца назад +1

    A tu entidad en lugar de ponerle el método mapToPrimitive le puedes poner toJSON y ya no necesitarías invocar el método en tu respuesta en automático al mandar el objeto a la respuesta se parsea, gracias por tus tutoriales muy buenos 👍🏼

    • @mvrcoag
      @mvrcoag  2 месяца назад +2

      Hola! Lo que propones es un muy buen enfoque, sin embargo hay ocasiones en las que requerimos de datos primitivos que JSON no puede manejar (como el objeto Date) para trabajarlos dentro del mismo flujo antes de enviar la respuesta al cliente.
      Si bien esto no aplica a todos los casos, estoy de acuerdo en que mientras más sencillo sea el software mejor, y toJSON lo hace bastante bien.
      ¡Muchas gracias por tu aporte!

  • @santiagousca
    @santiagousca 2 месяца назад

    el por que todo el codigo dentro de la carpeta lib?

    • @mvrcoag
      @mvrcoag  2 месяца назад

      Hola Santiago!
      Es una practica para tener todo el código de nuestra lógica de negocio ahí, podrías tener otro nombre como "modules" o "sections", personalmente me gusta llamarlo "lib".
      Otro beneficio que nos aporta es que al tener todo contenido en una sola carpeta si el día de mañana queremos reutilizar nuestros módulos en un nuevo proyecto es tan fácil como copiar, pegar e ir llamando los módulos donde los necesitemos.
      Un saludo 👋