Creación de Comando
Command: yo codedesignplus:microservice command
Este comando se utiliza para crear uno o más comandos dentro de un microservicio existente. En el contexto de Command Query Responsibility Segregation (CQRS), un comando es una operación que se utiliza para modificar el estado del sistema. Este comando facilita la generación de la estructura básica para definir comandos en tu microservicio.
Prerrequisitos
Section titled “Prerrequisitos”- Instalar Node.js y npm instalados.
- Instalar Yeoman (
npm install -g yo
). - Instalar el generador
codedesignplus:microservice
. - Tener un microservicio existente creado con:
- CRUD:
codedesignplus:microservice
- Custom:
codedesignplus:microservice
.
- CRUD:
- Tener un agregado y un repositorio definidos en tu microservicio.
Conceptos Clave
Section titled “Conceptos Clave”- Comando (Command): En CQRS, un comando es una operación que se utiliza para modificar el estado 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.
- Modificación de Estado: Los comandos son responsables de realizar cambios en el estado del sistema a través de un agregado y su repositorio.
- Agregado y Repositorio: Los comandos suelen interactuar con un repositorio asociado a un agregado para realizar las modificaciones necesarias.
Sintaxis del Comando
Section titled “Sintaxis del Comando”El comando yo codedesignplus:microservice command
tiene la siguiente sintaxis:
yo codedesignplus:microservice command \ --organization "<organization_name>" \ --microservice "<microservice_name>" \ --aggregate "<aggregate_name>" \ --repository "<repository_name>" \ --commands "<command_names>"
yo codedesignplus:microservice command ` --organization "<organization_name>" ` --microservice "<microservice_name>" ` --aggregate "<aggregate_name>" ` --repository "<repository_name>" ` --commands "<command_names>"
--organization
Section titled “--organization”- Tipo:
string
- Obligatorio: Sí
- Descripción: El nombre de la organización a la que pertenece el microservicio.
--microservice
Section titled “--microservice”- Tipo:
string
- Obligatorio: Sí
- Descripción: El nombre del microservicio donde se crearán los comandos.
--aggregate
Section titled “--aggregate”- Tipo:
string
- Obligatorio: Sí
- Descripción: El nombre del agregado al que pertenecen los comandos.
--repository
Section titled “--repository”- Tipo:
string
- Obligatorio: Sí
- Descripción: El nombre del repositorio asociado al agregado.
--commands
Section titled “--commands”- Tipo:
string
- Obligatorio: Sí
- Descripción: Una lista de nombres de comandos separados por comas que se crearán.
Ejemplos de Uso
Section titled “Ejemplos de Uso”Este ejemplo crea tres comandos, CreateUserProfile
, UpdateUserProfile
y RemoveUserProfile
, asociados al agregado UserProfile
y su repositorio en el microservicio users
de la organización acme
.
yo codedesignplus:microservice command \ --organization "Acme" \ --microservice "User" \ --aggregate "UserProfile" \ --repository "UserProfile" \ --commands "CreateUserProfile,UpdateUserProfile,RemoveUserProfile"
yo codedesignplus:microservice command ` --organization "Acme" ` --microservice "User" ` --aggregate "UserProfile" ` --repository "UserProfile" ` --commands "CreateUserProfile,UpdateUserProfile,RemoveUserProfile"
Salida del comando en consola
Section titled “Salida del comando en consola”Tras ejecutar el comando, se generarán las estructuras base para los comandos CreateUserProfile
, UpdateUserProfile
y RemoveUserProfile
en el microservicio users
, con la siguiente salida en consola:

Directorios y Archivos Generados
Section titled “Directorios y Archivos Generados”Si exploramos el microservicio con VS Code, veremos la estructura de directorios y archivos generados para los nuevos comandos:

Resultados de la Ejecución
Section titled “Resultados de la Ejecución”La ejecución de este comando con los parámetros proporcionados generará la estructura base para uno o más comandos en el microservicio especificado. Veamos los resultados de la ejecución del comando:
--organization
Section titled “--organization”Flag: --organization "acme"
-
Este parámetro establece el nombre de la organización, que se refleja en los namespaces de los archivos generados para los comandos.
--microservice
Section titled “--microservice”Flag: --microservice "users"
-
Este parámetro establece el nombre del microservicio en el que se crearán los comandos, reflejándose en los namespaces y ubicaciones de los archivos.
--aggregate
Section titled “--aggregate”Flag: --aggregate "UserProfile"
-
Este parámetro define el nombre del agregado al que pertenecen los comandos, reflejándose en la ubicación de los archivos generados.
--repository
Section titled “--repository”Flag: --repository "UserProfile"
-
Este parámetro define el nombre del repositorio asociado al agregado, reflejándose en la estructura de los comandos.
--commands
Section titled “--commands”Flag: --commands "CreateUserProfile,UpdateUserProfile,RemoveUserProfile"
-
Este parámetro define los nombres de los comandos que se crearán, generando los archivos correspondientes en la capa de aplicación.
Consideraciones Adicionales
Section titled “Consideraciones Adicionales”- Asegúrate de tener un microservicio existente, un agregado y un repositorio definidos antes de utilizar este comando.
- Los nombres de los comandos deben ser descriptivos y reflejar la acción que realizan.
- Los comandos deben encargarse de modificar el estado del sistema a través de un agregado y su repositorio.
- Los comandos son parte del patrón CQRS, enfocándose en la separación de la escritura de la lectura.
Enlaces Relacionados
Section titled “Enlaces Relacionados”- Documentación del arquetipo
CodeDesignPlus.Net.Microservice
- Documentación del SDK
CodeDesignPlus.Net.SDK
- Conceptos de DDD - Command & Query
- CQRS
Conclusión
Section titled “Conclusión”El comando yo codedesignplus:microservice command
facilita la creación de comandos 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 modifica su estado.