Работа со списками и элементами списков с использованием REST

Совет

Служба REST в SharePoint Online (а также локальной среде SharePoint 2016 или более поздней версии) поддерживает объединение нескольких запросов в один вызов службы с помощью параметра запроса OData $batch. Подробные сведения и ссылки на примеры кода см. в статье Отправка пакетных запросов с помощью интерфейсов REST API.

Предварительные требования

В этой статье предполагается, что вы уже ознакомились со статьями Знакомство со службой REST для SharePoint и Выполнение базовых операций с использованием конечных точек REST в SharePoint. Здесь не представлены фрагменты кода.

Получение списков и свойств списков с помощью REST

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

GET https://{site_url}/_api/web/lists(guid'{list_guid}')
Authorization: "Bearer " + accessToken
Accept: "application/json;odata=verbose"

Примечание.

Если вы хотите получить отклик в формате JSON, укажите application/json;odata=verbose в заголовке Accept.

Если вы хотите получить отклик в формате Atom, укажите application/atom+xml в заголовке Accept.

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

GET https://{site_url}/_api/web/lists/GetByTitle('List Title')
Authorization: "Bearer " + accessToken
Accept: "application/json;odata=verbose"

Ниже показан пример свойств списка, которые возвращаются при запросе типа контента XML.

<content type="application/xml">
  <m:properties>
    <d:AllowContentTypes m:type="Edm.Boolean">true</d:AllowContentTypes>
    <d:BaseTemplate m:type="Edm.Int32">100</d:BaseTemplate>
    <d:BaseType m:type="Edm.Int32">0</d:BaseType>
    <d:ContentTypesEnabled m:type="Edm.Boolean">false</d:ContentTypesEnabled>
    <d:Created m:type="Edm.DateTime">2012-06-26T23:15:58Z</d:Created>
    <d:DefaultContentApprovalWorkflowId m:type="Edm.Guid">00000000-0000-0000-0000-000000000000</d:DefaultContentApprovalWorkflowId>
    <d:Description>A list created by Project Based Retention used to store Project Policy Items.</d:Description>
    <d:Direction>none</d:Direction>
    <d:DocumentTemplateUrl m:null="true" />
    <d:DraftVersionVisibility m:type="Edm.Int32">0</d:DraftVersionVisibility>
    <d:EnableAttachments m:type="Edm.Boolean">true</d:EnableAttachments>
    <d:EnableFolderCreation m:type="Edm.Boolean">false</d:EnableFolderCreation>
    <d:EnableMinorVersions m:type="Edm.Boolean">false</d:EnableMinorVersions>
    <d:EnableModeration m:type="Edm.Boolean">false</d:EnableModeration>
    <d:EnableVersioning m:type="Edm.Boolean">false</d:EnableVersioning>
    <d:EntityTypeName>ProjectPolicyItemList</d:EntityTypeName>
    <d:ForceCheckout m:type="Edm.Boolean">false</d:ForceCheckout>
    <d:HasExternalDataSource m:type="Edm.Boolean">false</d:HasExternalDataSource>
    <d:Hidden m:type="Edm.Boolean">true</d:Hidden>
    <d:Id m:type="Edm.Guid">74de3ff3-029c-42f9-bd2a-1e9463def69d</d:Id>
    <d:ImageUrl>/_layouts/15/images/itgen.gif</d:ImageUrl>
    <d:IrmEnabled m:type="Edm.Boolean">false</d:IrmEnabled>
    <d:IrmExpire m:type="Edm.Boolean">false</d:IrmExpire>
    <d:IrmReject m:type="Edm.Boolean">false</d:IrmReject>
    <d:IsApplicationList m:type="Edm.Boolean">false</d:IsApplicationList>
    <d:IsCatalog m:type="Edm.Boolean">false</d:IsCatalog>
    <d:IsPrivate m:type="Edm.Boolean">false</d:IsPrivate>
    <d:ItemCount m:type="Edm.Int32">0</d:ItemCount>
    <d:LastItemDeletedDate m:type="Edm.DateTime">2012-06-26T23:15:58Z</d:LastItemDeletedDate>
    <d:LastItemModifiedDate m:type="Edm.DateTime">2012-06-26T23:15:59Z</d:LastItemModifiedDate>
    <d:ListItemEntityTypeFullName>SP.Data.ProjectPolicyItemListItem</d:ListItemEntityTypeFullName>
    <d:MultipleDataList m:type="Edm.Boolean">false</d:MultipleDataList>
    <d:NoCrawl m:type="Edm.Boolean">true</d:NoCrawl>
    <d:ParentWebUrl>/</d:ParentWebUrl>
    <d:ServerTemplateCanCreateFolders m:type="Edm.Boolean">true</d:ServerTemplateCanCreateFolders>
    <d:TemplateFeatureId m:type="Edm.Guid">00bfea71-de22-43b2-a848-c05709900100</d:TemplateFeatureId>
    <d:Title>Project Policy Item List</d:Title>
  </m:properties>
