将子数据作为 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"的属性,并在序列化的操作过滤器上选择它。不确定这是最好的解决方案。
我没有找到任何内置到框架中的东西可以开箱即用。我通过将子数据协定替换为用于保存 URL 的字符串属性来解决这个问题。然后,将使用数据协定本身的反射和属性来构建这些内容。
即我有一个属性,其中包含子实体的唯一标识符(例如 UserId),我在属性中指定了该标识符以及路由。(例如用户/{id}) 。然后,我设置了一个操作过滤器,该过滤器将在将填充的数据协定返回给用户之前执行,这将使用上述方法构建URL。