Поделиться через


Работа с ресурсами сайтов SharePoint

API SharePoint в Microsoft Graph поддерживает следующие основные сценарии:

  • доступ к ресурсам site, list и drive (библиотекам документов) в SharePoint;
  • доступ к ресурсам site только для чтения (без возможности создавать сайты);
  • доступ на чтение и запись к ресурсам list, listItem и driveItem;
  • обращение к ресурсам по идентификатору SharePoint, URL-адресу или относительному пути.

API SharePoint предоставляет три основных типа ресурсов:

Задачи

Все приведенные ниже примеры относятся к https://graph.microsoft.com/v1.0.

Имя задачи Пример запроса
Получение корневого сайта GET /sites/root
Получение сайта GET /sites/{site-id}
Получение сайта по пути GET /sites/{hostname}:/{site-path}
Получение сайта для группы GET /groups/{group-id}/sites/root
Поиск сайтов GET /sites?search={query}
Доступ к библиотеке документов по умолчанию для сайта GET /sites/{site-id}/drive
Перечисление коллекции библиотек документов на сайте GET /sites/{site-id}/drives
Перечисление списков на сайте GET /sites/{site-id}/lists
Перечисление корневых сайтов GET /sites?filter=root ne null&select=siteCollection,webUrl
Поиск сайтов GET /sites?search={query}

Сайты также можно адресовать по пути, используя имя узла SharePoint, за которым следует двоеточие и относительный путь к сайту. При необходимости можно вернуться к модели ресурсов, поместив в конец еще один двоеточие.

Путь Описание
/sites/contoso.sharepoint.com:/teams/hr Сайт, связанный с https://contoso.sharepoint.com/teams/hr
/sites/contoso.sharepoint.com:/teams/hr:/drive Доступ к ресурсу drive, заданному по умолчанию для этого сайта.

Представление в формате JSON

Ниже показано представление ресурса site в формате JSON.

Ресурс site является производным от ресурса baseItem и наследует его свойства.

{
  "id": "string",
  "root": { "@odata.type": "microsoft.graph.root" },
  "sharepointIds": { "@odata.type": "microsoft.graph.sharepointIds" },
  "siteCollection": {"@odata.type": "microsoft.graph.siteCollection"},
  "displayName": "string",

  /* relationships */
  "contentTypes": [ { "@odata.type": "microsoft.graph.contentType" }],
  "drive": { "@odata.type": "microsoft.graph.drive" },
  "drives": [ { "@odata.type": "microsoft.graph.drive" }],
  "items": [ { "@odata.type": "microsoft.graph.baseItem" }],
  "lists": [ { "@odata.type": "microsoft.graph.list" }],
  "sites": [ { "@odata.type": "microsoft.graph.site"} ],
  "columns": [ { "@odata.type": "microsoft.graph.columnDefinition" }],

  /* inherited from baseItem */
  "name": "string",
  "createdDateTime": "datetime",
  "description": "string",
  "eTag": "string",
  "lastModifiedDateTime": "datetime",
  "webUrl": "url"
}

Свойства

Имя свойства Тип Описание
id string Уникальный идентификатор элемента. Только для чтения.
createdDateTime DateTimeOffset Дата и время создания элемента. Только для чтения.
description string Текст с описанием сайта.
eTag string ETag для элемента. Только для чтения.
displayName string Полное название сайта. Только для чтения.
lastModifiedDateTime DateTimeOffset Дата и время последнего изменения элемента. Только для чтения.
name string Имя или название элемента.
root root Если это свойство присутствует, оно указывает на то, что сайт — корневой в семействе веб-сайтов. Только для чтения.
sharepointIds sharepointIds Возвращает идентификаторы, использующиеся для обеспечения совместимости с SharePoint REST. Только для чтения.
siteCollection siteCollection Предоставляет сведения о семействе веб-сайтов сайта. Доступно только на корневом сайте. Только для чтения.
webUrl строка (url-адрес) URL-адрес для отображения элемента в браузере. Только для чтения.

Связи

Имя связи Тип Описание
columns Collection(columnDefinition) Коллекция определений столбцов, которые можно повторно использовать в разных списках на этом сайте.
contentTypes Collection(contentType) Коллекция типов контента, определенных для этого сайта.
drive drive Диск по умолчанию (библиотека документов) для этого сайта.
drives Collection(drive) Коллекция дисков (библиотек документов) на этом сайте.
items Collection(baseItem) Используется для адресации любого элемента, содержащегося на этом сайте. Вам не удастся выполнить перечисление этой коллекции.
lists Collection(list) Коллекция списков на этом сайте.
sites Collection(site) Коллекция дочерних сайтов этого сайта.

Примечание, касающееся разработки решений для SharePoint

API SharePoint в Microsoft Graph имеет ряд ключевых отличий от API CSOM. Ресурс site сопоставляется с SPWeb. Корневой ресурс site (SPWeb) в семействе веб-сайтов имеет аспект siteCollection, содержащий сведения о SPSite. Идентификаторы сайтов уникальны только в пределах одного семейства веб-сайтов. Поэтому чтобы обратиться к сайту по его идентификатору, необходимо указать два идентификатора — для семейства веб-сайтов и для самого сайта.

GET https://graph.microsoft.com/v1.0/sites/{hostname},{spsite-id},{spweb-id}/

URL-адрес, содержащий только имя узла, будет указывать на корневой сайт (SPWeb) в семействе веб-сайтов по умолчанию.

GET https://graph.microsoft.com/v1.0/sites/{hostname}

URL-адрес, содержащий только имя узла и идентификатор siteCollection (SPSite), будет указывать на корневой сайт (SPWeb) в указанном семействе веб-сайтов.

GET https://graph.microsoft.com/v1.0/sites/{hostname},{spsite-id}