从不同的终结点返回不同的数据成员

本文关键字:数据成员 返回 结点 | 更新日期: 2023-09-27 18:32:27

是否可以根据返回的端点返回类的不同 DataMembers?

从一个端点,我只想返回类的一些基本 DataMembers,但从另一个端点,我想返回同一类的更详细的成员。

我的想法是,我可以有一个基本类并派生另一个具有更详细信息的类,并从不同的端点返回这些信息,但我也想知道是否有另一种方法可以实现这一点?

从不同的终结点返回不同的数据成员

你的建议是完全合理的。无论如何,这些类都是DTO的(大概),它们的全部目的是将您的业务模型与消息模型分离。如果有两个消息模型,则让一个派生(或包含)另一个就可以了。

考虑一下,替代模型会是什么样子?带有复杂注释的单一类型,表示这些数据成员属于哪个服务?这会很快变得笨拙,这甚至没有考虑您的业务对象将如何映射到此模型(即映射是否需要知道正在调用哪个端点?这很丑陋)。

所以只是:

public class EntityBase
{
    // basic details here
}
public class EntityDetails: EntityBase
{
    // more complex details initialised here
}

然后,可以针对这些终结点进行强类型化,可以共享映射逻辑,从而实现所需的目标。