ODataアイテム サービス
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
ODataアイテム サービスは、Sitecoreアイテムへの読み取り専用アクセスに使用します。このサービスは、APIキーを使用して要求を認証します。このサービスは、/sitecore/api/ssc/aggregate/content/Itemsエンドポイントを公開します。データをOData (JSON) 形式で返します。
このトピックでは、次の内容について説明します。
要求のセキュリティ コンテキスト
要求のセキュリティ コンテキスト
Sitecoreは、現在のSitecoreユーザーのセキュリティ コンテキストでODataアイテム サービスへの要求を実行します。
ODataアイテム サービスには匿名でアクセスできます。Sitecoreは、Sitecore.Services.AnonymousUser設定で定義されたユーザーのセキュリティ コンテキストで匿名要求を実行します。このような要求は、ユーザーの偽装を使用し、既定ではsitecore\ServicesAPIユーザーとして実行されます。
APIキーの使用
APIキーの使用
すべての要求でAPIキーをODataアイテム サービスに渡す必要があります。APIはGETリクエストで渡します。例えば:
sitecore/api/ssc/aggregate/content/Items('{<item id>}')?sc_apikey=<api key>
OData Item API Keyテンプレートには、ODataアイテム サービスで使用される2つのフィールドが導入されています。
|
Field |
Description |
Example |
|---|---|---|
|
データベース |
アイテムを取得するデータベースの名前を指定します。このフィールドは必須です。 |
web |
|
検索フィルター |
検索オプションをODataフィルター形式で指定します。OData Item Serviceは、and演算子を使用して、$filterパラメーターの値に値を加算します。このフィールドはオプションです。 |
TemplateName eq 'Sample Item' 標準値: IsLatestVersion eq true (最新バージョンのアイテムのみを返します) |
フィールドでは大文字と小文字が区別されます。
アイテムの取得
アイテムの取得
次のサブセクションの表は、OData Item Serviceに対するいくつかの一般的なGET要求を実行する方法を示しています。簡潔にするために、APIキーは構文に示されていません。
キーによるアイテムの取得
これらのリクエストは、1つ以上のアイテムを取得します。
|
Purpose of request |
Syntax |
|---|---|
|
アイテムIDで識別されるアイテムを取得する |
/sitecore/api/ssc/aggregate/content/Items('{110D559F-DEA5-42EA-9C1C-8A5DF7E70EF9}') |
|
パスで識別される項目を取得する |
/sitecore/api/ssc/aggregate/content/Items('/sitecore/content/Home') |
|
カスタムフィールドを含むアイテムを取得する |
/sitecore/api/ssc/aggregate/content/Items('{110D559F-DEA5-42EA-9C1C-8A5DF7E70EF9}')?$expand=Fields |
|
カスタムフィールド値の取得(名前/値フィールド形式) |
/sitecore/api/ssc/aggregate/content/Items('{110D559F-DEA5-42EA-9C1C-8A5DF7E70EF9}')?$expand=FieldValues |
|
カスタムフィールドと標準フィールドを含むアイテムを取得する |
/sitecore/api/ssc/aggregate/content/Items('{110D559F-DEA5-42EA-9C1C-8A5DF7E70EF9}')?$expand=Fields, StandardFields |
|
カスタムおよび標準フィールド値の取得 (名前/値フィールド形式) |
/sitecore/api/ssc/aggregate/content/Items('{110D559F-DEA5-42EA-9C1C-8A5DF7E70EF9}')?$expand=FieldValues, StandardFieldValues |
|
アイテムのすべての子を取得する |
/sitecore/api/ssc/aggregate/content/Items('/sitecore/content')/Children |
|
アイテムの親を取得する |
/sitecore/api/ssc/aggregate/content/Items('{110D559F-DEA5-42EA-9C1C-8A5DF7E70EF9}')/Parent |
|
アイテムの特定の言語バージョンを取得する |
/sitecore/api/ssc/aggregate/content/Items('{110D559F-DEA5-42EA-9C1C-8A5DF7E70EF9}')?language=ja-JP |
|
アイテムの特定のバージョンを取得する |
/sitecore/api/ssc/aggregate/content/Items('{110D559F-DEA5-42EA-9C1C-8A5DF7E70EF9}' )?version=2 |
|
プロパティprojectionを使用してItemを取得する (指定されたItemプロパティのみを提供) |
/sitecore/api/ssc/aggregate/content/Items('{110D559F-DEA5-42EA-9C1C-8A5DF7E70EF9}' )?$select=Id,Name,TemplateName |
|
フィールド プロジェクションを使用してアイテムを取得 (指定されたフィールド プロパティのみを提供) |
/sitecore/api/ssc/aggregate/content/Items('{110D559F-DEA5-42EA-9C1C-8A5DF7E70EF9}' )?expand=Fields($select=Name,Value) Sitecore 9 Update 2以降では、代わりにこれを使用します。 /sitecore/api/ssc/aggregate/content/Items('{110D559F-DEA5-42EA-9C1C-8A5DF7E70EF9}')?$expand=FieldValues($select=Title,Text |
アイテム検索
これらのリクエストでは、Sitecoreコンテンツ検索を使用してアイテムを検索し、ODataアイテム サービス検索には一般的なコンテンツ検索と同じ機能があります。
|
Purpose of request |
Syntax |
|---|---|
|
アイテムのプロパティで検索 |
/sitecore/api/ssc/aggregate/content/Items?$filter=Name eq 'Home' |
|
複数のアイテムのプロパティで検索 |
/sitecore/api/ssc/aggregate/content/Items?$filter=Name eq 'Home' and TemplateName eq 'Sample Item' |
|
フィールド値で検索します (この例では、フィールドTitleが 'Welcome'と等しくないアイテムを取得します) |
/sitecore/api/ssc/aggregate/content/Items?$filter=FieldValues/Title ne 'Welcome' フィルタリングするプロパティを展開する必要はありません。たとえば、FieldValuesプロパティでフィルター処理し、フィールド を展開することができます。 /sitecore/api/ssc/aggregate/content/Items?$filter=FieldValues/Title ne 'Welcome'&$expand=Fields |
|
複数のフィールド値で検索 |
/sitecore/api/ssc/aggregate/content/Items?$filter=FieldValues/Title eq 'My Title' and FieldValues/Text eq 'My text' |
|
日時から探す |
/sitecore/api/ssc/aggregate/content/Items?$filter=TemplateName eq 'Sample Item' and Updated ge 2017-03-22T10:42:00Z |
次のOData演算子を使用できます。
|
演算子 |
形容 |
|---|---|
|
eq |
等しい |
|
ne |
等しくない |
|
gt |
より大きい |
|
ge |
より大きいか等しい |
|
lt |
未満 |
|
le |
以下 |
|
and |
logicalと |
|
or |
論理または |
|
not |
論理否定 |
次のOData文字列関数を使用できます。
-
contains
-
startswith
-
endswith
検索結果の並べ替え
検索結果は、$orderbyクエリオプションを使用して並べ替えることができます。並べ替える複数のプロパティを指定するには、区切り記号としてコンマを使用します。デフォルトのソート順は昇順です。並べ替え順序を変更するには、プロパティ名の後にdescキーワードを追加します。
ODataアイテム サービスでは、ContentSearchコンポーネントによって提供される並べ替え機能を使用します。
次の例は、ソート項目を示しています。
|
Purpose |
Syntax |
|---|---|
|
プロパティによる注文 |
/sitecore/api/ssc/aggregate/content/Items?$orderby=Name |
|
プロパティによる降順の順序 |
/sitecore/api/ssc/aggregate/content/Items?$orderby=Name desc |
|
複数のプロパティで並べ替える |
/sitecore/api/ssc/aggregate/content/Items?$orderby=Name, Created |
|
フィールド値による順序付け |
/sitecore/api/ssc/aggregate/content/Items?$orderby=FieldValues/Color |
ページング検索結果
検索結果の項目数を制限するには、$skipオプションと$topオプションを使用します。 $skipオプションを使用して、指定された量の項目を結果からスキップします。 $topオプションを使用して、結果に含まれるアイテムの数を制限します。
$skipと $topを組み合わせて、ページングされたコレクションを取得できます。
次の例は、結果に対してページングを行う方法を示しています。
|
Purpose |
Syntax |
|---|---|
|
上位3つのアイテムを入手する |
/sitecore/api/ssc/aggregate/content/Items?$top=3 |
|
最初のアイテムをスキップして、残りのアイテムを入手してください |
/sitecore/api/ssc/aggregate/content/Items?$skip=1 |
|
3つのアイテムをスキップしてから、3つのアイテムをゲット |
/sitecore/api/ssc/aggregate/content/Items?$skip=3&$top=3 |
フィールドの形式
フィールドの形式
OData Itemサービスには、次の2つの形式でフィールドが用意されています。
-
オブジェクトとしてのフィールド (FieldsプロパティとStandardFieldsプロパティ)
-
名前と値のペアとしてのフィールド (FieldValuesプロパティとStandardFieldValuesプロパティ)
フィールド名のすべてのスペースはアンダースコア ("_") に置き換えられます。
FieldsとStandardFields
OData Itemサービスは、FieldsプロパティとStandardFieldsプロパティの値をフィールド オブジェクトのコレクションとして提供します。
画像フィールド
OData Itemサービスには、イメージ フィールド (URL、Altなど) の追加プロパティが用意されています。
FieldValuesとStandardFieldValues
Odata Itemサービスは、FieldValuesプロパティとStandardFieldValuesプロパティの値を単純なオブジェクトとして提供します。このオブジェクトのプロパティは、フィールド (フィールド名と値) を表します。
$countは、アイテムが持つフィールドの数を示すサービスプロパティです。
画像フィールド
OData Itemサービスには、イメージ フィールド (URL、Altなど) の追加プロパティが用意されています。追加のプロパティの名前には、<field-name>__<extra-name>の形式が使用されます。