---
title: "ItemServiceのRESTful API"
slug: "the-restful-api-for-the-itemservice"
abstract: "RESTful APIを使ってアイテムを扱う方法を説明しています。"
---
# ItemServiceのRESTful API

このトピックでは、ItemServiceが提供するRESTful APIを使ってSitecoreアイテムにアクセスするためのいくつかのユースケースについて説明します。

## 認証

### ログイン

この方法でユーザー認証を行います。認証クッキーを設定します。この方法はHTTPS経由でのみ応答します。

動詞

POST

URL

/auth/login

#### JavaScript例

var xhr = new XMLHttpRequest();
xhr.open("POST", "https://<your server>/sitecore/api/ssc/auth/login");
xhr.setRequestHeader("Content-Type", "application/json");
xhr.onreadystatechange = function () {
 if (this.readyState == 4) {
 alert('Status: '+this.status+'\\nHeaders: '+JSON.stringify(this.getAllResponseHeaders())+'\\nBody: '+this.responseText);
 }
};
xhr.send("{ \\n \\"domain\\": \\"sitecore\\", \\n \\"username\\": \\"admin\\", \\n \\"password\\": \\"b\\" \\n}");

ItemServiceはログインが成功すると200(OK)、ログインが失敗すると403(禁止)を送信します。

> !注クロスサイトログインを行う場合は、xhr.withCredentialsプロパティをtrueに設定してください。

### ログアウト

この方法でSitecoreからログアウトします。認証クッキーは削除されます。

動詞

POST

URL

/auth/logout

#### JavaScript例

var xhr = new XMLHttpRequest();
xhr.open("POST", "http://<your server>/sitecore/api/ssc/auth/logout");
xhr.onreadystatechange = function () {
 if (this.readyState == 4) {
 alert('Status: '+this.status+'\\nHeaders: '+JSON.stringify(this.getAllResponseHeaders())+'\\nBody: '+this.responseText);
 }
};
xhr.send(null);

ItemServiceは成功した場合に200(OK)、ログアウトが成功しなかった場合に403(禁止)を送信します。

> !注クロスサイトログアウトを行う必要がある場合は、xhr.withCredentialsプロパティをtrueに設定してください。

## IDでアイテムを取得する

これを使って、IDで指定した単一のSitecoreアイテムを取得します。

動詞

GET

URL

item/{id}?database&language&version&includeStandardTemplateFields&includeMetadata&fields

URLには以下のパラメータがあります:

名称

概要

詳細

ID

取得するSitecoreアイテムのIDを指定します。

ガイド、必須  
  
例: 110D559F-DEA5-42EA-9C1C-8A5DF7E70EF9

データベース

アイテムを取得できるデータベースを指定します。

文字列、オプション  
  
例: core  
  
デフォルト:ログインユーザー用のコンテキストデータベース

言語

言語を選びましょう。

文字列、オプション  
  
例: ja-JP  
  
デフォルト:ログイン中のユーザーのコンテキスト言語

バージョン

回収するアイテムのバージョンを選択します。

文字列、オプション  
  
例: 1  
  
デフォルト:最新バージョン

includeStandardTemplateFields

もしこれが正しければ、標準テンプレートフィールドは取得されるデータの一部となります。

BOOL、任意  
  
デフォルト: false

includeMetadata

もし真実であれば、メタデータは取得されるデータの一部となります。

BOOL、任意  
  
デフォルト: false

場

カンマ区切られたリストで取得するフィールド名を指定します。

文字列、オプション  
  
例: ItemId,ItemName,TemplateName  
  
デフォルト:すべてのフィールド

### JavaScriptの例:

var xhr = new XMLHttpRequest();
xhr.open("GET", "http://<your server>/sitecore/api/ssc/item/110D559F-DEA5-42EA-9C1C-8A5DF7E70EF9");
xhr.onreadystatechange = function () {
 if (this.readyState == 4) {
 alert('Status: '+this.status+'\\nHeaders: '+JSON.stringify(this.getAllResponseHeaders())+'\\nBody: '+this.responseText);
 }
};
xhr.send(null);