</content>

Примечание.

Свойство ListItemEntityTypeFullName (SP.Data.ProjectPolicyItemListItem в предыдущем примере) особенно важно при создании и обновлении элементов списка. Это значение должно быть передано как свойство type в метаданные, которые вы передаете в тексте HTTP-запроса всякий раз при создании и обновлении элементов списка.

Работа со списками с помощью REST

В приведенном ниже примере показано, как создать список.

POST https://{site_url}/_api/web/lists
Authorization: "Bearer " + accessToken
Accept: "application/json;odata=verbose"
Content-Type: "application/json"
Content-Length: {length of request body as integer}
X-RequestDigest: "{form_digest_value}"

{
  "__metadata": {
    "type": "SP.List"
  },
  "AllowContentTypes": true,
  "BaseTemplate": 100,
 "ContentTypesEnabled": true,
 "Description": "My list description",
 "Title": "Test"
}

В приведенном ниже примере показано, как обновить список, используя метод MERGE.

POST https://{site_url}/_api/web/lists(guid'{list_guid}')
Authorization: "Bearer " + accessToken
Accept: "application/json;odata=verbose"
Content-Type: "application/json"
Content-Length: {length of request body as integer}
If-Match: "{etag or *}"
X-HTTP-Method: "MERGE"
X-RequestDigest: "{form_digest_value}"

{
  "__metadata": {
    "type": "SP.List"
  },
  "Title": "New title"
}

В приведенном ниже примере показано, как создать настраиваемое поле для списка.

POST https://{site_url}/_api/web/lists(guid'{list_guid}')/Fields
Authorization: "Bearer " + accessToken
Accept: "application/json;odata=verbose"
Content-Type: "application/json"
Content-Length: {length of request body as integer}
X-RequestDigest: "{form_digest_value}"

{
  "__metadata": {
    "type": "SP.Field"
  },
  "Title": "field title",
  "FieldTypeKind": FieldType value,
  "Required": "true/false",
  "EnforceUniqueValues": "true/false",
  "StaticName": "field name"
}

В приведенном ниже примере показано, как удалить список.

POST https://{site_url}/_api/web/lists(guid'{list_guid}')
Authorization: "Bearer " + accessToken
Accept: "application/json;odata=verbose"
If-Match: "{etag or *}"
X-HTTP-Method: "DELETE"
X-RequestDigest: "{form_digest_value}"

Изменения столбца подстановок

При указании столбца подстановки внутри списка с помощью REST API используйте отображаемое имя столбца подстановки вместо внутреннего имени.

GET https://{site_url}/_api/web/lists/getbytitle('ListName')/Items?&$filter=LookupColumnId eq 1
Authorization: "Bearer " + accessToken
Accept: "application/json;odata=verbose"

Работа с элементами списка с помощью REST

Получение всех элементов списка

В приведенном ниже примере показано, как получить все элементы списка.

Примечание.

  • Параметр запроса $skip OData не работает при запросе элементов списка. Во многих случаях вместо него можно использовать параметр $skiptoken.
  • По умолчанию будут возвращены первые 100 элементов. Дополнительные сведения об управлении количеством элементов, разбиением на страницы и прочем см. в документации об операциях с запросами OData
GET https://{site_url}/_api/web/lists/GetByTitle('Test')/items
Authorization: "Bearer " + accessToken
Accept: "application/json;odata=verbose"

Получение определенного элемента списка

В приведенном ниже примере показано, как получить определенный элемент списка.

