SharePoint REST APIを使ったListデータの削除

REST APIを使ったリストからのデータの削除

function removeItem(id){
	$.support.cors = true;
  //サイトコレクションのURL
  spsite = "";
  
	var data = $.ajax({
		url: spsite + "_api/Web/Lists/GetByTitle('<listname>')/items(" + id + ")",
		type: "POST",
		headers: {
			"Content-Type" : "application/json;odata=verbose",
			"accept": "application/json;odata=verbose",
			"X-RequestDigest": $("#__REQUESTDIGEST").val(),
			"IF-MATCH": "*",
			"X-HTTP-Method":"DELETE"
		},
    success: function (data) {
            alert('Successfully removed');
        },
		error: function (xhr) { alert(xhr.status + ": " + xhr.statusText) }
	});
}
</listname>

Item Idをキーにして直接削除するのが一番簡単。ajaxのTypeがPOSTで、MethodがDeleteになる。
また、Item Idはリストデータの取得で取得できる。

SharePoint REST APIを使ったListデータの取得

REST APIを使ったリストからのデータ取得

<pre>function getItems() {
$.support.cors = true;
//サイトコレクションのURL
spsite = "";

var data = $.ajax({
  url: spsite + "_api/Web/Lists/GetByTitle('<listname>')/items?$select=Member/Name,Member/Title,Member/Id,Member/Department,Member/JobTitle,Title,Id&$expand=Member&$filter=title eq 'dammy'",
  type: "GET",
  headers: {
    "accept": "application/json;odata=verbose",
  },
  success: this.successGetItems,
  error: function (xhr) { alert(xhr.status + ": " + xhr.statusText) }
  });
}

function successGetItems(data) {
	for (i = 0; i < data.d.results.length ; i++) {
    //data.d.results[i].Member.Name
    //data.d.results[i].Title
	}
});
}
</listname></pre>

ポイントはPeople型の要素の扱いで、そのままだとユーザ名などが取得できず、$expand=Memberで展開して$select=にMember/Name(名前)やMember/Id(ID)などルックアップされた情報を明記しないと使いづらい。
filter=title eq ‘dammy’などでフィルターも可能。

取得したデータはsuccessGetItemsで、forとかで回して1つづつ処理する。