Skip to content

Creación de Query

Command: yo codedesignplus:microservice query

Este comando se utiliza para crear una o más queries dentro de un microservicio existente. En el contexto de Command Query Responsibility Segregation (CQRS), una query es una operación que se utiliza para obtener información del sistema sin modificar su estado. Este comando facilita la generación de la estructura básica para definir queries en tu microservicio.

Prerrequisitos

Conceptos Clave

  • Query: En CQRS, una query es una operación que se utiliza para consultar información del sistema.
  • CQRS (Command Query Responsibility Segregation): Un patrón de arquitectura que separa las operaciones de lectura (queries) de las operaciones de escritura (commands), permitiendo optimizar cada lado de forma independiente.
  • Lectura sin Modificación: Las queries solo deben leer datos y no modificar el estado del sistema.
  • Agregado y Repositorio: Las queries suelen obtener datos de un repositorio asociado a un agregado.

Sintaxis del Comando

El comando yo codedesignplus:microservice query tiene la siguiente sintaxis:

Terminal window
yo codedesignplus:microservice query \
--organization "<organization_name>" \
--microservice "<microservice_name>" \
--aggregate "<aggregate_name>" \
--repository "<repository_name>" \
--queries "<query_names>"

--organization

  • Tipo: string
  • Obligatorio: Sí
  • Descripción: El nombre de la organización a la que pertenece el microservicio.

--microservice

  • Tipo: string
  • Obligatorio: Sí
  • Descripción: El nombre del microservicio donde se crearán las queries.

--aggregate

  • Tipo: string
  • Obligatorio: Sí
  • Descripción: El nombre del agregado al que pertenecen las queries.

--repository

  • Tipo: string
  • Obligatorio: Sí
  • Descripción: El nombre del repositorio asociado al agregado.

--queries

  • Tipo: string
  • Obligatorio: Sí
  • Descripción: Una lista de nombres de queries separadas por comas que se crearán.

Ejemplos de Uso

Este ejemplo crea dos queries, GetUserProfileById y GetAllUserProfiles, asociadas al agregado UserProfile y su repositorio en el microservicio users de la organización acme.

Terminal window
yo codedesignplus:microservice query \
--organization "Acme" \
--microservice "User" \
--aggregate "UserProfile" \
--repository "UserProfile" \
--queries "GetUserProfileById,GetAllUserProfiles"

Salida del comando en consola

Tras ejecutar el comando, se generarán las estructuras base para las queries GetUserProfileById y GetAllUserProfiles en el microservicio users, con la siguiente salida en consola:

Archetype

Directorios y Archivos Generados

Si exploramos el microservicio con VS Code, veremos la estructura de directorios y archivos generados para las nuevas queries:

Archetype

Resultados de la Ejecución

La ejecución de este comando con los parámetros proporcionados generará la estructura base para una o más queries en el microservicio especificado. Veamos los resultados de la ejecución del comando:

--organization

Flag: --organization "acme"

  1. Este parámetro establece el nombre de la organización, que se refleja en los namespaces de los archivos generados para las queries.

    Archetype

--microservice

Flag: --microservice "users"

  1. Este parámetro establece el nombre del microservicio en el que se crearán las queries, reflejándose en los namespaces y ubicaciones de los archivos.

    Archetype

--aggregate

Flag: --aggregate "UserProfile"

  1. Este parámetro define el nombre del agregado al que pertenecen las queries, reflejándose en la ubicación de los archivos generados.

    Archetype
  2. Con este parámetro, tambien se crea el Data Transfer Object (DTO) para los resultados de las queries.

    Archetype

--repository

Flag: --repository "UserProfile"

  1. Este parámetro define el nombre del repositorio asociado al agregado, reflejándose en la estructura de las queries.

    Archetype

--queries

Flag: --queries "GetUserProfileById,GetAllUserProfiles"

  1. Este parámetro define los nombres de las queries que se crearán, generando los archivos correspondientes en la capa de aplicación.

    Archetype

Consideraciones Adicionales

  • Asegúrate de tener un microservicio existente, un agregado y un repositorio definidos antes de utilizar este comando.
  • Los nombres de las queries deben ser descriptivos y reflejar la información que obtienen.
  • Las queries deben encargarse solo de obtener información y no modificar el estado del sistema.
  • Las queries son parte del patrón CQRS, enfocándose en la separación de la lectura de la escritura.

Enlaces Relacionados

Conclusión

El comando yo codedesignplus:microservice query facilita la creación de queries en tu microservicio, asegurando que la estructura y los patrones de CQRS se apliquen correctamente. Utiliza este comando para definir la forma en que tu microservicio obtiene información sin modificar su estado.