GET https://{site_url}/_api/web/lists/GetByTitle('Test')/items({item_id})
Authorization: "Bearer " + accessToken
Accept: "application/json;odata=verbose"

Ниже показан пример свойств элементов списка, которые возвращаются при запросе типа контента XML.

<content type="application/xml">
  <m:properties>
    <d:FileSystemObjectType m:type="Edm.Int32">0</d:FileSystemObjectType>
    <d:Id m:type="Edm.Int32">1</d:Id>
    <d:ID m:type="Edm.Int32">1</d:ID>
    <d:ContentTypeId>0x010049564F321A0F0543BA8C6303316C8C0F</d:ContentTypeId>
    <d:Title>an item</d:Title>
    <d:Modified m:type="Edm.DateTime">2012-07-24T22:47:26Z</d:Modified>
    <d:Created m:type="Edm.DateTime">2012-07-24T22:47:26Z</d:Created>
    <d:AuthorId m:type="Edm.Int32">11</d:AuthorId>
    <d:EditorId m:type="Edm.Int32">11</d:EditorId>
    <d:OData__UIVersionString>1.0</d:OData__UIVersionString>
    <d:Attachments m:type="Edm.Boolean">false</d:Attachments>
    <d:GUID m:type="Edm.Guid">eb6850c5-9a30-4636-b282-234eda8b1057</d:GUID>
  </m:properties>
</content>

Получение элементов в виде потока

Извлекает сведения о списке и его данных. С помощью этого API можно получить элементы списка, если они используют сложные поля, например количество просмотров или управляемые метаданные.

POST https://{site_url}/_api/web/GetList(@listUrl)/RenderListDataAsStream?@listUrl=%27%2Fsites%2Fteam-a%2Flists%2FList%27
Authorization: "Bearer " + accessToken
Accept: "application/json;odata=nometadata"
Content-Type: "application/json;odata=nometadata"

{
  "parameters": {
    "AddRequiredFields": "true",
    "DatesInUtc": "true",
    "RenderOptions": 17
  }
}

Параметры URI RenderListDataAsStream

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

