Anypoint DataGraph でのオブジェクト種別コラボレーションの有効化

レベル-1 オブジェクト種別のコラボレーションを有効にすると、統合スキーマを接続し、強化することができます。

コラボレーションが有効化された種別は、API スキーマや他の API スキーマの類似の種別とコラボレーションして、それら独自の項目を追加できるようになります。その結果、より多くの項目やデータセットを使用でき、この種別のクエリ結果がさらに強化されます。

コラボレーションが有効化された種別では、項目が統合スキーマやローカル API スキーマの他の種別に提供されるため、次のことができます。

コラボレーションは、クエリメソッドから直接返されるレベル-1 オブジェクト種別でのみ有効化できます。詳細は、​「レベル-1 種別とネストされた種別」​を参照してください。

コラボレーションを有効にするための要件を正しく理解するには、API スキーマ内の種別を理解しておく必要があります。詳細は、API スキーマの要素の理解を参照してください。

デフォルトのクエリメソッドと主キー

種別のコラボレーションを有効にするには、その種別が項目にアクセスするためのデフォルトのクエリメソッドと 1 つまたは 2 つの主キーを設定する必要があります。

オブジェクト種別のデフォルトのクエリメソッドは、コラボレーションを有効にするそのオブジェクト種別のレコードを 1 件返すメソッドです。クエリメソッドをデフォルトとして選択できるのは次の場合のみです。

  • 1 つまたは 2 つの必須入力引数がある。

  • 入力引数がスカラーデータ型である (​Int​、​Float​、​String​、​Boolean​、​ID​ のいずれか)。

主キーはオブジェクト種別に含まれる項目で、そのオブジェクト種別の 1 つのレコードを一意に識別します。項目を主キーにするには、表示される Null 不可能 (末尾の ​!​ 記号で表される) な項目である必要があります。クエリメソッドで 2 つの主キーが使用されている場合、それは​複合キー​です。

たとえば、次の API スキーマの Order 種別のコラボレーションを有効にするとします。

ordersById (id: ID!): Order
--------------------
--------------------
Order
--------------------
orderId: ID!
date: String
status: String

この例では、デフォルトのクエリメソッドは ​ordersById​、その主キーは ​orderId​ です。 ​ordersById​ が ​Order​ 種別を取得し、​orderId​ を使用して ​ID​ 項目に基づいて特定の情報を取得します。デフォルトのクエリメソッドの入力引数 ​ID​ のデータ型は主キーのデータ型と同じである必要があります。この例では、どちらのデータ型も ​ID!​ です。

複合キーを使用するデフォルトのクエリメソッド

次の複合キーを使用する例では、デフォルトのクエリメソッドは ​productDetail​、その複合キーは ​productId​ と ​productSku​ です。どちらも ​Product​ 種別を取得し、​productId​ と ​productSku​ を使用して ​string​ 項目に基づいて特定の情報を取得します。デフォルトのクエリメソッドの入力引数のデータ型は各主キーのデータ型と同じである必要があります。この例では、どちらのデータ型も ​string!​ です。

productDetail (id: String!, sku: String!): Product
--------------------
--------------------
Product
--------------------
productDetail: string!, string!
productId: String
productSku: String

オブジェクト種別のコラボレーションを有効にする

  1. API スキーマナビゲーションで、コラボレーションを有効にするレベル-1 オブジェクト種別を選択します。

  2. [Collaboration permissions (コラボレーション権限)]​ ペインで、​[Enable collaboration (コラボレーションを有効化)]​ をクリックします。

  3. デフォルトのクエリメソッドを設定します。

    次の画像は、2 つの必須引数を使用するクエリメソッドを示します。

    複合キーを使用するデフォルトのクエリメソッド
  4. [Next (次へ)]​ をクリックします。

  5. クエリメソッドに応じて、1 つまたは 2 つの主キーを選択します。

    次の画像ではクエリメソッドが 2 つの必須引数を使用しており、複合キーを示します。

    2 つの主キーが選択されている

オブジェクト種別のコラボレーションを無効化する

オブジェクト種別がその項目を他の種別に提供することを停止するには、その種別のコラボレーションを無効化します。ただし、統合スキーマ内の別のオブジェクト種別とマージされているオブジェクトのコラボレーションを無効化すると、マージが切断されて競合が発生するため、解決する必要があります。

コラボレーションを無効化する手順は、次のとおりです。

  1. [List of APIs added (追加された API のリスト)]​ をクリックし、コラボレーションを無効化するオブジェクト種別が含まれる API を選択します。

  2. API スキーマナビゲーションで、オブジェクト種別を選択します。

  3. [Collaboration permissions (コラボレーション権限)]​ ペインで、​[Allow collaboration for this type (Extend this type) (この種別のコラボレーションを許可 (この種別を拡張))]​ を選択解除します。

  4. 確認を促されたら、​[Undo merge and disable collaboration (マージを元に戻してコラボレーションを無効化)]​ をクリックしてオブジェクト種別のコラボレーションを無効化することを確認します。

  5. 競合が発生したら、Anypoint DataGraph の画面の指示に従って解決します。