如何从ddd中的其他微服务获取数据?
How To get data from other microservice in ddd?
我有两个服务order service
和Z service
(Z是一个假设的名字)。我的项目中有 3 层(域、应用程序、基础设施)。订单服务有一个注册 API。用户调用此 Web 服务以及手机号码和其他数据。在订购服务中,为了接收 Z_ID,这个 phone 号码需要发送到订购服务
我在基础设施层有一个调用 Z 服务的方法。但是我的问题是我应该在哪一层调用这个方法?
在应用层是不是应该这样处理:
$order = Order::Create($price, $shop);
$Z_id = // call method in infrastructure
$order->setZID($zid);
或者域层必须向基础设施层请求?
您可以通过以下方式解决此问题:
- 声明域接口(存储库构建块)
- 在基础架构中实现接口
- 在您的应用层中将其用作普通的存储库构建块
值得注意的是,在这种方法中,域不再依赖于基础设施,因此它为您提供了显着的灵活性——例如,更改微服务甚至使用 DB 而不是 HTTP 调用更容易,这种态度被称为六边形建筑。
我有两个服务order service
和Z service
(Z是一个假设的名字)。我的项目中有 3 层(域、应用程序、基础设施)。订单服务有一个注册 API。用户调用此 Web 服务以及手机号码和其他数据。在订购服务中,为了接收 Z_ID,这个 phone 号码需要发送到订购服务
我在基础设施层有一个调用 Z 服务的方法。但是我的问题是我应该在哪一层调用这个方法?
在应用层是不是应该这样处理:
$order = Order::Create($price, $shop);
$Z_id = // call method in infrastructure
$order->setZID($zid);
或者域层必须向基础设施层请求?
您可以通过以下方式解决此问题:
- 声明域接口(存储库构建块)
- 在基础架构中实现接口
- 在您的应用层中将其用作普通的存储库构建块
值得注意的是,在这种方法中,域不再依赖于基础设施,因此它为您提供了显着的灵活性——例如,更改微服务甚至使用 DB 而不是 HTTP 调用更容易,这种态度被称为六边形建筑。