Es igual que el Query Controller, pero tiene una gran diferencia, y es su intención.
Especificaciones
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.
|
|