Flex Gateway新着情報
Governance新着情報
Monitoring API Managerモジュールソースは、GraphQL API の実装によって異なります。APIkit for GraphQL には 2 種類のソースがあります。
データフェッチャー
データローダー
どちらを選択するかは実装のニーズによって決まります。
GraphQL はトランスポートレイヤーに依存しないため、データの処理に使用するプロトコルに応じてメインコネクタリスナーを選択できます。
メインアプリケーションフローをトリガーするインバウンドエンドポイントは、使用するクライアントサーバープロトコルに固有のコネクタリスナーです。GraphQL は HTTP で通信を行うことが多いため、APIkit スキャフォルダーはデフォルトで HTTP リスナーを生成しますが、別のソースを選択して別のプロトコルでデータを転送することもできます。
データフェッチャーは、Mule フローのソースです。クエリ結果の単一オブジェクト項目のデータを供給します。データフェッチャーは、次のキーパートの組み合わせによって識別されます。
オブジェクト種別名: スキーマのいずれかのオブジェクト種別
項目名: そのオブジェクト種別に含まれるいずれかの項目の名前
項目の型が何であっても、スキーマで定義されているすべてのオブジェクト項目に対してデータフェッチャーを追加できます。Mule アプリケーションで項目に対してデータフェッチャーが設定されていない場合は、親型から項目値が供給されます。そうでない場合は、クライアントが要求したデータは提供されず、null
となります。
データフェッチャーと同じ用に、データローダーも Mule フローのソースです。データローダーは、オブジェクト種別に関連したバッチ要求を処理します。データフェッチャーとは異なり、一意のキー識別子によって識別されます。
オブジェクト種別名: スキーマのいずれかのオブジェクト種別
データローダーは、GraphQL API の実装時に N+1 件の要求の最適化の問題を解決します。この問題は、最初のクエリの実行時に取得できたはずのデータをフェッチするために N 件の追加クエリステートメントが実行された場合に発生します。
モジュールは、実行時にデータフェッチャーを先に探します。データフェッチャーが指定されていない場合は、データローダーを探します。同じオブジェクト種別に対してデータフェッチャーとデータローダーの両方が指定されている場合、モジュールは先にデータフェッチャーを使用して項目を解決します。このプロセスでは、データフェッチャーが N+1 回続けて呼び出されるため、API のパフォーマンスに影響します。
モジュールには、GraphQL API 実装の正常な設計と実行に不可欠な操作が用意されています。
Route (ルート)
Serialize (シリアル化)
Serialize Batch (バッチシリアル化)
Route (ルート) 操作は、GraphQL サービスのエントリポイントです。この操作は、クエリを解析、検証してから、グラフをトラバースし、クエリ結果を得るために必要なデータフェッチャーとデータローダーをコールすることでクエリを実行します。