是否可以根据返回的端点返回一个类的不同 DataMembers?
从一个端点我只想返回一个类的一些基本数据成员,但从另一个端点我想返回同一个类的更详细的成员。
我的想法是我可以有一个基本类并派生另一个具有更详细信息的类并从不同的端点返回这些信息,但我也想知道是否有另一种方法可以实现?
你的建议完全合理。这些类无论如何都是 DTO(大概),它们的全部意义在于将您的业务模型与消息模型分离。如果你有两个消息模型,一个派生(或包含)另一个就可以了。
考虑一下,替代模型会是什么样子?具有复杂注释的单一类型,表示这些数据成员属于哪个服务?这将很快变得笨拙,甚至没有考虑您的业务对象将如何映射到这个模型(即映射是否需要知道正在调用哪个端点?这非常难看)。
所以就:
public class EntityBase
{
// basic details here
}
public class EntityDetails: EntityBase
{
// more complex details initialised here
}
然后您的端点可以针对这些进行强类型化,您可以共享映射逻辑,并实现您想要的。