SharePoint REST API
Traduzido do original em espanhol. Ler em espanhol
Operações especiais
A seguir, você encontrará exemplos de operações com a API do SharePoint Online que são pouco comuns ou não estão totalmente documentadas. Se você procura informações sobre as operações básicas, pode consultar a documentação oficial neste link.
Criar um Contact Field
Passos prévios: primeiro, precisamos do GUID da biblioteca SitePages. Para isso, basta fazer um GET em _api/web/lists/getbytitle(‘Site%20Pages’)/id
GET https://zerogap.sharepoint.com/sites/zerogap/_api/web/lists/getbytitle('Site%20Pages')/id
Pegamos o valor de <d:Id m:type="Edm.Guid">. Vamos usá-lo como nosso ID.
Criar o Contact Field
POST https://zerogap.sharepoint.com/sites/zerogap/_api/web/lists/getbyid('theid')/Fields
HEADERS
"accept": "application/json; odata=verbose",
"content-type": "application/json;odata=verbose"
BODY
{
"__metadata": {
"type": "SP.FieldUser"
},
"Title": "Owner",
"FieldTypeKind": 20,
"Required": "false",
"EnforceUniqueValues": "false",
"InternalName": "Owner",
"AllowDisplay": "true",
"Sortable": "true",
"UserDisplayOptions": "NamePhoto"
}
Adicionamos a nova coluna à Default View
POST https://zerogap.sharepoint.com/sites/zerogap/_api/Web/Lists(guid'ID')/Views(guid'defaultview')/ViewFields/AddViewField('Owner')
O ID é o que obtivemos no primeiro passo. O GUID da Default View depende de qual estiver configurada como padrão. É possível obtê-lo, por exemplo, com um GET neste endpoint:
GET https://zerogap.sharepoint.com/sites/zerogap/_api/web/lists/getByTitle('Site%20Pages')/Views/GetByTitle('All%20Pages')
Atualizar o valor de um Field
Usando o GUID do arquivo
POST https://zerogap.sharepoint.com/sites/zerogap/_api/web/GetFileByid('GUID')/ListItemAllFields
HEADERS
"content-type": "application/json;odata=verbose",
"X-HTTP-Method": "PATCH",
"if-match": "*"
BODY
{
"__metadata": {
"type": "SP.PropertyValues"
},
"Alguna_Fecha": "Fecha"
}
Usando o caminho do arquivo
https://zerogap.sharepoint.com/sites/zerogap/_api/web/GetFileByServerRelativePath(decodedurl='/sites/testmaxsite/SitePages/post.aspx')/ListItemAllFields
Atualizar um Taxonomy Field
Passos prévios: obter o ID do arquivo a ser atualizado.
GET https://zerogap.sharepoint.com/sites/zerogap/_api/web/GetFileByServerRelativePath(decodedurl='/sites/zerogap/SitePages/post.aspx')/ListItemAllFields
O ID está no seguinte atributo <d:Id m:type="Edm.Int32">7</d:Id>.
Atualizar o Field
POST https://zerogap.sharepoint.com/sites/zerogap/_api/web/lists/getByTitle('Site%20Pages')/items('id')/ValidateUpdateListItem()
BODY
{
"formValues": [
{"FieldName":"Archive","FieldValue":"Zero |sdsdd0-1sd08-4ed8-a9d5-25a43434sdsd93"}
],
"bNewDocumentUpdate":false,
"checkInComment":null
}
Modificar o Layout Webparts Content de uma página
Passos prévios: obter o ID da página a ser modificada. Há várias formas de fazer isso, por exemplo, com um GET usando o GUID do arquivo:
GET https://zerogap.sharepoint.com/sites/zerogap/_api/web/GetFileByid('sadf-sadsf5-sdfsdfsd5-sfsdgsdg')
Obter o Layout usando o ID
GET https://zerogap.sharepoint.com/sites/zerogap/_api/sitepages/pages('ID')
Atualizar o Layout: trocar o conteúdo do Layout que obtivemos na última requisição pelos novos dados.
POST https://zerogap.sharepoint.com/sites/zerogap/_api/sitepages/pages(itemid)
HEADER
"Accept": "application/json;odata=nometadata",
"Content-type": "application/json;odata=verbose",
"odata-version": "",
"IF-MATCH": "*",
"X-HTTP-Method": "MERGE"
BODY
{
'__metadata': {
'type': 'SP.Publishing.SitePage'
},
'TopicHeader': 'Archived',
'LayoutWebpartsContent': '
[{
"id": "xxx-xxxxx-xxxx-xxxx",
"instanceId": "xxx-xxx-xxxxx-xxx",
"title": "\n Title area\n ",
"description": "\n Title area description\n ",
"audiences": [],
"htmlStrings": {},
"imageSources": {},
"links": {},
"dataVersion": "1.4",
"properties": {
"imageSourceType": 2,
"title": "Publish me",
"textAlignment": "Left",
"showPublishDate": false,
"authors": [{}],
"showTopicHeader": true,
"topicHeader": "",
"authorByline": [],
"layoutType": "FullWidthImage",
"enableGradientEffect": true
"htmlStrings": {},
"searchablePlainTexts": {},
"imageSources": {}
}]'
}
