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();
}
});
}
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
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 laPOST
verbe. - Ajouter un
X-HTTP-Method
en-tête avec une valeur deMERGE
. - 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 deDELETE
. - 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.
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();
}
});
}
}