Свойство Описание Тип Пример
CascDelWarnMessage Указывает, должно ли отображаться сообщение при наличии предупреждения о каскадном удалении number 1
DrillDown Указывает, что в сгруппированном представлении некоторые группы развернуты. Используется вместе с GroupString. string
GroupString Идентификатор группы, используемый для функции детализации. string
HasOverrideSelectCommand Позволяет убедиться в наличии определенных полей, необходимых для правильной работы элементов управления SharePoint ListView. строка
Field Указывает специальное поле, которое следует включить. строка
FieldInternalName Используется для выявления поля, когда список содержит внешний источник данных. Также используется при фильтрации для настраиваемого поля. строка
Filter Указывает, следует ли применять фильтр для запрошенного представления. строка
FilterData Данные, задаваемые определенным фильтром. строка
FilterData1 Данные, задаваемые определенным фильтром. строка
FilterData2 Данные, задаваемые определенным фильтром. строка
FilterData3 Данные, задаваемые определенным фильтром. строка
FilterData4 Данные, задаваемые определенным фильтром. строка
FilterData5 Данные, задаваемые определенным фильтром. строка
FilterData6 Данные, задаваемые определенным фильтром. строка
FilterData7 Данные, задаваемые определенным фильтром. строка
FilterData8 Данные, задаваемые определенным фильтром. строка
FilterData9 Данные, задаваемые определенным фильтром. строка
FilterData10 Данные, задаваемые определенным фильтром. строка
FilterField Имя поля фильтра для определенного фильтра, который применяется к представлению. строка
FilterField1 Имя поля фильтра для определенного фильтра, который применяется к представлению. строка ID
FilterField2 Имя поля фильтра для определенного фильтра, который применяется к представлению. строка ID
FilterField3 Имя поля фильтра для определенного фильтра, который применяется к представлению. строка ID
FilterField4 Имя поля фильтра для определенного фильтра, который применяется к представлению. строка ID
FilterField5 Имя поля фильтра для определенного фильтра, который применяется к представлению. строка ID
FilterField6 Имя поля фильтра для определенного фильтра, который применяется к представлению. строка ID
FilterField7 Имя поля фильтра для определенного фильтра, который применяется к представлению. строка ID
FilterField8 Имя поля фильтра для определенного фильтра, который применяется к представлению. строка ID
FilterField9 Имя поля фильтра для определенного фильтра, который применяется к представлению. строка ID
FilterField10 Имя поля фильтра для определенного фильтра, который применяется к представлению. строка ID
FilterFields Определяет несколько полей, которые будут фильтроваться множественным фильтром. строка
FilterFields1 Определяет несколько полей, которые будут фильтроваться множественным фильтром. строка
FilterFields2 Определяет несколько полей, которые будут фильтроваться множественным фильтром. строка
FilterFields3 Определяет несколько полей, которые будут фильтроваться множественным фильтром. строка
FilterFields4 Определяет несколько полей, которые будут фильтроваться множественным фильтром. строка
FilterFields5 Определяет несколько полей, которые будут фильтроваться множественным фильтром. строка
FilterFields6 Определяет несколько полей, которые будут фильтроваться множественным фильтром. строка
FilterFields7 Определяет несколько полей, которые будут фильтроваться множественным фильтром. строка
FilterFields8 Определяет несколько полей, которые будут фильтроваться множественным фильтром. строка
FilterFields9 Определяет несколько полей, которые будут фильтроваться множественным фильтром. строка
FilterFields10 Определяет несколько полей, которые будут фильтроваться множественным фильтром. строка
FilterValue Значение фильтра, связанное с определенным фильтром. Пример: FilterField3 соотносится с FilterValue3 и т. д. string
FilterValue1 Значение фильтра, связанное с определенным фильтром. Пример: FilterField3 соотносится с FilterValue3 и т. д. string 1
FilterValue2 Значение фильтра, связанное с определенным фильтром. Пример: FilterField3 соотносится с FilterValue3 и т. д. string 1
FilterValue3 Значение фильтра, связанное с определенным фильтром. Пример: FilterField3 соотносится с FilterValue3 и т. д. string 1
FilterValue4 Значение фильтра, связанное с определенным фильтром. Пример: FilterField3 соотносится с FilterValue3 и т. д. string 1
FilterValue5 Значение фильтра, связанное с определенным фильтром. Пример: FilterField3 соотносится с FilterValue3 и т. д. string 1
FilterValue6 Значение фильтра, связанное с определенным фильтром. Пример: FilterField3 соотносится с FilterValue3 и т. д. string 1
FilterValue7 Значение фильтра, связанное с определенным фильтром. Пример: FilterField3 соотносится с FilterValue3 и т. д. string 1
FilterValue8 Значение фильтра, связанное с определенным фильтром. Пример: FilterField3 соотносится с FilterValue3 и т. д. string 1
FilterValue9 Значение фильтра, связанное с определенным фильтром. Пример: FilterField3 соотносится с FilterValue3 и т. д. string 1
FilterValue10 Значение фильтра, связанное с определенным фильтром. Пример: FilterField3 соотносится с FilterValue3 и т. д. string 1
FilterValues Используется с FilterFields для множественного фильтра. Пример: FilterFields3 соотносится с FilterValues3 и т. д. string
FilterValues1 Используется с FilterFields для множественного фильтра. Пример: FilterFields3 соотносится с FilterValues3 и т. д. string
FilterValues2 Используется с FilterFields для множественного фильтра. Пример: FilterFields3 соотносится с FilterValues3 и т. д. string
FilterValues3 Используется с FilterFields для множественного фильтра. Пример: FilterFields3 соотносится с FilterValues3 и т. д. string
FilterValues4 Используется с FilterFields для множественного фильтра. Пример: FilterFields3 соотносится с FilterValues3 и т. д. string
FilterValues5 Используется с FilterFields для множественного фильтра. Пример: FilterFields3 соотносится с FilterValues3 и т. д. string
FilterValues6 Используется с FilterFields для множественного фильтра. Пример: FilterFields3 соотносится с FilterValues3 и т. д. string
FilterValues7 Используется с FilterFields для множественного фильтра. Пример: FilterFields3 соотносится с FilterValues3 и т. д. string
FilterValues8 Используется с FilterFields для множественного фильтра. Пример: FilterFields3 соотносится с FilterValues3 и т. д. string
FilterValues9 Используется с FilterFields для множественного фильтра. Пример: FilterFields3 соотносится с FilterValues3 и т. д. string
FilterValues10 Используется с FilterFields для множественного фильтра. Пример: FilterFields3 соотносится с FilterValues3 и т. д. string
FilterLookupId Используется при фильтрации для поля подстановки. Это идентификатор элемента во внешнем списке, содержащий значение, по которому выполняется фильтрация. строка
FilterLookupId1 Используется при фильтрации для поля подстановки. Это идентификатор элемента во внешнем списке, содержащий значение, по которому выполняется фильтрация. строка
FilterLookupId2 Используется при фильтрации для поля подстановки. Это идентификатор элемента во внешнем списке, содержащий значение, по которому выполняется фильтрация. строка
FilterLookupId3 Используется при фильтрации для поля подстановки. Это идентификатор элемента во внешнем списке, содержащий значение, по которому выполняется фильтрация. строка
FilterLookupId4 Используется при фильтрации для поля подстановки. Это идентификатор элемента во внешнем списке, содержащий значение, по которому выполняется фильтрация. строка
FilterLookupId5 Используется при фильтрации для поля подстановки. Это идентификатор элемента во внешнем списке, содержащий значение, по которому выполняется фильтрация. строка
FilterLookupId6 Используется при фильтрации для поля подстановки. Это идентификатор элемента во внешнем списке, содержащий значение, по которому выполняется фильтрация. строка
FilterLookupId7 Используется при фильтрации для поля подстановки. Это идентификатор элемента во внешнем списке, содержащий значение, по которому выполняется фильтрация. строка
FilterLookupId8 Используется при фильтрации для поля подстановки. Это идентификатор элемента во внешнем списке, содержащий значение, по которому выполняется фильтрация. строка
FilterLookupId9 Используется при фильтрации для поля подстановки. Это идентификатор элемента во внешнем списке, содержащий значение, по которому выполняется фильтрация. строка
FilterLookupId10 Используется при фильтрации для поля подстановки. Это идентификатор элемента во внешнем списке, содержащий значение, по которому выполняется фильтрация. строка
FilterOnly string
FilterOp Оператор фильтра. Используется при фильтрации с операторами, отличными от Eq (Geq, Leq и т. д.) string Geq
FilterOp1 Оператор фильтра. Используется при фильтрации с операторами, отличными от Eq (Geq, Leq и т. д.) string Geq
FilterOp2 Оператор фильтра. Используется при фильтрации с операторами, отличными от Eq (Geq, Leq и т. д.) string Geq
FilterOp3 Оператор фильтра. Используется при фильтрации с операторами, отличными от Eq (Geq, Leq и т. д.) string Geq
FilterOp4 Оператор фильтра. Используется при фильтрации с операторами, отличными от Eq (Geq, Leq и т. д.) string Geq
FilterOp5 Оператор фильтра. Используется при фильтрации с операторами, отличными от Eq (Geq, Leq и т. д.) string Geq
FilterOp6 Оператор фильтра. Используется при фильтрации с операторами, отличными от Eq (Geq, Leq и т. д.) string Geq
FilterOp7 Оператор фильтра. Используется при фильтрации с операторами, отличными от Eq (Geq, Leq и т. д.) string Geq
FilterOp8 Оператор фильтра. Используется при фильтрации с операторами, отличными от Eq (Geq, Leq и т. д.) string Geq
FilterOp9 Оператор фильтра. Используется при фильтрации с операторами, отличными от Eq (Geq, Leq и т. д.) string Geq
FilterOp10 Оператор фильтра. Используется при фильтрации с операторами, отличными от Eq (Geq, Leq и т. д.) string Geq
ID Идентификатор элемента, сведения о котором являются целью поиска. число
InplaceSearchQuery Условие поиска для поиска по полному списку. string
InplaceFullListSearch Логическое значение, определяющее, является ли это поиском по полному списку. string
IsCSR Указывает, является ли это представление клиентским представлением. строка
CustomAction строка
IsGroupRender Используется для задания свойства IsGroupRender для SPView. строка
IsRibbon строка
IsXslView Указывает, является ли это представление представлением списка xslt. строка
List string
ListId string
ListViewPageUrl строка
OverrideScope Используется для переопределения области в отображаемом представлении: SPView.Scope string
OverrideSelectCommand Используется для подтверждения наличия определенных полей в запросе независимо от того, добавлены ли они явным образом в представление. string
PageFirstRow Запрашиваемые сведения о разбиении на страницы для первой строки. Используется для представлений списков с разбивкой на страницы. строка
PageLastRow Запрашиваемые сведения о разбиении на страницы для последней строки. Используется для представлений списков с разбивкой на страницы. строка
RootFolder Папка, в которой отображается представление. строка
SortField Поле, по которому должно быть отсортировано представление. строка ID
SortField1 Поле, по которому должно быть отсортировано представление. строка ID
SortField2 Поле, по которому должно быть отсортировано представление. строка ID
SortField3 Поле, по которому должно быть отсортировано представление. строка ID
SortField4 Поле, по которому должно быть отсортировано представление. строка ID
SortField5 Поле, по которому должно быть отсортировано представление. строка ID
SortField6 Поле, по которому должно быть отсортировано представление. строка ID
SortField7 Поле, по которому должно быть отсортировано представление. строка ID
SortField8 Поле, по которому должно быть отсортировано представление. строка ID
SortField9 Поле, по которому должно быть отсортировано представление. строка ID
SortField10 Поле, по которому должно быть отсортировано представление. строка ID
SortFields Задает имя первого поля для выполнения сортировки строка
SortFieldValues Задает имя первого поля для выполнения сортировки строка
SortDir Направление специальной сортировки, применяемой для представления. строка Desc
SortDir1 Направление специальной сортировки, применяемой для представления. строка Desc
SortDir2 Направление специальной сортировки, применяемой для представления. строка Desc
SortDir3 Направление специальной сортировки, применяемой для представления. строка Desc
SortDir4 Направление специальной сортировки, применяемой для представления. строка Desc
SortDir5 Направление специальной сортировки, применяемой для представления. строка Desc
SortDir6 Направление специальной сортировки, применяемой для представления. строка Desc
SortDir7 Направление специальной сортировки, применяемой для представления. строка Desc
SortDir8 Направление специальной сортировки, применяемой для представления. строка Desc
SortDir9 Направление специальной сортировки, применяемой для представления. строка Desc
SortDir10 Направление специальной сортировки, применяемой для представления. строка Desc
View Определяет базовое представление, которое будет использоваться для отображения списка. Идентификатор GUID 3d13559e-3071-5000-76b8-8f1ca6b835f0
ViewPath Определяет путь представления, который будет использоваться для отображения списка. Если присвоен ViewId, то будет применяться ViewId, и этот параметр будет игнорироваться. string
ViewCount Если на странице несколько представлений списков, то этот параметр указывает один из них. строка
ViewId Определяет базовое представление, которое будет использоваться для отображения списка. специальные параметры будут применены в верхней части этого представления. Если присвоены ViewXml и BaseViewId, то будет применяться ViewXml, и специальные параметры будут игнорироваться. string
WebPartId Идентификатор веб-части представления списка, отображающей это представление. string

