Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将子数据合约作为Rest URL(Rest API)返回的最佳实践_C#_.net_Wcf_Wcf Rest - Fatal编程技术网

C# 将子数据合约作为Rest URL(Rest API)返回的最佳实践

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

我正在使用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"
}

RESTAPI中有内置的东西吗,或者有一种标准的方法来实现这一点吗?我正在考虑在数据协定上创建一个可能名为“IsLinkable”的属性,并在序列化的操作过滤器上获取该属性。不过,我不确定这是否是最好的解决方案。

我没有发现任何内置到框架中的东西可以开箱即用。。我绕过了这个问题,用字符串属性替换子数据契约来保存URL。然后,将使用数据契约本身上的反射和属性来构建它们


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

面临同样的问题。你找到解决办法了吗?请看我的答案,希望有帮助。