その答えは次のようになります:

200(OK)

Accept: application/json
Content-Type: application/json
{
 "ItemID": "110d559f-dea5-42ea-9c1c-8a5df7e70ef9",
 "ItemName": "Home",
 "ItemPath": "/sitecore/content/Home",
 "ParentID": "0de95ae4-41ab-4d01-9eb0-67441b7c2450",
 "TemplateID": "76036f5e-cbce-46d1-af0a-4143f9b557aa",
 "TemplateName": "Sample Item",
 "CloneSource": null,
 "ItemLanguage": "en",
 "ItemVersion": "1",
 "Title": "Sitecore",
 "Text": "\\r\\n\\t\\t<p>Welcome to Sitecore</p>\\r\\n"
}

エラーは以下のいずれかの回答を示します。

**反応**

**概要**

400

悪いリクエスト。これはサーバーがリクエストを受け入れていないことを示しています。パラメータが無効であるためかもしれません。また、リクエストを繰り返すべきでないことも示しています。

403

禁止。安全上の理由から許可されていません。

404

見つかりません。そのアイテムは存在しないか、あなたがアクセスできません。

## コンテンツパスでアイテムを取得する

この方法で、コンテンツパスで指定した単一のSitecoreアイテムを取得します。

動詞

GET

URL

/item/?path={path}?database&language&version&includeStandardTemplateFields&includeMetadata&fields

URLには以下のパラメータがあります:

名称

概要

詳細

経路

Sitecoreのコンテンツツリーでアイテムへのパスを指定します。

string, requiredexample:/sitecore/content/Home

データベース

アイテムを取得できるデータベースを指定します。

文字列、オプション  
  
例: core  
  
デフォルト:ログインユーザー用のコンテキストデータベース

言語

言語を選べ...

文字列、オプション  
  
例: ja-JP  
  
デフォルト:ログイン中のユーザーのコンテキスト言語

バージョン

回収するアイテムのバージョンを選択します。

文字列、オプション  
  
例: 1  
  
デフォルト:最新バージョン

includeStandardTemplateFields

もしこれが正しければ、標準テンプレートフィールドは取得されるデータの一部となります。

BOOL、任意  
  
デフォルト: false

includeMetadata

もし真実であれば、メタデータは取得されるデータの一部となります。

BOOL、任意  
  
デフォルト: false

場

カンマ区切られたリストで取得するフィールド名を指定します。

文字列、オプション  
  
例: ItemId,ItemName,TemplateNamedefault: all fields

### JavaScript例

var xhr = new XMLHttpRequest();
xhr.open("GET", "http://<your server>/sitecore/api/ssc/item/?path=%2Fsitecore%2Fcontent%2FHomedatabase");
xhr.onreadystatechange = function () {
 if (this.readyState == 4) {
 alert('Status: '+this.status+'\\nHeaders: '+JSON.stringify(this.getAllResponseHeaders())+'\\nBody: '+this.responseText);
 }
};
xhr.send(null);

反応はIDでアイテムを取得する時と同じです。

## アイテムの子を回収する

これを使って、IDで指定したSitecoreアイテムの子ファイルを取得します

動詞

GET

URL

/item/{id}/children?database&language&version&includeStandardTemplateFields&includeMetadata&fields

URLには以下のパラメータがあります:

名称

概要

詳細

ID

取得するSitecoreアイテムのIDを指定します。

ガイド、必須  
  
例: 110D559F-DEA5-42EA-9C1C-8A5DF7E70EF9

データベース

アイテムを取得するデータベースを指定します。

文字列、オプション  
  
例: core  
  
デフォルト:ログインユーザー用のコンテキストデータベース

言語

言語を選びましょう。

文字列、オプション  
  
例: ja-JP  
  
デフォルト:ログイン中のユーザーのコンテキスト言語

バージョン

回収するアイテムのバージョンを選択します。

文字列、オプション  
  
例: 1  
  
デフォルト:最新バージョン

includeStandardTemplateFields

もしこれが正しければ、標準テンプレートフィールドは取得されるデータの一部となります。