Свойства параметра текста RenderListDataAsStream

Свойство Описание Тип Пример
AddRequiredFields Указывает, должны ли быть возвращены требуемые поля логический true
AllowMultipleValueFilterForTaxonomyFields Указывает, допустима ли фильтрация по нескольким значениям для полей таксономии логический true
DatesInUtc Указывает, возвращается ли поле даты и времени в формате UTC или по местному часовому поясу. логический true
ExpandGroups Указывает, должна ли быть группировка развернута или нет. логический true
FirstGroupOnly Указывает, только ли первая группа должна быть возвращена (независимо от схемы представления). логический true
FolderServerRelativeUrl Задает URL-адрес для папки, из которой требуется возвратить элементы. строка /sites/team-a/lists/Orders/Europe
ImageFieldsToTryRewriteToCdnUrls Разделенный запятыми список имен полей, значения которых следует переписать в URL-адреса CDN строка ArticleImage,SecondaryImage
OverrideViewXml Указывает переопределение XML в сочетании с представлением CAML. Применяется только к части Query/Where представления CAML. строка <Query><Where><Gt><FieldRef Name=\"OrderCount\" /><Value Type=\"Number\">3</Value></Gt></Where></Query>
Paging Задает сведения о разбиении на страницы. строка
RenderOptions Задает тип возвращаемых выходных данных. SPRenderListDataOptions См. возможные значения в следующем разделе. Можно указать несколько значений, добавив их значения вместе
ReplaceGroup Указывает, нужно ли заменить группировку, чтобы учесть регулирование GroupBy. логический true
ViewXml Задает XML представления CAML. string
SPRenderListDataOptions
Метка Описание Значение
None Возвращает стандартные выходные данные 0
ContextInfo Возвращает сведения о контексте списка 1
ListData Возвращает данные списка (то же, что None) 2
ListSchema Возвращает схему списка 4
MenuView Возвращает HTML для меню списка 8
ListContentType Возвращает сведения о типах контента списка. Должен применяться в сочетании с флажком ContextInfo 16
FileSystemItemId Возвращаемый список будет по возможности содержать поле FileSystemItemId для каждого элемента. Должен применяться в сочетании с флажком ListData 32
ClientFormSchema Возвращает схему формы клиента, чтобы добавлять и изменять элементы 64
QuickLaunch Возвращает узлы навигации QuickLaunch. 128
Spotlight Возвращает данные обработки Spotlight. 256
Visualization Возвращает данные обработки Visualization. 512
ViewMetadata Возвращает XML представления и другие сведения о текущем представлении. 1024
DisableAutoHyperlink Предотвращает срабатывание функции AutoHyperlink на текстовые поля в этом запросе. 2048
EnableMediaTAUrls Разрешает URL-адреса, указывающие на службу Media TA, например .thumbnailUrl, .videoManifestUrl, .pdfConversionUrls 4096
ParentInfo Возвращает сведения о родительской папке. 8192
PageContextInfo Возвращает контекстные сведения о странице для текущего обрабатываемого списка. 16384
ClientSideComponentManifest Возвращает сведения манифеста клиентского компонента, связанного со списком. 32768

