API Graph - обновление полей библиотеки SharePoint после загрузки с диска - PullRequest
0 голосов
/ 21 октября 2019

Я загружаю файлы через API Graph Graph Rest для SharePoint Online. Я использую API Drive Drive для передачи файлов в библиотеку документов, но я не вижу простого способа установить значения полей в файле после или во время загрузки. Изучая документацию по API, выясняется, что вы можете использовать API списков для обновления / установки полей, но сначала вам нужно найти идентификатор объекта списка (файла), а затем выполнить исправление для обновления полей. Мне интересно, если есть метод, который использует идентификатор файла или какой-либо другой тег, который я получаю из загрузки, чтобы легко установить значения полей?

Я использую следующее для загрузки:

PUT /sites/{site-id}/drive/items/{parent-id}:/{filename}:/content

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

GET https://graph.microsoft.com/v1.0/sites/{site-id}/lists/{list-id}/items
PATCH https://graph.microsoft.com/v1.0/sites/{site-id}/lists/{list-id}/items/{item-id}/fields

Редактировать сообщение ответа:

Вы можетеполучить значение идентификатора списка, пройдя через отношение приводного объекта.

GET /sites/{site-id}/drive/items/{item-id}/ListItem

1 Ответ

1 голос
/ 22 октября 2019

Элемент в библиотеке документов SharePoint - это связанный элемент, состоящий из DriveItem и ListItem. Ваш PUT-запрос возвращает созданный DriveItem. Каждый DriveItem имеет свойство listItem, которое содержит связанный ListItem. Вы можете использовать идентификатор свойства связанного элемента listItem для непосредственного обновления элемента без поиска элемента ListItem. Сначала загрузите документ и дождитесь ответа:

var driveItem = PUT /sites/{site-id}/drive/items/{parent-id}:/{filename}:/content

Затем получите идентификатор элемента ListItem:

var listItemId = driveItem.ListItem.Id

Затем обновите ListItem:

PATCH https://graph.microsoft.com/v1.0/sites/{site-id}/lists/{list-id}/items/{listItemId}/fields

Пока что я не нашел более простого способа сделать это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...