BOOL、任意  
  
デフォルト: false

includeMetadata

もし真実であれば、メタデータは取得されるデータの一部となります。

BOOL、任意  
  
デフォルト: false

場

カンマ区切られたリストで取得するフィールド名を指定します。

文字列、オプション  
  
例: ItemId,ItemName,TemplateNamedefault: all fields

### JavaScript例

var xhr = new XMLHttpRequest();
xhr.open("GET", "http://<your server>/sitecore/api/ssc/item/110D559F-DEA5-42EA-9C1C-8A5DF7E70EF9/children");
xhr.onreadystatechange = function () {
 if (this.readyState == 4) {
 alert('Status: '+this.status+'\\nHeaders: '+JSON.stringify(this.getAllResponseHeaders())+'\\nBody: '+this.responseText);
 }
};
xhr.send(null);

その反応は、単一のアイテムを取り戻したときの反応と似ています。

## アイテムを作成する

この方法で新しいSitecoreアイテムを作成します。

動詞

POST

URL

/item/{path}?database&language

URLには以下のパラメータがあります:

名称

概要

詳細

経路

Sitecoreのコンテンツツリーでアイテムが作成される場所への経路を指定します。

文字列、必須  
  
例: sitecore/content/home

データベース

アイテムを取得するデータベースを指定します。

文字列、オプション  
  
例: core  
  
デフォルト:ログインユーザー用のコンテキストデータベース

言語

言語を選びましょう。

文字列、オプション  
  
例: ja-JP  
  
デフォルト:ログイン中のユーザーのコンテキスト言語

### JavaScript例

var xhr = new XMLHttpRequest();
xhr.open("POST", "http://<your server>/sitecore/api/ssc/item/sitecore%2Fcontent%2Fhome ");
xhr.setRequestHeader("Content-Type", "application/json");
xhr.onreadystatechange = function () {
 if (this.readyState == 4) {
 alert('Status: '+this.status+'\\nHeaders: '+JSON.stringify(this.getAllResponseHeaders())+'\\nBody: '+this.responseText);
 }
};
xhr.send("{ \\n \\"ItemName\\": \\"Home\\", \\n \\"TemplateID\\": \\"76036f5e-cbce-46d1-af0a-4143f9b557aa\\", \\n \\"Title\\": \\"Sitecore\\", \\n \\"Text\\": \\"\\\\r\\\\n\\\\t\\\\t\\u003Cp\\u003EWelcome to Sitecore\\u003C/p\\u003E\\\\r\\\\n\\" \\n}");

もしSitecoreがそのアイテムを作成した場合、次のような返答が得られます:

201 (Created)
Headers:
 Location: /item/0727f965-2338-43cc-bd88-5071ad3f7a12?database=master

新しいアイテムのIDは「ロケーション」の一部です。

誤りがある場合、以下の回答が可能です。

-   400(悪いリクエスト)
-   403(禁断)
-   404(見つかりません)

## アイテムを編集する

このメソッドを使ってアイテムを編集できます。フィールド値の更新、アイテム名の更新、アイテムの移動など、すべて一度のHTTPリクエストで可能です。

動詞

PATCH

URL

/item/{id}?database&language&version

URLには以下のパラメータがあります:

名称

概要

詳細

ID

編集したいSitecoreアイテムのIDを指定してください。

ガイド、必須  
  
例: 110D559F-DEA5-42EA-9C1C-8A5DF7E70EF9

データベース

アイテムがどのデータベースにあるかを指定してください。

文字列、オプション  
  
例: core  
  
デフォルト:ログインユーザー用のコンテキストデータベース

言語

言語セレクターを指定します。

文字列、オプション  
  
例: ja-JP  
  
デフォルト:ログインユーザー用のコンテキスト言語

バージョン

編集したいアイテムのバージョンを指定してください。

文字列、オプション  
  
例: 1  
  
デフォルト:最新バージョン

### JavaScript例