Примеры

Извлечение элемента с определенным идентификатором
POST https://{site_url}/sites/team-a/_api/web/GetList(@listUrl)/RenderListDataAsStream?@listUrl=%27%2Fsites%2Fteam-a%2Flists%2FList%27&FilterField1=ID&FilterValue1=1
Authorization: "Bearer " + accessToken
Accept: "application/json;odata=nometadata"
...
Сортировка элементов по убыванию по идентификаторам
POST https://{site_url}/sites/team-a/_api/web/GetList(@listUrl)/RenderListDataAsStream?@listUrl=%27%2Fsites%2Fteam-a%2Flists%2FList%27&SortField=ID&SortDir=Desc
Authorization: "Bearer " + accessToken
Accept: "application/json;odata=nometadata"
...
Получение элементов из указанной папки
POST https://{site_url}/sites/team-a/_api/web/GetList(@listUrl)/RenderListDataAsStream?@listUrl=%27%2Fsites%2Fteam-a%2Flists%2FOrders%27
Authorization: "Bearer " + accessToken
Accept: "application/json;odata=nometadata"
Content-Type: "application/json"

{
  "parameters": {
    "FolderServerRelativeUrl": "/sites/team-a/lists/Orders/Europe"
  }
}
Получение схемы списка
POST https://{site_url}/sites/team-a/_api/web/GetList(@listUrl)/RenderListDataAsStream?@listUrl=%27%2Fsites%2Fteam-a%2Flists%2FList%27
Authorization: "Bearer " + accessToken
Accept: "application/json;odata=nometadata"
Content-Type: "application/json"

