SharePoint 2010 REST API JQUery Insert, Update, Delete

后端 未结 3 994
小鲜肉
小鲜肉 2020-12-08 01:31

Can anyone explain or point me to a link with samples of doing Update, Delete using Jquery with the SharePoint 2010 Rest API?

I have the insert working and of course

相关标签:
3条回答
  • 2020-12-08 01:43

    Here is the update and delete, it wasn't as hard as I thought it was going to be and it works. Hopefully this will help someone out because there is so much bogus information on using the REST API and I see a zillion posts on querying but none on Insert, Update, Delete.

    //update
               function updateMilestone(id) {
    
                   var mileStonesUrl = "/_vti_bin/listdata.svc/Milestones";
                   mileStonesUrl = mileStonesUrl + "(" + id+ ")";
    
    
                   var beforeSendFunction;
    
                   var milestoneModifications = {};
                   milestoneModifications.Title = "Updated from REST";
    
                   var updatedMilestoneData = JSON.stringify(milestoneModifications);
    
    
                   //update exsiting milestone
                   beforeSendFunction = function (xhr) {
                       xhr.setRequestHeader("If-Match", "*");
                       // Using MERGE so that the entire entity doesn't need to be sent over the wire.
                       xhr.setRequestHeader("X-HTTP-Method", 'MERGE');
                   }
    
                   $.ajax({
                       type: "POST",
                       contentType: "application/json; charset=utf-8",
                       processData: false,
                       beforeSend: beforeSendFunction,
                       url: mileStonesUrl,
                       data: updatedMilestoneData,
                       dataType: "json",
                       error: function (xhr) {
                           alert(xhr.status + ": " + xhr.statusText);
                       },
    
                       success: function () {
                           alert("Updated");
                           getAll();
    
                       }
                   });
    
    
    
    
         function deleteMilestone(id) {
    
                   var mileStonesUrl = "/_vti_bin/listdata.svc/Milestones";
                   mileStonesUrl = mileStonesUrl + "(" + id+ ")";
    
                   $.ajax({
                       type: "DELETE",
                       contentType: "application/json; charset=utf-8",
                       processData: false,                       
                       url: mileStonesUrl,                     
                       error: function (xhr) {
                           alert(xhr.status + ": " + xhr.statusText);
                       },
                       success: function () {
                           alert("deleted");
                           getAll();
    
                       }
                   });
    
               }
    
    
    
    
               }
    
    0 讨论(0)
  • 2020-12-08 02:05

    How to perform CRUD operations using SharePoint 2010 REST Interface

    Create

    In order to perform a Create operation via REST, you must perform the following actions:

    • Create an HTTP request using the POST verb.
    • Use the service URL of the list to which you want to add an entity as the target for the POST.
    • Set the content type to application/json.
    • Serialize the JSON objects that represent your new list items as a string, and add this value to the request body

    JavaScript example:

    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);
            }
        });
    }
    

    Usage

    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));
      }
    );
    

    Read

    In order to perform a Read operation via REST, you must perform the following actions:

    • Create an HTTP request using the GET verb.
    • Use the service URL of the list item to which you want to add an entity as the target for the GET.
    • Set the content type to application/json.

    JavaScript example:

    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);
            }
        });
    }
    

    Usage

    getListItemById('https://contoso.sharepoint.com/project/','Tasks',2,function(taskItem){
        console.log(taskItem.TaskName); 
      },
      function(error){
        console.log(JSON.stringify(error));
      }
    );
    

    Update

    To update an existing entity, you must perform the following actions:

    • Create an HTTP request using the POST verb.
    • Add an X-HTTP-Method header with a value of MERGE.
    • Use the service URL of the list item you want to update as the target for the POST
    • Add an If-Match header with a value of the entity’s original ETag.

    JavaScript example:

    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);
       });
    
    }
    

    Usage

    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));
      }
    );
    

    Delete

    To delete an entity, you must perform the following actions:

    • Create an HTTP request using the POST verb.
    • Add an X-HTTP-Method header with a value of DELETE.
    • Use the service URL of the list item you want to update as the target for the POST
    • Add an If-Match header with a value of the entity’s original ETag.

    JavaScript example:

    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);
       });
    }
    

    Usage

    deleteListItem('https://contoso.sharepoint.com/project/','Tasks',3,function(){
        console.log('Task has been deleted'); 
      },
      function(error){
        console.log(JSON.stringify(error));
      }
    );
    

    Please follow List Items manipulation via REST API in SharePoint 2010 article for a more details.

    0 讨论(0)
  • 2020-12-08 02:07

    I recently worked with the REST API for SP 2013, as a Example POC that can be used for any call implementation i.e. JQuery, C# etc.

    Using POSTMAN

    First get your digest token:

    A method was found on this site : http://tech.bool.se/basic-rest-request-sharepoint-using-postman/​ [Credit where credit is due]

    POST

    http://<SharePoint Domain Url>/sites/<Site name>/_api/contextinfo
    

    Header:

    Accept : application/json;odata=verbose
    

    Body: Clear the body ​

    From the payload use "FormDigestValue" value and put it into your headers with the key : X-RequestDigest when making actions that alter items in SharePoint.

    Reading data:

    GET

    http://<SharePoint Domain Url>/sites/<Site name>/_api/web/getfolderbyserverrelativeurl('/Sites/<Site Name>/Shared Documents/My Folder')/files?$select=Name
    

    Headers:

    Accept : application/json;odata=verbose​
    

    When it comes to create, update , delete you need the digest token or an authorization token to perform these actions, this token is highlighted at the begining to to retrieve.

    ​Creating Data POST

    http://<SharePoint Domain Url>/sites/<Site Name>/_api/web/folders​
    

    Headers:

    Accept : application/json;odata=verbose
    
    X-RequestDigest : 'GUID looking toking'
    
    Content-Type : application/json;odata=verbose
    

    Body:

    { '__metadata': { 'type': 'SP.Folder' }, 'ServerRelativeUrl': '/Sites/<Site Name>/Shared Documents/Some Folder/POC3'}​
    

    Note: 'ServerRelativeUrl' the folder on the end POC3 is the folder that I want to create

    Related resources: http://msdn.microsoft.com/en-us/library/office/fp142380(v=office.15).aspx

    Note: PostMan was used for this example and other application may need you to url encode the endpoint.

    The above Request Structure can be used for all requests, the related resource highlights some of the standard methods that can be used with the REST Api

    0 讨论(0)
提交回复
热议问题