SharePoint 2010 REST API jQuery Insert, Update, Delete

est-ce que quelqu'un peut m'expliquer ou me pointer vers un lien avec des exemples de mise à jour, supprimer en utilisant Jquery avec L'API SharePoint 2010 Rest?

j'ai l'insert qui fonctionne et bien sûr les requêtes puisque la documentation MSDN explique et chaque tutoriel sur le net explique les requêtes mais je me demande juste si quelqu'un insère, met à jour, supprime des données au lieu de seulement des exemples et des tutoriels sur les requêtes? Oui je sais que je peux utiliser le CSOM mais je veux apprendre comment cela se fait via jquery et sharepoint reste?

Je veux aussi utiliser Merge pour la mise à jour.

voici le code d'insertion de travail:

function insertMilestone() {
            var mileStonesListUrl = "/_vti_bin/listdata.svc/Milestones";    
               var milestone = {};
               milestone.Title = "Testing from REST";

               var entry = JSON.stringify(milestone);

               $.ajax({
                   type: "POST",
                   url: mileStonesListUrl,
                   data: entry,
                   contentType: "application/json; charset=utf-8",
                   error: function (xhr) {
                       alert(xhr.status + ": " + xhr.statusText);
                   },

                   success: function () {
                       getAll();

                   }
               });
           }
13
demandé sur Fab 2013-07-24 00:48:29

3 réponses

j'ai récemment travaillé avec L'API REST pour la PS 2013, comme exemple de POC pouvant être utilisé pour n'importe quelle implémentation d'appel (JQuery, C#, etc.).

utilisation de POSTMAN

d'Abord obtenir votre digest jeton:

une méthode a été trouvée sur ce site:http://tech.bool.se/basic-rest-request-sharepoint-using-postman/[crédit lorsque le Crédit est en raison]

POST

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

Header:

Accept : application/json;odata=verbose

Corps: Effacer le corps

à partir de la charge utile, utilisez la valeur "FormDigestValue" et mettez-la dans vos en-têtes avec la touche : X-RequestDigest lors de la réalisation d'actions qui modifient des éléments de SharePoint.

Lecture données:

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​

Lorsqu'il s'agit de créer, mettre à jour , supprimer, vous avez besoin du jeton digest ou d'un jeton d'autorisation pour effectuer ces actions, ce jeton est mis en surbrillance au début de la récupération.

Création d' Données 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

Corps:

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

Remarque: 'ServerRelativeUrl' le dossier à la fin de POC3 est le dossier que je veux créer

ressources Connexes: http://msdn.microsoft.com/en-us/library/office/fp142380 (v = bureau.15).aspx

Remarque: Facteur a été utilisé pour cet exemple et d'autres applications peuvent avoir besoin de vous pour encoder le point de terminaison.

la Structure de requête ci-dessus peut être utilisée pour toutes les requêtes, la ressource associée met en évidence certaines des méthodes standard qui peuvent être utilisées avec L'Api REST

0
répondu leeroya 2014-11-20 06:06:10

comment effectuer des opérations CRUD en utilisant SharePoint 2010 REST Interface

Créer

pour effectuer une opération de création via REST, vous devez effectuer les actions suivantes:

  • créer une requête HTTP en utilisant le POST verbe.
  • utilisez L'URL de service de la liste à laquelle vous voulez ajouter une entité comme la cible pour le POST.
  • Définir le type de contenu à application/json.
  • sérialisez les objets JSON qui représentent vos nouveaux éléments de liste comme un de chaîne, et d'ajouter cette valeur dans le corps de la requête

JavaScript exemple:

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

Utilisation

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

Lire

pour effectuer une opération de lecture via REST, vous devez effectuer les actions suivantes:

  • créer une requête HTTP en utilisant le verbe GET.
  • utilisez L'URL du service liste des éléments auxquels vous souhaitez ajouter un entité en tant que cible pour L'EEG.
  • Définir le type de contenu application/json.

JavaScript exemple:

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

Utilisation

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

mise à Jour

pour mettre à jour une entité existante, vous devez effectuer les actions suivantes:

  • Créer un HTTP demande l'aide de la POST verbe.
  • Ajouter un X-HTTP-Method en-tête avec une valeur de MERGE.
  • utilisez L'URL de service de l'élément de liste que vous voulez mettre à jour comme la cible pour l' POST
  • Ajouter un If-Match en-tête avec une valeur de L'ETag original de l'entité.

JavaScript exemple:

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

}

Utilisation

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

Supprimer

Pour supprimer une entité, vous devez effectuer les actions suivantes:

  • créer une requête HTTP en utilisant le POST verbe.
  • Ajouter un X-HTTP-Method en-tête avec une valeur de DELETE.
  • utilisez L'URL de service de l'élément de liste que vous voulez mettre à jour comme la cible for the POST
  • Ajouter un If-Match en-tête avec une valeur de L'ETag original de l'entité.

JavaScript exemple:

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

Utilisation

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

Veuillez suivre Liste des Éléments de la manipulation via l'API REST SharePoint 2010 article pour une plus détail.

17
répondu Vadim Gremyachev 2014-11-23 12:12:05

Voici la mise à jour et supprimer, il n'était pas aussi difficile que je pensais qu'il allait être et il fonctionne. J'espère que cela aidera quelqu'un parce qu'il y a tellement de fausses informations sur l'utilisation de L'API REST et je vois un zillion de messages sur la recherche mais aucun sur 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();

                   }
               });

           }




           }
8
répondu Fab 2013-07-23 21:28:52