var xhr = new XMLHttpRequest();
xhr.open("PATCH", "http://<your server>/sitecore/api/ssc/item/110D559F-DEA5-42EA-9C1C-8A5DF7E70EF9");
xhr.setRequestHeader("Content-Type", "application/json");
xhr.onreadystatechange = function () {
 if (this.readyState == 4) {
 alert('Status: '+this.status+'\\nHeaders: '+JSON.stringify(this.getAllResponseHeaders())+'\\nBody: '+this.responseText);
 }
};
xhr.send("{ \\n \\"ParentID\\": \\"b974fd33-c72e-4bae-a2da-b94fe44f3d6b\\", \\n \\"ItemName\\":\\"Home Renamed\\", \\n \\"Title\\":\\"Sitecore Modified\\" \\n}");

以下のいずれかの回答が返ってきます:

**反応**

**概要**

204

コンテンツなし。これはリクエストが成功したときの応答です。

400

悪いリクエスト。これは、パラメータが無効であるため、サーバーがリクエストを受け入れていないことを示します。また、リクエストを繰り返してはいけないことを示しています。

403

禁止。安全上の理由から許可されていません。

404

見つかりません。そのアイテムは存在しないか、あなたがアクセスできません。

## アイテムを削除する

この方法でアイテムを削除してください。

動詞

DELETE

URL

/item/{id}?database&language

URLには以下のパラメータがあります:

名称

概要

詳細

ID

削除したいSitecoreアイテムのIDを指定してください。

ガイド、必須  
  
例: 110D559F-DEA5-42EA-9C1C-8A5DF7E70EF9

データベース

アイテムがどのデータベースにあるかを指定してください。

文字列、オプション  
  
例: core  
  
デフォルト:ログインユーザー用のコンテキストデータベース

言語

言語セレクターを指定します。

文字列、オプション  
  
例: ja-JP  
  
デフォルト:ログインユーザー用のコンテキスト言語

### JavaScript例

var xhr = new XMLHttpRequest();
xhr.open("DELETE", "http://<your server>/sitecore/api/ssc/item/110D559F-DEA5-42EA-9C1C-8A5DF7E70EF9");
xhr.onreadystatechange = function () {
 if (this.readyState == 4) {
 alert('Status: '+this.status+'\\nHeaders: '+JSON.stringify(this.getAllResponseHeaders())+'\\nBody: '+this.responseText);
 }
};
xhr.send(null);

以下のいずれかの回答が返ってきます:

**反応**

**概要**

204

コンテンツなし。これはリクエストが成功したときの応答です。

400

悪いリクエスト。これは、パラメータが無効であるため、サーバーがリクエストを受け入れていないことを示します。また、リクエストを繰り返してはいけないことを示しています。

403

禁止。安全上の理由から許可されていません。

404

見つかりません。そのアイテムは存在しないか、あなたがアクセスできません。

## ストアクエリを実行します

このメソッドを使って、Sitecoreのアイテム(「クエリ定義アイテム」)に格納されたクエリを実行する(「実行」)します。

動詞

GET

URL

/item/{id}/query?pageSize&page&database&includeStandardTemplateFields&fields

URLには以下のパラメータがあります:

名称

概要

詳細

ID

実行するクエリの定義を含むSitecoreアイテムのIDを指定します。

ガイド、必須  
  
例: 110D559F-DEA5-42EA-9C1C-8A5DF7E70EF9

ページサイズ

HTTP応答でサービスが返す結果の数を指定します。

整数、任意  
  
デフォルト: 10

ページ

サービスが表示する結果ページセットのページ番号を指定します。

整数、任意  
  
デフォルト: 0

データベース

アイテムがどのデータベースにあるかを指定してください。

文字列、オプション  
  
例: core  
  
デフォルト:ログインユーザー用のコンテキストデータベース

includeStandardTemplateFields

もしこれが正しければ、標準テンプレートフィールドは取得されるデータの一部となります。

BOOL、任意  
  
デフォルト: false

場

カンマ区切られたリストで取得するフィールド名を指定します。

文字列、オプション  
  
例: ItemId,ItemName,TemplateName  
  
デフォルト:すべてのフィールド

