I am looking for a way to update a column of type "Person or Group" using HTTP Request of type REST.
Thank you.
Here is a Rest call sample to update person field in List named "MyList" and Person field named "Person1":
$.ajax
({
// _spPageContextInfo.webAbsoluteUrl - will give absolute URL of the site where you are running the code.
// You can replace this with other site URL where you want to apply the function
url: _spPageContextInfo.webAbsoluteUrl + "/_api/web/lists/getByTitle('MyList')/items(10)",
type: "POST",
headers:
{
// Accept header: Specifies the format for response data from the server.
"Accept": "application/json;odata=verbose",
//Content-Type header: Specifies the format of the data that the client is sending to the server
"Content-Type": "application/json;odata=verbose",
// IF-MATCH header: Provides a way to verify that the object being changed has not been changed since it was last retrieved.
// "IF-MATCH":"*", will overwrite any modification in the object, since it was last retrieved.
"IF-MATCH": "*",
//X-HTTP-Method: The MERGE method updates only the properties of the entity , while the PUT method replaces the existing entity with a new one that you supply in the body of the POST
"X-HTTP-Method": "MERGE",
// X-RequestDigest header: When you send a POST request, it must include the form digest value in X-RequestDigest header
"X-RequestDigest": $("#__REQUESTDIGEST").val()
},
data: JSON.stringify({
__metadata:
{
// Format of the "type" is: SP.Data.<<ListName>>ListItem. First character of the <<ListName>> should be in Capital
type: "SP.Data.MyListListItem"
},
Title: "Updated Title",
Person1Id: 9
}),
success: function(data, status, xhr)
{
console.log("Success");
},
error: function(xhr, status, error)
{
console.log("Failed");
}
});
Person1Id:9 is used to specify the user id which need to be set, you could find all the site users and users id with this request:
/_api/web/siteusers