【问题标题】:New DTO or Field Selector for API?API 的新 DTO 或字段选择器?
【发布时间】:2017-10-04 09:17:05
【问题描述】:

我正在开发新的 API,但我无法选择启用 Projection 支持。

我的实体User 包含一些属性,也有一些关系。

API 的首选方法应该是什么?

方法1

myApi.com/User/Fields="Id,Name,Email"

它返回我的UserDTO,只填充IdNameEmail,其余属性为空(在序列化 JSON 以通过网络发送之前,我可以进一步忽略空)

方法2

myApi.com/User/GetCustomPropertiesABC"

它返回我的 UserCustomABCDTO 。此模型仅包含 IdNameEmail 的三个属性。

我的问题

我个人觉得方法 1 为 API 提供了更多的重用商,每次方法 2 所需的新选择器都需要创建一个新的 DTO,但是根据 REST 原则,标准是什么?

【问题讨论】:

    标签: rest asp.net-web-api


    【解决方案1】:

    好吧,您可以为此使用 ODATA,它实际上非常适合:http://www.odata.org/

    或者,您可以创建一个端点,该端点接受类似于您的方法 1 的请求并返回动态。这样您就不必担心创建 DTO,您只需创建一个新的动态对象,添加所需的任何属性并返回即可。

    这使返回的实体保持较小,因为它避免了谁知道有多少 null 或空属性并没有真正添加任何有用的东西。

    【讨论】:

      猜你喜欢
      • 2012-06-05
      • 2013-07-24
      • 1970-01-01
      • 2015-08-17
      • 1970-01-01
      • 2019-08-16
      • 1970-01-01
      • 2019-12-16
      • 1970-01-01
      相关资源
      最近更新 更多