API REST di SharePoint

Tradotto dall'originale in spagnolo. Leggi in spagnolo

Operazioni speciali

Di seguito trovi esempi di operazioni con l’API di SharePoint Online poco comuni o non del tutto documentate. Se cerchi informazioni sulle operazioni di base, puoi consultare la documentazione ufficiale a questo link.

Creare un Contact Field

Passaggi preliminari: prima di tutto ci serve il GUID della libreria SitePages. Per ottenerlo basta fare un GET su _api/web/lists/getbytitle(‘Site%20Pages’)/id

GET https://zerogap.sharepoint.com/sites/zerogap/_api/web/lists/getbytitle('Site%20Pages')/id

Prendiamo il valore di <d:Id m:type="Edm.Guid">. Lo useremo come ID.

Creare il 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"
}

Aggiungiamo la nuova colonna alla Default View

POST https://zerogap.sharepoint.com/sites/zerogap/_api/Web/Lists(guid'ID')/Views(guid'defaultview')/ViewFields/AddViewField('Owner')

L’ID è quello ottenuto nel primo passaggio. Il GUID della Default View dipende da quella impostata come predefinita. Si può ottenere, per esempio, con un GET su questo endpoint:

GET https://zerogap.sharepoint.com/sites/zerogap/_api/web/lists/getByTitle('Site%20Pages')/Views/GetByTitle('All%20Pages')

Aggiornare il valore di un Field

Usando il GUID del file

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 il percorso del file

https://zerogap.sharepoint.com/sites/zerogap/_api/web/GetFileByServerRelativePath(decodedurl='/sites/testmaxsite/SitePages/post.aspx')/ListItemAllFields

Aggiornare un Taxonomy Field

Passaggi preliminari: ottenere l’ID del file da aggiornare.

GET https://zerogap.sharepoint.com/sites/zerogap/_api/web/GetFileByServerRelativePath(decodedurl='/sites/zerogap/SitePages/post.aspx')/ListItemAllFields

L’ID si trova nel seguente attributo <d:Id m:type="Edm.Int32">7</d:Id>.

Aggiornare il 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
}

Modificare il Layout Webparts Content di una pagina

Passaggi preliminari: ottenere l’ID della pagina da modificare. Ci sono vari modi per farlo, per esempio con un GET usando il GUID del file:

GET https://zerogap.sharepoint.com/sites/zerogap/_api/web/GetFileByid('sadf-sadsf5-sdfsdfsd5-sfsdgsdg')

Ottenere il Layout usando l’ID

GET https://zerogap.sharepoint.com/sites/zerogap/_api/sitepages/pages('ID')

Aggiornare il Layout: sostituire il contenuto del Layout ottenuto nell’ultima richiesta con i nuovi dati.

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