ItemServiceのRESTful API

Version:
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

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

認証

ログイン

この方法を使用してユーザーを認証します。認証Cookieを設定します。このメソッドは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 (Forbidden) を送信します。

メモ

クロスサイトログインを実行する必要がある場合は、xhr.withCredentialsプロパティをtrueに設定します。

ログアウト

この方法を使用してSitecoreからログアウトします。認証Cookieを削除します。

動詞

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 (Forbidden) を送信します。

手記

クロスサイトログアウトを実行する必要がある場合は、xhr.withCredentialsプロパティをtrueに設定します。

IDによるアイテムの取得

これを使用して、IDで指定した1つのSitecoreアイテムを取得します。

動詞

GET

関連URL

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

URLには次のパラメータがあります。

名前

形容

細部

身分証明書

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

guid、必須

例: 110D559F-DEA5-42EA-9C1C-8A5DF7E70EF9

データベース

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

文字列、オプション

例: core

デフォルト: ログインしたユーザーのコンテキストデータベース

言語

言語を選択します。

文字列、オプション

例: ja-JP

デフォルト: ログインしているユーザーのコンテキスト言語

バージョン

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

文字列、オプション

例: 1

デフォルト: 最新バージョン

includeStandardTemplateFields

trueの場合、標準テンプレート フィールドは取得されるデータの一部です。

bool、オプション

デフォルト: false

includeMetadata

trueの場合、メタデータは取得されたデータの一部です。

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" 
}

エラーは、次のいずれかの応答を返します。

Response

Description

400

不正なリクエストです。これは、パラメータが無効であるなどの理由で、リクエストがサーバーによって受け入れられないことを示しています。また、リクエストを繰り返さないようにすることも示しています。

403

禁じられた。セキュリティ上の理由から、この要求は許可されていません。

404

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

コンテンツ パスによるアイテムの取得

このメソッドを使用して、コンテンツ パスで指定した1つのSitecoreアイテムを取得します。

動詞

GET

関連URL

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

URLには次のパラメータがあります。

名前

形容

細部

パス

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

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

データベース

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

文字列、オプション

例: core

デフォルト: ログインしたユーザーのコンテキストデータベース

言語

言語を選択してください。

文字列、オプション

例: ja-JP

デフォルト: ログインしているユーザーのコンテキスト言語

バージョン

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

文字列、オプション

例: 1

デフォルト: 最新バージョン

includeStandardTemplateFields

trueの場合、標準テンプレート フィールドは取得されるデータの一部です。

bool、オプション

デフォルト: false

includeMetadata

trueの場合、メタデータは取得されたデータの一部です。

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アイテムの子を取得します

動詞

取得

関連URL

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

URLには次のパラメータがあります。

名前

形容

細部

身分証明書

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

guid、必須

例: 110D559F-DEA5-42EA-9C1C-8A5DF7E70EF9

データベース

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

文字列、オプション

例: core

デフォルト: ログインしたユーザーのコンテキストデータベース

言語

言語を選択します。

文字列、オプション

例: ja-JP

デフォルト: ログインしているユーザーのコンテキスト言語

バージョン

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

文字列、オプション

例: 1

デフォルト: 最新バージョン

includeStandardTemplateFields (標準テンプレートフィールドを含む)

trueの場合、標準テンプレート フィールドは取得されるデータの一部です。

bool、オプション

デフォルト: false

includeMetadata(メタデータを含む)

trueの場合、メタデータは取得されたデータの一部です。

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

応答は、1つの項目を取得するときに得られる応答と似ています。

アイテムを作成する

この方法を使用して、新しい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 (見つかりません)

アイテムの編集

この方法を使用して、アイテムを編集します。フィールド値、アイテム名、アイテムの移動をすべて1つのHTTPリクエストで更新できます。

動詞

PATCH

関連URL

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

URLには次のパラメータがあります。

名前

形容

細部

身分証明書

編集するSitecoreアイテムのIDを指定します。

guid、必須

例: 110D559F-DEA5-42EA-9C1C-8A5DF7E70EF9

データベース

アイテムが存在するデータベースを指定します。

