Schema Registry API ガイド付録

このドキュメントでは、Schema Registry APIの操作に関する補足情報を提供します。

クエリパラメーターの使用 query

Schema Registryは、リソースのリスト時にクエリ パラメーターを使用して結果をページ化およびフィルタリングすることをサポートしています。

NOTE
複数のクエリパラメーターを組み合わせる場合は、アンパサンド(&)で区切る必要があります。

ページング paging

ページングに最も一般的なクエリパラメーターは次のとおりです。

パラメーター
説明
orderby
特定のプロパティで結果を並べ替えます。 例:orderby=title は昇順(A ~ Z)のタイトルで結果を並べ替えます。 パラメーター値(orderby=-title)の前に-を追加すると、タイトル別に項目が降順(Z-A)で並べ替えられます。
limit
orderby パラメーターと組み合わせて使用する場合、limitは、特定のリクエストに対して返すアイテムの最大数を制限します。 このパラメーターは、orderby パラメーターが存在しない場合は使用できません。

limit パラメーターは、返されるアイテムの最大数について、ヒント​として正の整数(0から500の間)を指定します。 例えば、limit=5はリスト内の5つのリソースのみを返します。 ただし、この値は厳密には尊重されません。 実際の応答サイズは、start パラメーターが指定されている場合に、信頼性の高い操作を提供する必要性によって制約されるため、小さくても大きくてもかまいません。
start
orderby パラメーターと組み合わせて使用する場合、startは、サブセットされた項目のリストを開始する場所を指定します。 このパラメーターは、orderby パラメーターが存在しない場合は使用できません。 この値は、リスト応答の_page.next属性から取得でき、結果の次のページにアクセスするために使用されます。 _page.next値がnullの場合、使用可能な追加ページはありません。

通常、このパラメーターは結果の最初のページを取得するために省略されます。 その後、startは、前のページで受け取ったorderby フィールドのプライマリソートプロパティの最大値に設定する必要があります。 その後、API応答は、指定された値より厳密に大きい(昇順)または厳密に小さい(降順)のorderbyのプライマリソートプロパティを持つエントリで始まるエントリを返します。

例えば、orderby パラメーターがorderby=name,firstnameに設定されている場合、start パラメーターにはname プロパティの値が含まれます。 この場合、「Miller」という名前の直後にリソースの次の20個のエントリを表示する場合は、?orderby=name,firstname&start=Miller&limit=20を使用します。

フィルタリング filtering

取得したリソース内の特定のJSON プロパティに対して特定の演算子を適用するために使用されるproperty パラメーターを使用して、結果をフィルタリングできます。 サポートされる演算子は次のとおりです。

演算子
説明
==
プロパティが指定された値に等しいかどうかをフィルタリングします。
property=title==test
!=
プロパティが指定された値と等しくないかどうかを基準にフィルタリングします。
property=title!=test
<
プロパティが指定された値より小さいかどうかを基準にフィルタリングします。
property=version<5
>
プロパティが指定された値より大きいかどうかを基準にフィルタリングします。
property=version>5
<=
プロパティが指定された値以下かどうかを基準にフィルタリングします。
property=version<=5
>=
プロパティが指定された値以上かどうかをフィルタリングします。
property=version>=5
なし
プロパティ名のみを表示すると、プロパティが存在するエントリのみが返されます。
property=title
TIP
property パラメーターを使用して、スキーマフィールドグループを互換性のあるクラスでフィルタリングできます。 例えば、property=meta:intendedToExtend==https://ns.adobe.com/xdm/context/profileは、XDM Individual Profile クラスと互換性のあるフィールドグループのみを返します。

互換性モード compatibility

Experience Data Model (XDM)は、デジタル エクスペリエンスの相互運用性、表現性、およびパワーを向上させるためにAdobeによって開発された、公開されている仕様です。 アドビは、GitHub のオープンソースプロジェクトでソースコードと公式の XDM 定義を公開しています。 これらの定義は XDM 標準表記で記述され、JSON-LD (JavaScript Object Notation for Linked Data)および JSON スキーマを XDM スキーマを定義する文法として使用しています。

パブリックリポジトリーで公式の XDM 定義を見ると、標準 XDM は Adobe Experience Platform での表示とは異なることがわかります。 Experience Platformに表示される内容は互換性モードと呼ばれ、標準XDMとExperience Platform内での使用方法の間の簡単なマッピングを提供します。

互換性モードの仕組み

互換性モードを使用すると、XDM JSON-LD モデルは、同じセマンティクスを保持したままで標準 XDM 内の値を変更することにより、既存のデータインフラストラクチャと連携できます。 ネストされた JSON 構造を使用して、スキーマをツリーに類似した形式で表示します。

標準 XDM と互換性モードの主な違いは、フィールド名の「xdm:」接頭辞が削除されていることです。

標準 XDM と互換性モードの誕生日関連のフィールド(“description” 属性が削除された)を並べて比較したものを次に示します。 互換性モード フィールドには、「meta:xdmField」および「meta:xdmType」属性にXDM フィールドとそのデータタイプへの参照が含まれていることに注意してください。

標準 XDM
互換性モード
{
  "xdm:birthDate": {
    "title": "Birth Date",
    "type": "string",
    "format": "date"
  },
  "xdm:birthDayAndMonth": {
    "title": "Birth Date",
    "type": "string",
    「パターン」: "[0-1][0-9]-[0-9][0-9]"
  },
  "xdm:birthYear": {
    "title": "Birth year",
    "type": "integer",
    "minimum": 1,
    "maximum": 32767
  }
}

{
  "birthDate": {
    "title": "Birth Date",
    "type": "string",
    "format": "date",
    "meta:xdmField": "xdm:birthDate",
    "meta:xdmType": "date"
  },
  "birthDayAndMonth": {
    "title": "Birth Date",
    "type": "string",
    "pattern": "[0-1][0-9]-[0-9][0-9]",
    "meta:xdmField": "xdm:birthDayAndMonth",
    "meta:xdmType": "string"
  },
  "birthYear": {
    "title": "Birth year",
    "type": "integer",
    "minimum": 1,
    "maximum": 32767,
    "meta:xdmField": "xdm:birthYear",
    "meta:xdmType": "short"
  }
}

互換性モードが必要な理由

Adobe Experience Platform は、複数のソリューションやサービスと連携するように設計されており、各ソリューションおよびサービスには固有の技術的課題と制限(特定のテクノロジーが特殊文字を処理する方法など)があります。 これらの制限を克服するために、互換モードが開発されました。

Catalog、Data LakeおよびReal-Time Customer Profileを含むほとんどのExperience Platform サービスでは、標準XDMの代わりにCompatibility Modeを使用しています。 Schema Registry APIもCompatibility Modeを使用しており、このドキュメントの例はすべてCompatibility Modeを使用して示されています。

標準的なXDMとExperience Platformでの運用方法との間でマッピングが行われることを知っておくことは価値がありますが、Experience Platform サービスの使用には影響しません。

オープンソースプロジェクトは利用できますが、Schema Registryを通じてリソースを操作する場合は、このドキュメントのAPIの例で、知っておくべきことと従うべきベストプラクティスが示されています。

recommendation-more-help
experience-platform-help-xdm