【问题标题】:Where to place third-party API calls in Domain-Driven Design?在领域驱动设计中将第三方 API 调用放在哪里?
【发布时间】:2016-02-26 15:48:59
【问题描述】:

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

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

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

【问题讨论】:

  • 是的,依赖于基础架构细节的实现应该在基础架构下,而它们的接口在域中定义。

标签: domain-driven-design


【解决方案1】:

正如 plaxl 所说(并进一步扩展),您的 Data 包/模块听起来有时被称为基础架构、插件或适配器(如果您使用的是六边形架构,则为最后一个)。

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

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

【讨论】:

    猜你喜欢
    • 2021-01-21
    • 2016-07-31
    • 1970-01-01
    • 2015-08-06
    • 1970-01-01
    • 2017-01-12
    • 1970-01-01
    • 1970-01-01
    • 2011-10-06
    相关资源
    最近更新 更多