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