在域驱动设计中哪里放置第三方 API 调用?
Where to place third-party API calls in Domain-Driven Design?
我需要调用第三方 API 来获取最终会保存在我的数据库中的数据。
在处理数据库中的数据时,我通常在 Domain
中声明存储库接口,并在 Data
中添加实际实现。
我的问题是 - 我应该对这些第三方 API 调用做同样的事情吗?毕竟是数据,只是我是从其他来源获取的。
正如 plaxl 所说(并进一步扩展),您的 Data
package/module 听起来像是有时所谓的基础设施、插件或适配器(如果您使用的是六边形架构,则为最后一种)。
正如您提到的,您仍然需要定义一个接口和表示该数据的域对象。该接口通常是域服务而不是存储库。
或者,您可以跳过域接口并拥有一个直接从存储库实现中使用的具体对象。
我需要调用第三方 API 来获取最终会保存在我的数据库中的数据。
在处理数据库中的数据时,我通常在 Domain
中声明存储库接口,并在 Data
中添加实际实现。
我的问题是 - 我应该对这些第三方 API 调用做同样的事情吗?毕竟是数据,只是我是从其他来源获取的。
正如 plaxl 所说(并进一步扩展),您的 Data
package/module 听起来像是有时所谓的基础设施、插件或适配器(如果您使用的是六边形架构,则为最后一种)。
正如您提到的,您仍然需要定义一个接口和表示该数据的域对象。该接口通常是域服务而不是存储库。
或者,您可以跳过域接口并拥有一个直接从存储库实现中使用的具体对象。