運行此查詢:“ https://someurl.com/graph/users/%24myuser%40myorg.org/licenseDetails ?$select=skuId,skuPartNumber”結果是:“請求 URI 無效。由于段“users”引用一個集合,因此這必須是請求 URI 中的最后一個段,或者它后面必須跟有可以綁定到它的函數(shù)或操作,否則所有中間段都必須引用單個資源”經(jīng)過一番嘗試后,我設法通過在 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條經(jīng)驗 獲得超11個贊
OData URL 中的前綴$
通常表示您將要使用系統(tǒng)查詢選項,例如$filter
、$select
或$expand
。這可能會導致您的密鑰被這樣解釋。
由于您使用實體鍵來訪問特定實體,然后導航到其導航屬性之一,因此您通??梢灾苯釉趯嶓w的括號內(nèi)提供鍵。當您沒有組合鍵時,這很簡單,如下所示:
/users('my-key-value')
然后,您可以按照您之前嘗試的相同方式展開特定的導航屬性并選擇特定的屬性(假設實現(xiàn)符合此要求),從而導致
/users('$myuser@myorg.org')/licenseDetails?$select=skuId,skuPartNumber

拉丁的傳說
TA貢獻1789條經(jīng)驗 獲得超8個贊
回答逃跑的問題——是的,這是可能的。如果你$
在前面添加另一個,它就會逃逸,并且你在操作中獲得的值應該是只有一個的值。
/users/$$myuser@myord.org
- 3 回答
- 0 關注
- 172 瀏覽
添加回答
舉報
0/150
提交
取消