ODataアイテム サービス

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

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

ODataアイテム サービスは、Sitecoreアイテムへの読み取り専用アクセスに使用します。このサービスは、APIキーを使用して要求を認証します。このサービスは、/sitecore/api/ssc/aggregate/content/Itemsエンドポイントを公開します。データをOData (JSON) 形式で返します。

このトピックでは、次の内容について説明します。

要求のセキュリティ コンテキスト

Sitecoreは、現在のSitecoreユーザーのセキュリティ コンテキストでODataアイテム サービスへの要求を実行します。

ODataアイテム サービスには匿名でアクセスできます。Sitecoreは、Sitecore.Services.AnonymousUser設定で定義されたユーザーのセキュリティ コンテキストで匿名要求を実行します。このような要求は、ユーザーの偽装を使用し、既定ではsitecore\ServicesAPIユーザーとして実行されます。

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'&amp;$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プロパティの値をフィールド オブジェクトのコレクションとして提供します。

"Fields": [
    {
        "Id": "5ab98be3-5e38-4cbf-95cf-0cb8d1929247",
        "Name": "Text",
        "Value": "Welcome to Sitecore",
        "Type": "Single-Line Text",
        ...
    },
    {
        "Id": "b293759d-9a2a-40d2-bb34-46e03952d3e9",
        "Name": "Number",
        "Value": "53",
        "Type": "Integer",
        ...
    },
    {
        "Id": "0b4ffcc9-153c-4de7-8563-2049cf1c933b",
        "Name": "Image",
        "Value": "<image mediaid=\"{04DAD0FD-DB66-4070-881F-17264CA257E1}\" alt=\"This is alternate text\" height=\"\" width=\"\" hspace=\"1\" vspace=\"2\" class=\"ImageClass\" />",
        "Type": "Image",
        ...
        "Url": "/-/media/Default-Website/cover.ashx",
        "Alt": "This is alternate text",
        "Width": "1600",
        "Height": "550",
        "Vspace": "2",
        "Hspace": "1",
        "Class": "ImageClass",
        "MediaItemId": "04dad0fd-db66-4070-881f-17264ca257e1"
    }
]

画像フィールド

OData Itemサービスには、イメージ フィールド (URL、Altなど) の追加プロパティが用意されています。

FieldValuesとStandardFieldValues

Odata Itemサービスは、FieldValuesプロパティとStandardFieldValuesプロパティの値を単純なオブジェクトとして提供します。このオブジェクトのプロパティは、フィールド (フィールド名と値) を表します。

"FieldValues": {
    "$count": 3,
    
    "Text": "Welcome to Sitecore",
    
    "Number": "53",
    
    "Image": "<image mediaid=\"{04DAD0FD-DB66-4070-881F-17264CA257E1}\" alt=\"This is alternate text\" height=\"\" width=\"\" hspace=\"1\" vspace=\"2\" class=\"ImageClass\" />",
    
    "Image__Url": "/-/media/Default-Website/cover.ashx",
    "Image__Alt": "This is alternate text",
}

$countは、アイテムが持つフィールドの数を示すサービスプロパティです。

画像フィールド

OData Itemサービスには、イメージ フィールド (URL、Altなど) の追加プロパティが用意されています。追加のプロパティの名前には、<field-name>__<extra-name>の形式が使用されます。

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