Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/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
url中的ODATA$expand和$select查询_Url_Odata - Fatal编程技术网

url中的ODATA$expand和$select查询

url中的ODATA$expand和$select查询,url,odata,Url,Odata,是的,我知道,人们总是问这个问题。但我在寻找问题的答案,我所看到的一切都是相同的解释,但对我来说仍然不起作用。解释 例如,在Northwind服务上(在使用我的工作服务之前,我使用它进行培训,因为它很简单): 如果我这样做 ?$select=类别名称 ?$expand=产品 它起作用了 但是如果我想做:?$expand=Products($select=ProductName)(因为Products中有一个ProductName属性)。。。它不起作用。我有一个错误:位置9的语法错误。“位置

是的,我知道,人们总是问这个问题。但我在寻找问题的答案,我所看到的一切都是相同的解释,但对我来说仍然不起作用。解释

例如,在Northwind服务上(在使用我的工作服务之前,我使用它进行培训,因为它很简单):

如果我这样做

  • ?$select=类别名称
  • ?$expand=产品
它起作用了

但是如果我想做:?$expand=Products($select=ProductName)(因为Products中有一个ProductName属性)。。。它不起作用。我有一个错误:位置9的语法错误。“位置9”对应于第一个括号


然而,我在StackOverflow论坛上看到的一切都是这样的。我错了什么?

这是受支持的,您引用的是一个旧的示例服务,它是v2,您可以执行类似于此的请求,它基于协议v4, ?$expand=Trips($select=TripId,Name)

它工作得很好


顺便说一句,这个示例服务是基于一些处于维护模式的技术构建的,如果您开始构建一个新的服务,我们建议您使用RESTier,参考odata.github.io/RESTier/或者使用odata web Api库,参考odata.github.io/WebApi

这是受支持的,您参考的是一个旧的示例服务,它是v2,您可以执行这样的请求,它基于v4协议, ?$expand=Trips($select=TripId,Name)

它工作得很好


顺便说一句,这个示例服务是基于一些处于维护模式的技术构建的,如果您开始构建一个新的服务,我们建议您使用RESTier,请参阅odata.github.io/RESTier/或使用odata web Api库,请参阅我找到的odata.github.io/WebApi

。在ODataV2中,我们需要展开要显示的实体,然后用相对于基础实体的路径从括号中选择

例如:

?$expand=Products&$select=Products/ProductName


毕竟没那么奇怪…

我发现了。在ODataV2中,我们需要展开要显示的实体,然后用相对于基础实体的路径从括号中选择

例如:

?$expand=Products&$select=Products/ProductName


毕竟这并不奇怪…

谢谢你,但实际上,我的工作的odata服务可能是V2,这种类型的请求不起作用。。。这就是我在Northwind V2上培训的原因:/IMO,您应该根据实际的API进行培训,特别是对于简单的无影响的
GET
请求,您将从中获得更多,odata.org只是一个示例实现,并没有完全实现规范支持的所有查询选项。这在v4中尤其如此,但也可以很容易地应用于以前的版本。谢谢,但实际上,我的作业的odata服务可能是V2,这种类型的请求不起作用。。。这就是我在Northwind V2上培训的原因:/IMO,您应该根据实际的API进行培训,特别是对于简单的无影响的
GET
请求,您将从中获得更多,odata.org只是一个示例实现,并没有完全实现规范支持的所有查询选项。v4尤其如此,但也可以很容易地应用于以前的版本。