文字列、オプション

例: core

デフォルト: ログインしたユーザーのコンテキストデータベース

言語

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

文字列、オプション

例: ja-JP

default: ログインしたユーザーのコンテキスト言語

バージョン

編集するアイテムのバージョンを指定します。

文字列、オプション

例: 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}");

次のいずれかの応答が返されます。

Response

Description

204

コンテンツはありません。これは、リクエストが成功したときのレスポンスです。

400

不正なリクエストです。これは、パラメータが無効であるなどの理由で、リクエストがサーバーによって受け入れられないことを示しています。また、リクエストを繰り返さないようにすることも示しています。

403

禁じられた。セキュリティ上の理由から、この要求は許可されていません。

404

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

アイテムの削除

この方法を使用して、アイテムを削除します。

動詞

DELETE

関連URL

/item/{id}?database&language

URLには次のパラメータがあります。

名前

形容

細部

身分証明書

削除するSitecoreアイテムのIDを指定します。

guid、必須

例: 110D559F-DEA5-42EA-9C1C-8A5DF7E70EF9

データベース

アイテムが存在するデータベースを指定します。

文字列、オプション

例: core

デフォルト: ログインしたユーザーのコンテキストデータベース

言語

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

文字列、オプション

例: ja-JP

default: ログインしたユーザーのコンテキスト言語

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

次のいずれかの応答が返されます。

Response

Description

204

コンテンツはありません。これは、リクエストが成功したときのレスポンスです。

400

不正なリクエストです。これは、パラメータが無効であるなどの理由で、リクエストがサーバーによって受け入れられないことを示しています。また、リクエストを繰り返さないようにすることも示しています。

403

禁じられた。セキュリティ上の理由から、この要求は許可されていません。

404

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

ストアド クエリの実行

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

動詞

GET

関連URL

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

URLには次のパラメータがあります。

名前

形容

細部

身分証明書

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

guid、必須

例: 110D559F-DEA5-42EA-9C1C-8A5DF7E70EF9

pageSize

サービスがHTTPレスポンスで返す結果の数を指定します。

integer、オプション

デフォルト: 10

ページ

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

integer、オプション

デフォルト: 0

データベース

アイテムが存在するデータベースを指定します。

文字列、オプション

例: core

デフォルト: ログインしたユーザーのコンテキストデータベース

includeStandardTemplateFields

trueの場合、標準テンプレート フィールドは取得されるデータの一部です。

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" 
        } 
    ] 
}

リクエストが成功しなかった場合は、次のいずれかのレスポンスを受け取ることができます。

Response

Description

400

不正なリクエストです。これは、パラメータが無効であるなどの理由で、リクエストがサーバーによって受け入れられないことを示しています。また、リクエストを繰り返さないようにすることも示しています。この応答は、クエリ定義項目が存在しない場合に取得されます。

403

禁じられた。セキュリティ上の理由から、要求は許可されていません

Sitecore検索を実行する

この方法を使用して、Sitecore検索を実行します。

動詞

GET

関連URL

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

URLには次のパラメータがあります。

名前

形容

細部

用語

検索するテキストを指定します。

文字列、必須

例: Home

pageSize

サービスがHTTPレスポンスで返す結果の数を指定します。

integer、オプション

デフォルト: 10

ページ

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

integer、オプション

デフォルト: 0

データベース

アイテムが存在するデータベースを指定します。

文字列、オプション

例: core

デフォルト: ログインしたユーザーのコンテキストデータベース

言語

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

文字列、オプション

例: ja-JP

default: ログインしたユーザーのコンテキスト言語

includeStandardTemplateFields

trueの場合、標準テンプレート フィールドは取得されるデータの一部です。

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を指定します。

guid、必須

例: 110D559F-DEA5-42EA-9C1C-8A5DF7E70EF9

用語

検索するテキストを指定します。

文字列、必須

例: Home

pageSize

サービスがHTTPレスポンスで返す結果の数を指定します。

integer、オプション

デフォルト: 10

ページ

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

integer、オプション

デフォルト: 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 (サービス利用不可)

この記事を改善するための提案がある場合は、 お知らせください!