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": {}
                }]'
}

Maximiliano Díaz Doglia

AI Platform Engineer & Full-Stack Developer
Building Enterprise Integrations & Automations