404 Получено при получении дельты

Начиная с прошлых выходных я начал получать HTTP 404 ответы при запросе списка изменений для диска.

Сначала я гарантирую, что диск существует:

ПОЛУЧИТЬ:

https://SOMEURL/sites/ASITENAME/_api/v2.0/drives/{id}/root

Отклик:

{
  <SNIP>
    "id": "01JGC6XP56Y2GOVW7725BZO354PWSELRRZ",
    "lastModifiedDateTime": "2017-08-05T22:16:24Z",
    "name": "root",
    "parentReference": {
        "driveId": "b!n5c5t3PkRUiChm70bDc96e2yqnYltoJLq6IT5lxQYDZqi7UosRqoRa_3kgIU8qaV",
        "driveType": "documentLibrary"
    },
       "folder": {
        "childCount": 5
    },
    "root": {},
    "size": 0
}

Так как это существует, я думаю, что я смогу получить список изменений для него. Я пытаюсь получить список изменений для этого диска, используя API-интерфейс диска.

Получить:

https://SOMEURL/sites/ASITENAME/_api/v2.0/drives/{id}/root/view.delta?token=3;%234;%231;3;28b58b6a-1ab1-45a8-aff7-920214f2a695;636434930370000000;67434848;%23;%23;%230

Отклик:

SPRequestGuid →b972249e-e00a-4000-8ed0-963ef7dba0e6
{
    "error": {
        "code": "itemNotFound",
        "message": "The resource could not be found."
    }
}

Ничего не найдено, что кажется мне неправильным. Проверяя документы, похоже, формат изменился

Использование последней документации OneDrive (delta вместо view.delta)

Получить:

https://SOMEURL/sites/ASITENAME/_api/v2.0/drives/{id}/root/delta?token=3;%234;%231;3;28b58b6a-1ab1-45a8-aff7-920214f2a695;636434930370000000;67434848;%23;%23;%230

Отклик:

SPRequestGuid →cf72249e-c0f7-4000-8ed0-97bf0cfaa584
{
    "error": {
        "code": "itemNotFound",
        "message": "The resource could not be found."
    }
}

С помощью /delta с token=latest

ПОЛУЧИТЬ:

https://SOMEURL/sites/ASITENAME/_api/v2.0/drives/{id}/root/delta?token=latest

Отклик:

SPRequestGuid →eb72249e-e08d-4000-8ed0-94ad25d9e424
{
    "@odata.context": "https://SOMEURL/sites/ASITENAME/_api/v2.0/$metadata#items",
    "@odata.deltaLink": "https://SOMEURL/sites/ASITENAME/_api/v2.0/drives/{id}/root/view.delta(token='3;%234;%231;3;28b58b6a-1ab1-45a8-aff7-920214f2a695;636440196145030000;67696039;%23;%23;%230')",
    "@delta.token": "3;%234;%231;3;28b58b6a-1ab1-45a8-aff7-920214f2a695;636440196145030000;67696039;%23;%23;%230",
    "value": []
}

Давайте попробуем Microsoft Graph API, чтобы увидеть, есть ли разница:

Использование Microsoft Graph API:

ПОЛУЧИТЬ: https://graph.microsoft.com/v1.0/drives/{id}/root/delta

ОТВЕТ:

client-request-id →34978ae4-57cf-44c2-b5aa-05b8271ab070
request-id →34978ae4-57cf-44c2-b5aa-05b8271ab070
x-ms-ags-diagnostic →{"ServerInfo":{"DataCenter":"East US","Slice":"SliceA","ScaleUnit":"003","Host":"AGSFE_IN_1","ADSiteName":"EST"}}
{
    "error": {
        "code": "itemNotFound",
        "message": "The resource could not be found.",
        "innerError": {
            "request-id": "dc105a6d-8f37-4865-bede-cbd875729af7",
            "date": "2017-10-19T14:26:47"
        }
    }
}

Я нашел одну публичную проблему, которая кажется очень похожей на то, что я испытываю.

Мои вопросы:

  1. Является /view.delta сейчас считается устаревшим?

  2. Если я могу получить диск, в одном случае я должен получить 404 при запросе дельты?

  3. Почему используется ?token=latest вернуть данные, но без этого 404 возвращается?

2 ответа

Это определенно регрессия в поведении, которая запускается для библиотек документов, в которых есть обязательные столбцы или столбцы с формулой проверки. Мы работаем над исправлением и развернем его как можно скорее.

Вы должны поставить перед конечной точкой префикс OneDrive. Пространство имен (вы можете прочитать Direct Endpoint Differences: Пространства имен для деталей).

Так что для конечной точки Delta, а не для вызова:

/_api/v2.0/drives/{id}/root/delta

Попробуйте позвонить

/_api/v2.0/drives/{id}/root/oneDrive.delta

Я, однако, немного смущен в отношении примера Microsoft Graph. Синтаксис для вашего звонка (/v1.0/drives/{id}/root/delta) верно.

Другие вопросы по тегам