{
  "parameters": {
    "RenderOptions": 4
  }
}
Получение сведений о типах контента списка
POST https://{site_url}/sites/team-a/_api/web/GetList(@listUrl)/RenderListDataAsStream?@listUrl=%27%2Fsites%2Fteam-a%2Flists%2FList%27
Authorization: "Bearer " + accessToken
Accept: "application/json;odata=nometadata"
Content-Type: "application/json"

{
  "parameters": {
    "RenderOptions": 17
  }
}

Создание элемента списка

В приведенном ниже примере показано, как создать элемент списка.

Примечание.

Для выполнения этой операции вам необходимо знать свойство ListItemEntityTypeFullName списка и передать его как значение type в тексте запроса HTTP. Ниже представлен пример вызова REST для получения свойства ListItemEntityTypeFullName

GET https://{site_url}/_api/web/lists/GetByTitle('Test')?$select=ListItemEntityTypeFullName
Authorization: "Bearer " + accessToken
Accept: "application/json;odata=nometadata"
POST https://{site_url}/_api/web/lists/GetByTitle('Test')/items
Authorization: "Bearer " + accessToken
Accept: "application/json;odata=verbose"
Content-Type: "application/json;odata=verbose"
Content-Length: {length of request body as integer}
X-RequestDigest: "{form_digest_value}"

