ItemServiceのRESTful API

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

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

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

認証

ログイン

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

動詞

POST

URL

/auth/login

JavaScript例

var xhr = new XMLHttpRequest(); xhr.open("POST", "https:///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:///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:///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

Welcome to Sitecore

\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:///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:///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:///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:///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:///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:///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:///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

デフォルト

ソーティング

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

(昇順)またはd(降順)

文字列、オプション

例: aTemplateName|dItemId

側面

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

文字列、オプション

例: _templatename|condition

JavaScript例

var xhr = new XMLHttpRequest(); xhr.open("GET", "http:///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:///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:///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", "/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:///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:///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(サービス不可)
この記事を改善するための提案がある場合は、 お知らせください!