### JavaScript例

var xhr = new XMLHttpRequest();
xhr.open("GET", "http://<your server>/sitecore/api/ssc/item/110D559F-DEA5-42EA-9C1C-8A5DF7E70EF9/query");
xhr.onreadystatechange = function () {
 if (this.readyState == 4) {
 alert('Status: '+this.status+'\\nHeaders: '+JSON.stringify(this.getAllResponseHeaders())+'\\nBody: '+this.responseText);
 }
};
xhr.send(null);

その返答は次のようなものかもしれません。

200(OK)

Accept: application/json
Content-Type: application/json
{
 "TotalCount": 100,
 "TotalPage": 50,
 "Links": 
 {
 "Href": "http://<your server>/sitecore/api/ssc/item/query?includeStandardTemplateFields=False&fields=ItemID%2CItemName&page=1&database=core&query=%2Fsitecore%2F%2F\*",
 "Rel": "nextPage",
 "Method": "GET"
 }
 ,
 "Results": 
 {
 "ItemID": "31056d46-2faa-4ea2-8759-be93eae10001",
 "ItemName": "client"
 },
 {
 "ItemID": "e9a53290-8618-43ec-9a4b-7da2af424800",
 "ItemName": "Your Apps"
 }
 
}

もしリクエストが成功しなかった場合は、以下のいずれかの回答を受け取ることができます:

**反応**

**概要**

400

悪いリクエスト。これは、パラメータが無効であるため、サーバーがリクエストを受け入れていないことを示しています。また、リクエストを繰り返すべきでないことも示しています。この応答は、クエリ定義項目が存在しないときに受け取られます。

403

禁止。安全上の理由から、この要求は許可されていません

## Sitecore検索を実行してください

この方法でSitecore検索を実行します。

動詞

GET

URL

/item/search?term&pageSize&page&database&language&includeStandardTemplateFields&fields&sorting&facet

URLには以下のパラメータがあります:

名称

概要

詳細

用語

検索するテキストを指定してください。

文字列、必須  
  
例: Home

ページサイズ

HTTP応答でサービスが返す結果の数を指定します。

整数、任意  
  
デフォルト: 10

ページ

サービスが表示する結果ページセットのページ番号を指定します。

整数、任意  
  
デフォルト: 0

データベース

アイテムがどのデータベースにあるかを指定してください。

文字列、オプション  
  
例: core  
  
デフォルト:ログインユーザー用のコンテキストデータベース

言語

言語セレクターを指定します。 all をワイルドカードとして使います。

文字列、オプション  
  
例: ja-JP  
  
デフォルト:ログインユーザー用のコンテキスト言語

includeStandardTemplateFields

もしこれが正しければ、標準テンプレートフィールドは取得されるデータの一部となります。

BOOL、任意  
  
デフォルト: false

場

カンマ区切られたリストで取得するフィールド名を指定します。

文字列、オプション  
  
例: ItemId,ItemName,TemplateName  
  
デフォルト:すべてのフィールド

ソーティング

ソートするフィールドのパイプで分離されたリストを指定します。各値の最初の文字はソート順を指定します:a(昇順)またはd(降順)

文字列、オプション  
  
例: aTemplateName|dItemId

側面

検索結果を制限するために使いたいファセットの名前と値を指定してください

文字列、オプション  
  
例: \_templatename|condition

### JavaScript例

var xhr = new XMLHttpRequest();
xhr.open("GET", "http://<your server>/sitecore/api/ssc/item/search?term&pageSize&page&database&language&includeStandardTemplateFields&fields&sorting&facet");
xhr.onreadystatechange = function () {
 if (this.readyState == 4) {
 alert('Status: '+this.status+'\\nHeaders: '+JSON.stringify(this.getAllResponseHeaders())+'\\nBody: '+this.responseText);
 }
};
xhr.send(null);

その返答は次のようなものかもしれません。

