変更タイプ (alteration type) に基づくサブスクリプション

デフォルトでは、エンティティの作成または実際の更新操作中にトリガーされた条件 (サブスクリプションの subject フィールドと conditions フィールドで表現されます。たとえば、対象となるエンティティ、 チェックする属性のリスト、フィルター式など) が発生すると、サブスクリプションがトリガーされます (つまり、サブスクリプションに関連付けられた通知が送信されます)。

ただし、このデフォルトの動作を変更して、たとえば、エンティティが作成されたとき、またはエンティティ が削除されたときにのみ通知を送信できるようにすることができますが、エンティティが更新されたときは 送信できません。

特に、conditions のサブフィールドとして alterationTypes フィールドが使用されます。 このフィールドの値は、サブスクリプションがトリガーされる変更タイプのリストを要素が指定する配列です。 現時点では、次の変更タイプがサポートされています:

  • entityUpdate: サブスクリプションの対象となるエンティティが更新されるたびに通知が送信されます (エンティティが実際に変更されたかどうかは関係ありません)
  • entityChange: サブスクリプションの対象となるエンティティが更新され、実際に変更されるたびに通知が 送信されます (または、実際の更新ではないが、更新要求で forcedUpdate オプション が使用されている場合)
  • entityCreate: サブスクリプションの対象となるエンティティが作成されるたびに通知が送信されます
  • entityDelete: サブスクリプションの対象となるエンティティが削除されるたびに通知が送信されます

たとえば:

  "conditions": {
    "alterationTypes": [ "entityCreate", "entityDelete" ],
    ...
  }

エンティティの作成または削除が行われたときにサブスクリプションがトリガーされますが、更新が 行われたときはトリガーされません。alterationTypes 配列の要素は、OR の意味で解釈されます。

デフォルトの alterationTypes (つまり、サブスクリプションが明示的に指定していないもの) は ["entityCreate", "entityChange"] です。

特定の変更タイプは、alterationType 組み込み属性 を使用して通知で取得できます。