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