200 (OK)
Accept: application/json
Content-Type: application/json
{
 "Facets": 
 {
 "Name": "\_templatename",
 "Values": 
 {
 "Name": "condition",
 "AggregateCount": 15,
 "Link": {
 "Href": "http://<your server>/sitecore/api/ssc/item/search?includeStandardTemplateFields=False&fields=ItemName%2CTemplateName&term=sitecore&facet=\_templatename%7Ccondition",
 "Rel": "\_templatename|condition",
 "Method": "GET"
 }
 }
 
 }
 ,
 "TotalCount": 15,
 "TotalPage": 8,
 "Links": 
 {
 "Href": "http://<your server>/sitecore/api/ssc/item/search?includeStandardTemplateFields=False&fields=ItemName%2CTemplateName&page=1&term=sitecore&facet=\_templatename%7Ccondition",
 "Rel": "nextPage",
 "Method": "GET"
 }
 ,
 "Results": 
 {
 "ItemName": "Country",
 "TemplateName": "Condition"
 },
 {
 "ItemName": "Page was Visited",
 "TemplateName": "Condition"
 }
 
}

もしリクエストが成功しなかった場合は、以下のいずれかの回答を受け取ることができます:

-   400(悪いリクエスト)
-   403(禁断)
-   503(サービス不可)

## ストアされたSitecore検索を実行してください

このメソッドを使って、Sitecoreのアイテム(「検索定義項目」)に保存されるSitecore検索を実行します。検索定義項目には、検索のルート項目やテンプレートタイプなどのデフォルト値を含みます。URL内で検索語自体を渡します。

動詞

GET

URL

/item/{id}/search?term&pageSize&page&database

URLには以下のパラメータがあります:

名称

概要

詳細

ID

検索定義項目のIDを指定します。

ガイド、必須  
  
例: 110D559F-DEA5-42EA-9C1C-8A5DF7E70EF9

用語

検索するテキストを指定してください。

文字列、必須  
  
例: Home

ページサイズ

HTTP応答でサービスが返す結果の数を指定します。

整数、任意  
  
デフォルト: 10

ページ

サービスが表示する結果ページセットのページ番号を指定します。

整数、任意  
  
デフォルト: 0

データベース

アイテムがどのデータベースにあるかを指定してください。

文字列、オプション  
  
例: core  
  
デフォルト:ログインユーザー用のコンテキストデータベース

### JavaScript例

var xhr = new XMLHttpRequest();
xhr.open("GET", "<your server>/sitecore/api/ssc/item/110D559F-DEA5-42EA-9C1C-8A5DF7E70EF9/search?term&pageSize&page&database");
xhr.onreadystatechange = function () {
 if (this.readyState == 4) {
 alert('Status: '+this.status+'\\nHeaders: '+JSON.stringify(this.getAllResponseHeaders())+'\\nBody: '+this.responseText);
 }
};
xhr.send(null);

その返答は次のようなものかもしれません。

200(OK)

Accept: application/json
Content-Type: application/json
{
 "Facets": 
 {
 "Name": "\_templatename",
 "Values": 
 {
 "Name": "condition",
 "AggregateCount": 15,
 "Link": {
 "Href": "http://<your server>/sitecore/api/ssc/item/search?includeStandardTemplateFields=False&fields=ItemName%2CTemplateName&term=sitecore&facet=\_templatename%7Ccondition",
 "Rel": "\_templatename|condition",
 "Method": "GET"
 }
 }
 
 }
 ,
 "TotalCount": 15,
 "TotalPage": 8,
 "Links": 
 {
 "Href": "http://<your server>/sitecore/api/ssc/item/search?includeStandardTemplateFields=False&fields=ItemName%2CTemplateName&page=1&term=sitecore&facet=\_templatename%7Ccondition",
 "Rel": "nextPage",
 "Method": "GET"
 }
 ,
 "Results": 
 {
 "ItemName": "Country",
 "TemplateName": "Condition"
 },
 {
 "ItemName": "Page was Visited",
 "TemplateName": "Condition"
 }
 
}

もしリクエストが成功しなかった場合は、以下のいずれかの回答を受け取ることができます:

-   400(悪いリクエスト)
-   403(禁断)
-   503(サービス不可)