在域驱动设计中哪里放置第三方 API 调用?

Where to place third-party API calls in Domain-Driven Design?

我需要调用第三方 API 来获取最终会保存在我的数据库中的数据。

在处理数据库中的数据时,我通常在 Domain 中声明存储库接口,并在 Data 中添加实际实现。

我的问题是 - 我应该对这些第三方 API 调用做同样的事情吗?毕竟是数据,只是我是从其他来源获取的。

正如 plaxl 所说(并进一步扩展),您的 Data package/module 听起来像是有时所谓的基础设施、插件或适配器(如果您使用的是六边形架构,则为最后一种)。

正如您提到的,您仍然需要定义一个接口和表示该数据的域对象。该接口通常是域服务而不是存储库。

或者,您可以跳过域接口并拥有一个直接从存储库实现中使用的具体对象。