Domain driven design 在何处对控制器或域模型进行基本验证

Domain driven design 在何处对控制器或域模型进行基本验证,domain-driven-design,microservices,cqrs,axon,Domain Driven Design,Microservices,Cqrs,Axon,服务A- 有一个RESTAPI来处理命令-a,在控制器上我做一些基本的字段验证(空检查、电子邮件格式检查等)。 验证后,控制器将命令A发送给命令处理程序A 服务B-也有与服务A相同的命令处理方式 现在,服务B有一个传奇,在某些事件中,它将命令a发送给服务a。 服务A使用Command-Handler-A处理该命令-A。 但在本例中,Command-A绕过了我对服务-A的控制器进行的基本验证 问题- 我是否必须将所有验证放在命令处理程序/域模型中?或 我必须从Service-B saga调用Ser

服务A-

有一个RESTAPI来处理命令-a,在控制器上我做一些基本的字段验证(空检查、电子邮件格式检查等)。 验证后,控制器将命令A发送给命令处理程序A

服务B-也有与服务A相同的命令处理方式

现在,服务B有一个传奇,在某些事件中,它将命令a发送给服务a。 服务A使用Command-Handler-A处理该命令-A。 但在本例中,Command-A绕过了我对服务-A的控制器进行的基本验证

问题-

  • 我是否必须将所有验证放在命令处理程序/域模型中?或
  • 我必须从Service-B saga调用Service-A的其余API。(在服务中形成一个入口点)。或
  • 还有其他解决办法吗
  • 使用-Axon Framework 4.2和带Spring Boot的Axon服务器。

    在何处对控制器或域模型进行基本验证

    服务A负责确保其自身的先决条件

    其中一个先决条件是它收到了正确的消息。在控制器-A的情况下,您应该期望有一个将接收到的字节转换为有效命令-A的功能。该功能可能由控制器本身实现,也可能委托给其他组件——但它肯定位于应用程序组件中,而不是域模型中