将基本验证放在控制器或域模型上的位置

问题描述 投票:0回答:1

服务A-

具有一个Rest API来处理Command-A,在控制器上,我做了一些基本的字段验证(空检查,电子邮件格式检查等)。验证控制器之后,将Command-A发送到Command-Handler-A。

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

现在,服务B有一个传奇,在某些情况下,它会将Command-A发送给服务A。服务A使用Command-Handler-A处理该Command-A。但是在这种情况下,Command-A通过了我对Service-A控制器进行的基本验证。

问题-

  1. 我是否必须将所有验证都放在命令处理程序/域模型中?或
  2. 我必须从Service-B传奇中调用Service-A的Rest API。 (在服务中创建单个入口点)。或
  3. 还有其他解决方案吗?

使用-具有Spring Boot的Axon Framework 4.2和Axon Server。

domain-driven-design microservices cqrs axon
1个回答
0
投票

将基本验证放在控制器或域模型上的位置

Service-A负责确保其前提条件。

这些先决条件之一是它收到了正确的消息。对于Controller-A,您应该期望有一个parse,它将接收到的字节转换为经过验证的Command-A。该功能可能是由控制器本身实现的,也可能是委派给其他某些组件的,但是它肯定会在application组件中,而不是在[[domain model中。

© www.soinside.com 2019 - 2024. All rights reserved.