如何使用SharePoint 2010 REST接口执行CRUD操作
创建
要通过REST执行创建操作,您必须执行以下操作:
- 使用
POST
动词创建HTTP请求。
- 将要添加实体的列表的服务URL用作POST的目标。
- 将内容类型设置为
application/json
。
- 将表示新列表项的JSON对象序列化为字符串,并将此值添加到请求正文中。
JavaScript示例:
function createListItem(webUrl,listName, itemProperties, success, failure) {
$.ajax({
url: webUrl + "/_vti_bin/listdata.svc/" + listName,
type: "POST",
processData: false,
contentType: "application/json;odata=verbose",
data: JSON.stringify(itemProperties),
headers: {
"Accept": "application/json;odata=verbose"
},
success: function (data) {
success(data.d);
},
error: function (data) {
failure(data.responseJSON.error);
}
});
}
使用方法
var taskProperties = {
'TaskName': 'Order Approval',
'AssignedToId': 12
};
createListItem('https://contoso.sharepoint.com/project/','Tasks',taskProperties,function(task){
console.log('Task' + task.TaskName + ' has been created');
},
function(error){
console.log(JSON.stringify(error));
}
);
阅读
为了通过REST执行阅读操作,您必须执行以下操作:
- 使用GET动词创建HTTP请求。
- 将要添加实体的列表项的服务URL用作GET的目标。
- 将内容类型设置为
application/json
。
JavaScript示例:
function getListItemById(webUrl,listName, itemId, success, failure) {
var url = webUrl + "/_vti_bin/listdata.svc/" + listName + "(" + itemId + ")";
$.ajax({
url: url,
method: "GET",
headers: { "Accept": "application/json; odata=verbose" },
success: function (data) {
success(data.d);
},
error: function (data) {
failure(data.responseJSON.error);
}
});
}
使用方法
getListItemById('https://contoso.sharepoint.com/project/','Tasks',2,function(taskItem){
console.log(taskItem.TaskName);
},
function(error){
console.log(JSON.stringify(error));
}
);
更新
要更新现有实体,您必须执行以下操作:
- 使用
POST
动词创建一个 HTTP
请求。
- 添加一个值为
MERGE
的 X-HTTP-Method
标头。
- 将要更新的列表项的服务 URL 用作
POST
的目标。
- 添加一个值为实体原始 ETag 的
If-Match
标头。
JavaScript 示例:
function updateListItem(webUrl,listName,itemId,itemProperties,success, failure)
{
getListItemById(webUrl,listName,itemId,function(item){
$.ajax({
type: 'POST',
url: item.__metadata.uri,
contentType: 'application/json',
processData: false,
headers: {
"Accept": "application/json;odata=verbose",
"X-HTTP-Method": "MERGE",
"If-Match": item.__metadata.etag
},
data: Sys.Serialization.JavaScriptSerializer.serialize(itemProperties),
success: function (data) {
success(data);
},
error: function (data) {
failure(data);
}
});
},
function(error){
failure(error);
});
}
使用方法
var taskProperties = {
'TaskName': 'Approval',
'AssignedToId': 12
};
updateListItem('https://contoso.sharepoint.com/project/','Tasks',2,taskProperties,function(item){
console.log('Task has been updated');
},
function(error){
console.log(JSON.stringify(error));
}
);
删除
要删除一个实体,您必须执行以下操作:
- 使用
POST
动词创建一个HTTP请求。
- 添加一个值为
DELETE
的X-HTTP-Method
头。
- 将您希望更新的列表项的服务URL用作POST的目标。
- 使用实体的原始ETag添加一个值为
If-Match
的头。
JavaScript示例:
function deleteListItem(webUrl, listName, itemId, success, failure) {
getListItemById(webUrl,listName,itemId,function(item){
$.ajax({
url: item.__metadata.uri,
type: "POST",
headers: {
"Accept": "application/json;odata=verbose",
"X-Http-Method": "DELETE",
"If-Match": item.__metadata.etag
},
success: function (data) {
success();
},
error: function (data) {
failure(data.responseJSON.error);
}
});
},
function (error) {
failure(error);
});
}
使用方法
deleteListItem('https://contoso.sharepoint.com/project/','Tasks',3,function(){
console.log('Task has been deleted');
},
function(error){
console.log(JSON.stringify(error));
}
);
请参考SharePoint 2010中使用REST API操作列表项文章,以获取更详细的信息。