将子数据作为 Rest URL (REST API) 格式返回的最佳做法

本文关键字:返回 格式 最佳 API REST 数据 Rest URL | 更新日期: 2023-09-27 18:32:42

我正在使用WCF-RestAPI开发API。我遇到了一个问题,我们的 GET 返回了子实体(数据协定)中包含的太多信息。我们决定改为返回一个 URL,应该访问该 URL 以获取子实体。

例如;

{
  "date": "2014-12-01T00:00:00Z",
  "contractor": {
    "contractorReference": "DEFREF",
    "contractorName": "Default Supplier",
    "mainTelephone": "123456789",
    "mainAddress": {
      "fullAddress": "Default Supplier Street DefaultTown United Kingdom"
    },
    "mainFax": null,
    "webAddress": null,
    "comment": null
  },
  "moreinfo": "data"
}

会变成类似的东西

{
  "date": "2014-12-01T00:00:00Z",
  "contractor": "https://rest-api/contractor/{id}",
  "moreinfo": "data"
}

REST API中是否内置了任何内容或标准方法?我正在考虑在数据协定上创建一个可能名为"IsLinkable"的属性,并在序列化的操作过滤器上选择它。不确定这是最好的解决方案。

将子数据作为 Rest URL (REST API) 格式返回的最佳做法

我没有找到任何内置到框架中的东西可以开箱即用。我通过将子数据协定替换为用于保存 URL 的字符串属性来解决这个问题。然后,将使用数据协定本身的反射和属性来构建这些内容。

即我有一个属性,其中包含子实体的唯一标识符(例如 UserId),我在属性中指定了该标识符以及路由。(例如用户/{id}) 。然后,我设置了一个操作过滤器,该过滤器将在将填充的数据协定返回给用户之前执行,这将使用上述方法构建URL。