Featured image of post Primary card - Command controller

Primary card - Command controller

Es punto de entrada del usuario.

Es igual que el Query Controller, pero tiene una gran diferencia, y es su intención.

Especificaciones

Command controller Primary reverse

Tiene una complejidad de 2 en casos normales.

Su principal intención, es recibir y transformar la petición de un User o External system a un Command que entienda nuestro Domain.

Da igual el protocolo utiiizado o mensaje que le envíe el usuario. Llegados a este punto, el framework ha hecho su tarea y nos ofrece una objeto con la informaciñon relevante.

Es parecido al Query Controller, sólo se relaciona con el User, Privileged user, External system y el Command.

Si es posible, no espera una respuesta del Domain. Simplemente asume que la acción ha sido recibida y devuelve un estado HTTP de tipo 2XX.

Esto será muy importante para poder tener margen para cambiar estrategias y optimizar recursos en caso de tráfico elevado.

¿Qué valor me aporta implementar un Command Controller?

Aporta el mismo valor que cualquier carta de tipo Controller

  • Nos ayuda a separar las peticiones del exterior y su posible variabilidad.
  • Como punto de entrada interpreta la petición y lo transforma a un mensaje que entiende el dominio (un DTO).
  • En este punto, podemos establecer las reglas principales a nivel de si una petición es válida, e incluso aspectos extra de seguridad de acceso o gestión de errores controlados… lo que vienen siendo responsabilidades que recaen fuera del dominio.
  • También podemos controlar en qué formato vamos a devolver la Response al peticionario.

¿Cómo se expresa esta carta en el mundo real?

Como indica el icono de arriba a la izquierda, corresponde a una clase.

1
2
TODO: Referencias a otras cartas
TODO: Mostrar un controller de ejemplo

Licensed under CC BY-NC-SA 4.0
Creado con Hugo
Tema Stack diseñado por Jimmy