我在使用服務器端分頁時遇到問題,根據this page中的信息,利用@odata.nextlink
從Microsoft Graph中獲取下一頁數據。我正在使用原始GET,在標題中設置授權標記(即,我沒有使用語言API,我正在使用curl從PowerShell中嘗試此操作)。我已經從下面的代碼片段中清除了敏感數據,並用x代替了它們,但希望有問題的信息能夠通過。Microsoft Graph NextLink不工作
對於第一個GET,我查詢與
https://graph.microsoft.com/beta/drives/b!Gxxxxx-xxxxxxge/root:/ReallyBigFolder:/children?top=200
和我得到200個項目的迴應,符合市場預期。在此響應的@odata.nextlink
場
https://graph.microsoft.com/beta/drives/b!Gxxxxx-xxxxxxge/root/children?top=200&$skiptoken=Paged%3dTRUE%26p_SortBehavior%3d0%26p_FileLeafRef%3d279%252ezip%26p_ID%3d208%26p_FileDirRef%3dMaintenance%2520Department%252fReallyBigFolder%26RootFolder%3dMaintenance%2520Department%252fReallyBigFolder
對於上面鏈接的微軟圖形文檔中的例子中,$skiptoken=...
部分具有隨機找數字,但我有$skiptoken=Paged=TRUE&etc
。自文檔寫入以來API可能已經改變了響應,或者我的完全不正確。
我從文檔的理解是,我應該能夠使用這個URL作爲一個不透明的值,並從圖形API(當然有auth令牌)獲得它,而無需修改。然而,當我這樣做,響應
{"@odata.context":"https://graph.microsoft.com/beta/$metadata#drives('b%21Gxxxxx-xxxxxxge')/root/children","value":[]}
在哪裏,我在期待獲得中列出的其他200個文件,沒有文件返回可言的,它出現在路走了,指着寧根比它本來應該是的子文件夾。
我也試過這Graph Explorer與/beta
和/v1.0
端點,它也以同樣的方式失敗。
我哪裏錯了?
編輯調試細節:注意:圖形瀏覽器似乎沒有顯示標題中的日期字段,所以我使用Postman Chrome插件來獲取這些值。
首先GET請求是
beta/drives/b!xxx-xxxge/root:/Really%20Big%20Folder/ReallyBigFolder:/children
隨着響應頭
Cache-Control →private
Content-Encoding →gzip
Content-Type →application/json;odata.metadata=minimal;odata.streaming=true;IEEE754Compatible=false;charset=utf-8
Date →Fri, 26 May 2017 19:07:54 GMT
Duration →2033.3889
OData-Version →4.0
Transfer-Encoding →chunked
Vary →Accept-Encoding
client-request-id →6faf5d1d-a291-410a-b269-f4667187d7cb
request-id →6faf5d1d-a291-410a-b269-f4667187d7cb
x-ms-ags-diagnostic →{"ServerInfo":{"DataCenter":"North Central US","Slice":"SliceB","ScaleUnit":"002","Host":"AGSFE_IN_11","ADSiteName":"CHI"}}
和NEXTLINK(出於安全略微模糊)
https://graph.microsoft.com/beta/drives/b!xxx-xxxge/root/children?$skiptoken=Paged%3dTRUE%26p_SortBehavior%3d0%26p_FileLeafRef%3d279%252ezip%26p_ID%3d208%26p_FileDirRef%3dGSH%2520Test%252fMaintenance%2520Department%252fReally%2520Big%2520Folder%252fReallyBigFolder%26RootFolder%3d%252fGSH%2520Test%252fMaintenance%2520Department%252fReally%2520Big%2520Folder%252fReallyBigFolder
繼NEXTLINK產生省略報頭(不變標頭):
Date →Fri, 26 May 2017 19:15:17 GMT
Duration →512.9537
client-request-id →6ba61712-a423-4bc8-9376-cc62bf854329
request-id →6ba61712-a423-4bc8-9376-cc62bf854329
x-ms-ags-diagnostic →{"ServerInfo":{"DataCenter":"North Central US","Slice":"SliceA","ScaleUnit":"001","Host":"AGSFE_IN_7","ADSiteName":"CHI"}}
並導致身體:
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#drives('b%21xxxx-xxxxge')/root/children",
"value": []
}
您可以在MS Graph中得到的響應中包含「Request-ID」標題和「Date」標題的值嗎?這將使我們能夠查看日誌並瞭解這裏發生了什麼。 –
@RyanGregg對問題進行編輯時包含的標題信息。 –
謝謝亞當。我已經能夠確認nextLink如何返回查詢到/ drives/path的錯誤。對/我/驅動器的查詢正常工作。我們正在修復。 –