0

我收到的要求只要求写入和更新某些属性,但要读取所有属性,所以我想知道处理这个问题的最佳方法是什么?我知道这听起来很疯狂,但要求是写入/更新将通过 SOAP 完成,而读取将通过 REST 完成。想法是 SOAP API 将用于初始数据加载,Web 界面的最终用户将进行更详细的修改,然后另一组最终用户将针对 REST API 进行编程以在网页上显示数据。我会很感激一些关于最佳/良好实践的反馈和/或评论。这就是我认为需要做的事情(注意,缩写示例):

namespace DTOs.Create
{
    public class Project
    {
        public string Name { get ; set; }
    }
}


namespace DTOs.Read
{
    public class Project
    {
        public string Name { get ; set; }
        public string Description { get ; set; }
        public DateTime DueDate { get ; set; }
        public int Priority { get ; set; }
    }
}
4

2 回答 2

0

仔细考虑实施的生命周期。如果其余接口和soap 接口可能会随着时间的推移而出现分歧,那么一定要选择两个不同的DTO 类。

具体到您的情况,我会保留两个 DTO 以放松这两个接口。我在项目中听到太多次诸如“我们不能只改变界面的这个精简部分吗?它只是一个字符串!” 然后要花费太多精力来实现,因为接口与应用程序的其他部分紧密耦合,这些部分也必须重写(重新测试)等。

但这在很大程度上取决于应用程序的范围

于 2012-05-13T11:14:34.147 回答
0

我倾向于只有一个 DTO,DTO 的目的是携带数据,它不应该附加行为语义,服务操作提供了这一点。

您应该能够在许多不同的上下文中(在不同的操作中)使用项目信息 (DTO)。

什么是项目的定义在您的域中应该保持一致,如果定义项目的定义在 SOAP 和 REST 部分之间是不同的,那么您还有其他问题。

随着时间的推移,这两个接口可能会出现分歧,但分歧在于数据的使用方式而不是数据的内容。

如果一个界面真的需要这样不同的信息,那么创建一个新的领域概念,因为它不再是原来的项目概念。

于 2012-05-15T10:49:56.853 回答