在url中使用ODATA $ expand和$ select查询

时间:2016-06-23 10:22:20

标签: url odata

是的,我知道,这个问题总是被问到。但我找到了问题的答案,我所看到的一切都是相同的解释,但它仍然不适合我。解释。

例如在Northwind服务上(我用它来训练,因为它很简单,在使用我的工作服务之前):https://services.odata.org/V2/Northwind/Northwind.svc/

如果我这样做

有效。

但是如果我想这样做:https://services.odata.org/V2/Northwind/Northwind.svc/Categories?$ expand =产品($ select = ProductName)(因为产品中有ProductName属性)...它没有&#39工作。我有错误:位置9的语法错误。那个"位置9"对应于第一个括号。

但是,我在http://odata.org/documentation和StackOverflow论坛上看到的所有内容都表明应该是这样的。我错了什么?

2 个答案:

答案 0 :(得分:2)

我找到了。在odata v2中,我们需要扩展我们想要显示的实体,然后选择括号内的相对于基础实体的路径。

示例:

https://services.odata.org/V2/Northwind/Northwind.svc/Categories $扩大=产品及安培; $选择=产品/产品名称

毕竟不是那么奇怪......

答案 1 :(得分:1)

这是支持的,你指的是一个旧的示例服务,它是v2,你可以做这样的请求,这是基于协议v4的, http://services.odata.org/V4/(S(ax34fkajuohvk1aw5pjzykjk))/TripPinServiceRW/People?$扩大=跳闸($选择= TRIPID,名称)

效果很好。

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