【发布时间】:2019-01-29 14:01:26
【问题描述】:
假设我有一个包含如下属性的类:
ListOfObjectA;
对象A定义如下:
Class ObjectA:
Prop a
Prop b
ListOfObjectA(由 API 端点作为 DTO 返回)将在 UI 中呈现。
在某些情况下,列表中的特定 ObjectA 实例需要提供额外的支持信息(假设另一个对象 SubObjectA(一种复杂类型),这对于列表中的其他项目不常见),即n+1 例。
我正在尝试了解返回此信息的最佳方式,而不会让 DTO 被不必要的信息阻塞。
一种选择是将 SubObjectx 包含在 ObjectA 类本身中 - 当它为 null 或为空时,不要打扰以其他方式渲染它。我们会在需要的地方以编程方式填充它...
第二个选项可能是向 ObjectA 类添加一个 url 属性 - url 可以是空的,也可以指向一个端点以获取更多信息,然后可以呈现响应。
我个人反对第一个选项是 ListOfObjectA 中的每个对象将始终包含不相关的信息。我更喜欢第二个选项,因为它包含一个字符串(端点),即if 具有从何处获取子对象的值。但这也意味着 API 的客户端现在将编写一些逻辑来在需要时访问这些端点。
我想知道是否还有其他更好的方法可以做到这一点?
如果我解释情况的尝试不是很好,请问我一个问题。
【问题讨论】:
标签: c# api asp.net-core dto class-design