为外部 Restful API 编写存储库

Writing repositories for external Restful APIs

我正在学习 DDD,但对一个具体问题感到困惑。在我的有界上下文中,我有一个用例,它要求我从外部 API.I 获取数据在基础设施层。

问题是我从外部 API 检索的数据类型没有保存在我的数据库中的任何地方。

我所做的是以下

Application Layer
   SyncListingsUseCase
Domain Layer
   ListingEntity
   PosListingEntity
Infrastructure Layer
   PosListingRepositoryHTTP
   ListingRepostorySQL

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

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

正如问题所定义的那样,存储与域的映射方式无关。将域表示为基础结构是受尊重层的关注点。如果您想使用 HTTP 检索一些数据并通过 SQL 检索一些数据,结果应该是应用程序层和领域层可以与之交互的系统可识别对象。你绝对可以在不同的系统中拥有持久性。

在大多数具有云自我管理数据库的分布式系统中,数据实际上是通过 TCP 套接字连接检索的。所以即使你使用HTTP来获取数据,也几乎和上面加了网络糖一样。