运行此查询:“ https://someurl.com/graph/users/%24myuser%40myorg.org/licenseDetails ?$select=skuId,skuPartNumber”结果是:“请求 URI 无效。由于段“users”引用一个集合,因此这必须是请求 URI 中的最后一个段,或者它后面必须跟有可以绑定到它的函数或操作,否则所有中间段都必须引用单个资源”经过一番尝试后,我设法通过在 myuser 之前添加第二个美元符号 (%24) 来使其工作。这似乎记录很少,即使在这里https://docs.oasis-open.org/odata/odata/v4.0/errata02/os/complete/abnf/odata-abnf-construction-rules.txt。是否有 ac# 库可以正确转义 odata 的给定文字字符串,而不是每个人不时手动遇到问题?难道不应该针对这些似乎没有记录的特殊情况改进文档吗?
3 回答
繁星淼淼
TA贡献1775条经验 获得超11个赞
OData URL 中的前缀$
通常表示您将要使用系统查询选项,例如$filter
、$select
或$expand
。这可能会导致您的密钥被这样解释。
由于您使用实体键来访问特定实体,然后导航到其导航属性之一,因此您通常可以直接在实体的括号内提供键。当您没有组合键时,这很简单,如下所示:
/users('my-key-value')
然后,您可以按照您之前尝试的相同方式展开特定的导航属性并选择特定的属性(假设实现符合此要求),从而导致
/users('$myuser@myorg.org')/licenseDetails?$select=skuId,skuPartNumber
拉丁的传说
TA贡献1789条经验 获得超8个赞
回答逃跑的问题——是的,这是可能的。如果你$
在前面添加另一个,它就会逃逸,并且你在操作中获得的值应该是只有一个的值。
/users/$$myuser@myord.org
- 3 回答
- 0 关注
- 142 浏览
添加回答
举报
0/150
提交
取消