【问题标题】:Writing repositories for external Restful APIs为外部 Restful API 编写存储库
【发布时间】:2021-07-22 08:21:04
【问题描述】:

我正在学习 DDD,但对一个特定问题感到困惑。在我的有限上下文中,我有要求我从外部 API 获取数据的 UseCase。我知道它是 API 还是数据库并不重要,我们只需为实体创建存储库并在基础设施层中抽象实现。

问题是我从外部 API 检索的数据类型没有持久保存在我的数据库中。

我所做的是跟随

Application Layer
   SyncListingsUseCase
Domain Layer
   ListingEntity
   PosListingEntity
Infrastructure Layer
   PosListingRepositoryHTTP
   ListingRepostorySQL

我从 PosListingRepositoryHTTP 的应用层中的 RestAPI 获取 POSListing,然后将它的一些属性与从 ListingsRepositorySQL 检索到的 ListingsEntity 同步并持久化 Listing Entity。

您看到我的 Local 中没有 PosListingEntity,所以我的问题是,如果我没有将它持久保存在本地数据库中,我还能创建一个映射到外部系统的实体吗?

【问题讨论】:

    标签: domain-driven-design entities ddd-repositories


    【解决方案1】:

    正如关注点所定义的,存储与域的映射方式无关。域在基础设施中的表示是受尊重层的关注点。如果您想使用 HTTP 检索一些数据,而通过 SQL 检索一些数据,则结果应该是一个系统可识别的对象,应用程序层和域层可以与之交互。您绝对可以在不同的系统之间保持持久性。

    在大多数具有云自管理数据库的分布式系统中,数据实际上是通过 TCP 套接字连接检索的。因此,即使您使用 HTTP 来检索数据,它也几乎与顶部的网络糖相似。

    【讨论】:

    • 所以基本上你说我理解正确。
    • 是的。 DDD 是关于概念的,与实现无关,这取决于特定情况。
    猜你喜欢
    • 2018-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-02
    • 1970-01-01
    • 2011-07-06
    • 2013-06-06
    • 2020-06-07
    相关资源
    最近更新 更多