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