{
  "__metadata": {
    "type": "SP.Data.TestListItem"
  },
  "Title": "Test"
}

Создание элемента списка в папке

В приведенном ниже примере показано, как создать элемент списка в папке.

POST https://{site_url}/_api/web/lists/GetByTitle('Test')/AddValidateUpdateItemUsingPath
Authorization: "Bearer " + accessToken
Accept          "application/json;odata=nometadata"
Content-Type    "application/json;odata=nometadata"
X-RequestDigest "The appropriate digest for current site"

{
  "listItemCreateInfo": {
    "FolderPath": {
      "DecodedUrl": "https://{site_url}/lists/Test/Folder/SubFolder"
    },
    "UnderlyingObjectType": 0
  },
  "formValues": [
    {
      "FieldName": "Title",
      "FieldValue": "Item"
    }
  ],
  "bNewDocumentUpdate": false
}

Информация о свойствах запроса

Свойство Описание
listItemCreateInfo Информация о списке и папке, где необходимо создать элемент
listItemCreateInfo.FolderPath.DecodedUrl Абсолютный URL-адрес папки, где необходимо создать элемент
listItemCreateInfo.UnderlyingObjectType Тип элемента, который необходимо создать. Подробнее см. раздел FileSystemObjectType
formValues Массив имен полей и значений, которые необходимо присвоить новому элементу
bNewDocumentUpdate Установите значение false, чтобы создать элемент списка

Ответы

Имя Тип Описание
200 OK Boolean Успешно
{
  "value": [
    {
      "ErrorMessage": null,
      "FieldName": "Title",
      "FieldValue": "Item",
      "HasException": false,
      "ItemId": 0
    },
    {
      "ErrorMessage": null,
      "FieldName": "Id",
      "FieldValue": "1",
      "HasException": false,
      "ItemId": 0
    }
  ]
}

Свойство value содержит список свойств, заданных при создании элемента списка.

Обновление элемента списка

В приведенном ниже примере показано, как обновить элемент списка.

Примечание.

Для выполнения этой операции вам необходимо знать свойство ListItemEntityTypeFullName списка и передать его как значение type в тексте запроса HTTP.

POST https://{site_url}/_api/web/lists/GetByTitle('Test')/items({item_id})
Authorization: "Bearer " + accessToken
Accept: "application/json;odata=verbose"
Content-Type: "application/json"
Content-Length: {length of request body as integer}
If-Match: "{etag or *}"
X-HTTP-Method: "MERGE"
X-RequestDigest: "{form_digest_value}"

{
  "__metadata": {
    "type": "SP.Data.TestListItem"
  },
  "Title": "TestUpdated"
}

Удаление элемента списка

В приведенном ниже примере показано, как удалить элемент списка.

POST https://{site_url}/_api/web/lists/GetByTitle('Test')/items({item_id})
Authorization: "Bearer " + accessToken
Accept: "application/json;odata=verbose"
Content-Type: "application/json"
If-Match: "{etag or *}"
X-HTTP-Method: "DELETE"

Использование значений ETag для определения версий документов и элементов списков

Служба SharePoint REST, работающая по стандарту OData, использует значения заголовка ETag списков SharePoint и их элементов. Чтобы проверить версию элемента при выполнении запроса PUT, MERGE или DELETE, укажите значение ETag в заголовке HTTP-запроса If-Match.

Если ETag, который вы указываете в вашем запросе, не соответствует ETag документа или элемента списка на сервере, служба REST возвращает ошибку 412 в соответствии со спецификацией OData.

  • Чтобы принудительно переписать элемент независимо от версии, задайте ETag значение "*".
  • Если не указать ETag, SharePoint переписывает элемент независимо от версии.

В SharePoint значения ETag применяются только к спискам SharePoint и элементам списков.

См. также