Вставка, обновление, удаление, удаление - программирование

Вставка, обновление, удаление, удаление

Может ли кто-нибудь объяснить или указать мне ссылку с образцами "Обновление", "Удалить" с помощью JQuery с API SharePoint 2010 Rest API?

У меня есть работа с вставкой и, конечно, запросы, так как документация MSDN объясняет, и каждое учебное пособие в сети объясняет запросы, но просто интересно, кто-нибудь когда-либо вставляет, обновляет, удаляет данные, а не только образцы и учебные пособия по запросу? Да, я знаю, что могу использовать CSOM, но я хочу узнать, как это делается через jquery и sharepoint rest?

Также я хочу использовать Merge для обновления.

Здесь код рабочей вставки:

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

                   }
               });
           }
4b9b3361

Ответ 1

Недавно я работал с REST API для SP 2013, как пример POC, который можно использовать для любой реализации вызова, то есть JQuery, С# и т.д.

Использование POSTMAN

Сначала получите токен дайджеста:

На этом сайте найден метод: http://tech.bool.se/basic-rest-request-sharepoint-using-postman/ [Кредит, причитающийся кредит]

POST

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

Заголовок:

Accept : application/json;odata=verbose

Тело Очистить тело

Из полезной нагрузки используйте значение "FormDigestValue" и поместите ее в свои заголовки с помощью ключа: X-RequestDigest при выполнении действий, которые изменяют элементы в SharePoint.

Чтение данных:

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​

Когда вы планируете создавать, обновлять и удалять, для выполнения этих действий вам нужен токен дайджеста или токен авторизации, этот токен выделяется в начале для извлечения.

Создание данных 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

Тело

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

Примечание: 'ServerRelativeUrl' папка в конце POC3 - это папка, которую я хочу создать

Связанные ресурсы: http://msdn.microsoft.com/en-us/library/office/fp142380(v=office.15).aspx

Примечание: Для этого примера использовался PostMan, и вам может понадобиться URL для кодирования конечной точки.

Вышеуказанная структура запроса может использоваться для всех запросов, связанный ресурс выделяет некоторые стандартные методы, которые можно использовать с REST Api

Ответ 2

Как выполнять операции CRUD с использованием интерфейса REST SharePoint 2010

Создать

Чтобы выполнить операцию Create через REST, вы должны выполнить следующие действия:

  • Создайте HTTP-запрос, используя глагол POST.
  • Используйте URL-адрес службы, в который вы хотите добавить объект, как цель для POST.
  • Задайте тип содержимого application/json.
  • Сериализовать объекты JSON, которые представляют ваши новые элементы списка, как string и добавьте это значение в тело запроса

Пример 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));
  }
);

Read

Чтобы выполнить операцию чтения через REST, вы должны выполнить следующие действия:

  • Создайте HTTP-запрос с помощью GET-глагола.
  • Используйте 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));
  }
);

Обновление

Чтобы обновить существующий объект, вы должны выполнить следующие действия:

  • Создайте запрос HTTP, используя глагол POST.
  • Добавьте заголовок X-HTTP-Method со значением MERGE.
  • Используйте URL-адрес службы элемента списка, который вы хотите обновить, в качестве целевого для POST
  • Добавьте заголовок If-Match со значением оригинала ETag.

Пример 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));
  }
);

Удалить

Чтобы удалить объект, вы должны выполнить следующие действия:

  • Создайте HTTP-запрос, используя глагол POST.
  • Добавьте заголовок X-HTTP-Method со значением DELETE.
  • Используйте URL-адрес службы элемента списка, который вы хотите обновить, в качестве целевого для POST
  • Добавьте заголовок If-Match со значением оригинала ETag.

Пример 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));
  }
);

Для более подробной информации, пожалуйста, следуйте Управлять списками элементов через REST API в SharePoint 2010.

Ответ 3

Вот обновление и удаление, это было не так сложно, как я думал, это будет, и это сработает. Надеюсь, это поможет кому-то, потому что существует так много фиктивной информации об использовании REST API, и я вижу миллион сообщений при запросе, но ни один из них не добавлен в 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();

                   }
               });

           }




           }