API REST de SharePoint

Traduit de l'original en espagnol. Lire en espagnol

Opérations spéciales

Vous trouverez ci-dessous des exemples d’opérations avec l’API de SharePoint Online qui sont peu courantes ou pas entièrement documentées. Si vous cherchez des informations sur les opérations de base, vous pouvez consulter la documentation officielle via ce lien.

Créer un Contact Field

Étapes préalables : d’abord, il nous faut le GUID de la bibliothèque SitePages. Pour cela, il suffit de faire un GET sur _api/web/lists/getbytitle(‘Site%20Pages’)/id

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

Nous récupérons la valeur de <d:Id m:type="Edm.Guid">. Nous l’utiliserons comme ID.

Créer le 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"
}

Nous ajoutons la nouvelle colonne à la Default View

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

L’ID est celui obtenu à la première étape. Le GUID de la Default View dépend de la vue définie par défaut. On peut l’obtenir, par exemple, avec un GET sur l’endpoint suivant :

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

Mettre à jour la valeur d’un Field

Avec le GUID du fichier

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

Avec le chemin du fichier

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

Mettre à jour un Taxonomy Field

Étapes préalables : obtenir l’ID du fichier à mettre à jour.

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

L’ID se trouve dans l’attribut suivant <d:Id m:type="Edm.Int32">7</d:Id>.

Mettre à jour le 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
}

Modifier le Layout Webparts Content d’une page

Étapes préalables : obtenir l’ID de la page à modifier. Il existe plusieurs façons de le faire, par exemple avec un GET utilisant le GUID du fichier :

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

Obtenir le Layout à partir de l’ID

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

Mettre à jour le Layout : remplacer le contenu du Layout obtenu lors de la dernière requête par les nouvelles données.

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