SharePointOnline(以下SPO)で作成したリストに対してJavaScriptからデータの取得操作を行った時の覚え書きです。
はじめに
SPOではREST APIを使用してリスト上のアイテムの取得/登録/更新/削除を行う機能が含まれています。
本記事ではデータの取得を行うGETメソッドについてまとめました。
REST要求の送信
SPOにおけるjQueryおよびAjaxを使用したREST GETリクエストのベースは以下のようになります。
$.ajax({
contentType: "application/json;odata=verbose",
headers: {
"accept": "application/json;odata=verbose"
},
method: "GET",
url: "https://xxx", // SharePointリソースにアクセスするためのREST URL(後述)
success: (data => {
// ここに成功したときの処理を記載する
}),
error: (error => {
// ここにエラーが発生したときの処理を記載する
})
})
SharePointリソースにアクセスするためのREST URL
ベースとなるURL構成は以下です。
https://{サイトURL}/_api/web/lists/GetByTitle('リスト名')
GETメソッドによるデータ取得
今回は以下のような状態を想定してコードを記載しています。
- サイトURL: (ドメイン名)/sites/FruitPortal
- リスト名: Apple
条件を指定して特定のアイテムだけを取得する
特定のプロパティに対して条件を設定する場合は、以下のサンプルコードのようにURLにフィルタークエリ(ODataクエリ)を追記してから、続けて条件式を入力します。
// Titleプロパティが'example'と一致するアイテムを取得する
$.ajax({
contentType: "application/json;odata=verbose",
headers: {
"accept": "application/json;odata=verbose"
},
method: "GET",
// URLに使用できない文字はURLエンコードした文字に置き換える
// $ -> %24
// 半角スペース -> %20
url: "https://(ドメイン名)/sites/FruitPortal/_api/web/lists/GetByTitle('Apple')/items%24filter=Title%20eq%20'example'",
success: (data => {
data = data.d.results;
}),
error: (error => {
console.log(JSON.stringify(error));
})
})
OData要求についてはこちらを参照してください。
URLエンコードの対応についてはこちらを参照してください。
以下に主要な演算子とよく利用する検索条件についてまとめました。
演算子 | 意味 |
---|---|
eq | 等価 |
ne | 等価でない |
gt | より大きい |
ge | 以上 |
lt | より小さい |
le | 以下 |
- IDが一致するアイテムを取得する
$filter=ID eq 2
- 特定のプロパティの数値が指定の数より大きいアイテムを取得する
// Countプロパティの値が10より大きいアイテムを取得
$filter=Count gt 10
- 指定した日時以降に作成したアイテムを取得する
$filter=Modified ge DateTime'2022-08-05T09:00:00'
終わりに
今回はSPOでREST APIを用いたデータの取得方法についてまとめました。
残りのPOST/PUT/DELETEメソッドも順次公開していきたいと思います。
参考ページ