在使用域驱动设计开发的博客应用程序中,“帖子”实体具有相关的标签实体集合。
在创建帖子(例如从 UI 填充对象)时,我想通过 REST 调用第三方 API,该 API 获取帖子的内容并提取语义标签(链接文本)以进行关联。
主要问题:设计这个的最佳方法是什么......
最好的设计是让 Post 实体调用域服务,例如 PostServices.GetTags(Postcontent) 传递其内容并检索标签列表。?
** PostServices.GetTags 将通过进一步的包装类与 REST API 连接。
还是应该将第三方 API 包装为存储库?
函数 Post.GenerateTags() 是否应该根本不存在于域实体中?
进一步的问题:
1:我还读到,让域实体与域服务对话并不是一个好习惯。这是真的?
2:是否可以通过工厂创建方式获取PostServices域服务的引用。例如..
IPostService PostService = ServiceUtil.GetPostService(); 返回 PostService.GetTags(Post.content);
3 : 将域服务与第三方 api 耦合是否可以接受?
4:领域实体是否应该只知道如何处理通过调用 REST API 的应用层接收到的标签。
慢慢地试图让我的头脑围绕 DDD,但是我似乎找不到任何关于如何实现这种事情的例子。