Работа с сайтами SharePoint в Microsoft Graph
API SharePoint в Microsoft Graph поддерживает следующие основные сценарии:
- доступ к ресурсам site, list и drive (библиотекам документов) в SharePoint;
- доступ к ресурсам site только для чтения (без возможности создавать сайты);
- доступ на чтение и запись к ресурсам list, listItem и driveItem;
- Поддержка чтения и записи для SharePointSettings на уровне клиента
- обращение к ресурсам по идентификатору SharePoint, URL-адресу или относительному пути.
API SharePoint предоставляет три основных типа ресурсов:
Ниже показан пример ресурса listItem.
{
"fields": {
"Title": "Access card",
"Employee": "Ryan Gregg",
"EmployeeId": "10",
"CardSerial": "01235492",
"Alias": "RGregg",
"ID": 1,
"ContentType": "Item",
"Modified": "2016-09-19T23:15:25-07:00",
"Created": "2016-09-19T23:15:25-07:00"
},
"createdBy": {
"user": {
"id": "b757fdcb-0271-4807-b243-504139e4ba04",
"displayName": "Ryan Gregg"
}
},
"createdDateTime": "2016-09-20T06:15:25Z",
"eTag": "48e941c3-9515-4c48-9760-c07c90c79d48,1",
"id": "4",
"lastModifiedBy": {
"user": {
"id": "b757fdcb-0271-4807-b243-504139e4ba04",
"displayName": "Ryan Gregg"
}
},
"lastModifiedDateTime": "2016-09-20T06:15:25Z",
}
Ресурсы предоставляют данные тремя разными способами:
- Свойства (например, id и name) предоставляют простые значения.
- Аспекты (например, fields и createdBy) предоставляют сложные значения.
- Ссылки (например, items) указывают на коллекции других ресурсов.
Вы можете расширить ссылки в URL-адресе с помощью параметра запроса expand, например ?expand=fields
.
Вы можете запросить определенные свойства и аспекты с помощью параметра запроса select, например ?select=id,name
.
По умолчанию возвращается большая часть свойств и аспектов, при этом все ссылки скрыты.
Для повышения эффективности мы рекомендуем указывать операторы select и expand, чтобы возвращать только важные для вас данные.
Корневые ресурсы API SharePoint
Приведенные ниже примеры относятся к https://graph.microsoft.com/v1.0
.
Путь | Описание |
---|---|
/sites/root | Ресурс site по умолчанию для организации. |
/sites/{site-id} | Доступ к определенному ресурсу site с использованием его идентификатора. |
/sites/{site-id}/drive | Доступ к ресурсу drive (библиотеке документов) для указанного ресурса site, заданному по умолчанию. |
/sites/{site-id}/drives | Перечисление ресурсов drive (библиотек документов) для site. |
/sites/{site-id}/sites | Перечисление дочерних сайтов для ресурса site. |
/sites/{site-id}/lists | Перечисление ресурсов lists для ресурса site. |
/sites/{site-id}/lists/{list-id}/items | Перечисление ресурсов listItem для ресурса list. |
/groups/{group-id}/sites/root | Доступ к сайту группы для группы. |
/admin/sharepoint/settings | Получите доступ к параметрам уровня администратора организации. |
Сайты также можно адресовать по пути, используя имя узла SharePoint, за которым следует двоеточие и относительный путь к сайту. При необходимости можно вернуться к модели ресурсов, поместив в конец еще один двоеточие.
Путь | Описание |
---|---|
/sites/contoso.sharepoint.com:/teams/hr | Сайт, связанный с https://contoso.sharepoint.com/teams/hr |
/sites/contoso.sharepoint.com:/teams/hr:/drive | Доступ к ресурсу drive, заданному по умолчанию. |
Примечание, касающееся разработки решений для 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}
URL-адрес, созданный только с идентификатором siteCollection (SPSite
) указывает на корневой сайт (SPWeb
) в данном семействе веб-сайтов.
GET https://graph.microsoft.com/v1.0/sites/{spsite-id}
Сопоставление URL-адресов API REST версии 1 для SharePoint с URL-адресами API Microsoft Graph
Следующие примеры помогают разработчикам, знакомым с шаблонами URL-адресов REST API SharePoint версии 1, адаптировать свои варианты использования к аналогичным шаблонам URL-адресов API Microsoft Graph.
Шаблон 1
Доступ к сайту, связанному с указанным SPWeb
URL-адресом.
GET https://graph.microsoft.com/v1.0/sites/{hostname}:/{site-server-relative-url}
Пример 1
В следующем примере возвращаются сведения о сайте, связанном с URL-адресом SPWeb
https://contoso.sharepoint.com/teams/hr/benefits
. Обратите внимание, что benefits
является в SPWeb
семействе веб-сайтов (SPSite
) по адресу https://contoso.sharepoint.com/teams/hr
.
GET https://graph.microsoft.com/v1.0/sites/contoso.sharepoint.com:/teams/hr/benefits
Шаблон 2
Получите доступ к элементу списка, связанному со следующими компонентами.
Компонент | Описание |
---|---|
{hostname} | Имя узла сайта. |
{site-server-relative-url} | URL-адрес сайта(SPWeb ). |
{list-id} | Идентификатор GUID списка (SPList ) на сайте. |
{item-id} | Идентификатор GUID или целочисленный идентификатор элемента списка (SPListItem ) в списке. |
В следующем примере показан запрос, содержащий предыдущие компоненты.
GET https://graph.microsoft.com/v1.0/sites/{hostname}:/{site-server-relative-url}:/lists/{list-id}/items/{item-id}
Пример 2
В следующем примере возвращаются сведения о объекте SPListItem
с целочисленным идентификатором 42
, который принадлежит к списку с идентификатором 5771e865-4e91-48b8-a0de-35a25d4e52fe
GUID . Этот список относится к сайту, связанному с URL-адресом SPWeb
https://contoso.sharepoint.com/teams/hr/benefits
.
GET https://graph.microsoft.com/v1.0/sites/contoso.sharepoint.com:/teams/hr/benefits:/lists/5771e865-4e91-48b8-a0de-35a25d4e52fe/items/42