C# 将子数据合约作为Rest URL(Rest API)返回的最佳实践
我正在使用WCF RestAPI开发一个API。我遇到了一个问题,GET返回的子实体(数据契约)中包含的信息太多。我们决定返回一个URL,该URL应该被访问以获取子实体 比如说,C# 将子数据合约作为Rest URL(Rest API)返回的最佳实践,c#,.net,wcf,wcf-rest,C#,.net,Wcf,Wcf Rest,我正在使用WCF RestAPI开发一个API。我遇到了一个问题,GET返回的子实体(数据契约)中包含的信息太多。我们决定返回一个URL,该URL应该被访问以获取子实体 比如说, { "date": "2014-12-01T00:00:00Z", "contractor": { "contractorReference": "DEFREF", "contractorName": "Default Supplier", "mainTelephone": "12345
{
"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"
}
RESTAPI中有内置的东西吗,或者有一种标准的方法来实现这一点吗?我正在考虑在数据协定上创建一个可能名为“IsLinkable”的属性,并在序列化的操作过滤器上获取该属性。不过,我不确定这是否是最好的解决方案。我没有发现任何内置到框架中的东西可以开箱即用。。我绕过了这个问题,用字符串属性替换子数据契约来保存URL。然后,将使用数据契约本身上的反射和属性来构建它们
i、 e.我有一个属性,该属性包含子实体的唯一标识符(例如UserId),我在属性中随路由一起指定了该标识符。。(例如用户/{id})。然后,我设置了一个操作过滤器,该过滤器将在将填充的数据契约返回给用户之前执行,这将使用上述方法构建URL。面临同样的问题。你找到解决办法了吗?请看我的答案,希望有帮助。