graphql

GraphQL ワイヤアダプタは、Lightning データサービス (LDS) を使用してデータを管理します。他のワイヤアダプタとは異なり、GraphQL スキーマで定義されたクエリごとに異なるワイヤアダプタは必要ありません。代わりに LDS は単一の対応付けワイヤアダプタを提供しており、GraphQL クエリドキュメントと変数の対応付けが可能です。

GraphQL ワイヤアダプタは、Salesforce GraphQL API スキーマを使用するため、UI API 対応のオブジェクトを現在のユーザのオブジェクトレベルのセキュリティと項目レベルのセキュリティで利用できるようになります。UI API は、ページ設定に対して GraphQL Cursor Connections Specification (GraphQL カーソル接続仕様) をサポートしています。

GraphQL API スキーマを調べるには、Altair GraphQL クライアントを使用してイントロスペクションからスキーマのドキュメントを確認することをお勧めします。このクライアントでは、項目のオートコンプリート機能を備えたクエリエディタが提供されており、任意の Salesforce オブジェクトに特定の種別の項目を簡単に追加できます。クエリを迅速かつ正確に作成するために、このクライアントを使用することをお勧めします。

GraphQL ワイヤアダプタは、この GraphQL API リソースを使用します。

  • query — (必須) 解析された GraphQL クエリ。gql JavaScript テンプレートリテラル関数を使用してクエリを解析します。gql は、GraphQL クエリをワイヤアダプタが使用できる形式に解析します。gql は、リアクティブではありません。

  • variablesgql クエリの動的な値のキー - 値ペア。ワイヤアダプタが変化に反応できるように variables を getter 関数で使用します。

変数に渡される値は、デフォルト値が指定されていないクエリのすべての変数の値を含む対応付けである必要があります。

:::

  • operationName — クエリで実行する操作の名前。GraphQL クエリで複数の操作が定義されている場合、operationName を使用して実行する操作を選択します。さまざまな GraphQL の要求を識別できるようにするサーバ側でのデバッグを改善するために、短縮構文の query を使用するのではなく、query operationName によってクエリにラベル付けすることをお勧めします。例えば、query bigAccounts または query serviceReports のようにします。

GraphQL 応答仕様との互換性を維持するため、GraphQL ワイヤアダプタでは他の LWC ワイヤアダプタとは異なり error の代わりに errors が使用されます。

ワイヤアダプタの使用を開始するには、識別子をインポートし、コンポーネントのプロパティの設定を指定します。gql 関数を使用してクエリを渡します。

この HTML テンプレートは、クエリで返された最初の 10 個の取引先名を表示します。

リアクティビティを加えるために、variables パラメータに値を渡し、戻り値用の getter を作成します。

getter 関数を使用することで、GraphQL ワイヤアダプタが minAmount の変更に反応するようになります。

例では、$minAmount 変数に Currency 型が宣言されています。Currency は、Salesforce GraphQL API スキーマの型を参照します。Currency 型は、未加工の値です (例、1000)。この場合、1,000 のような書式の値を渡すことはできません。ユーザが異なる金額を選択すると、handleMinAmountChange イベントハンドラによってクエリが更新されます。

この HTML テンプレートでは、最小金額を選択し、照会した取引先を表示できます。

Salesforce の多くの項目は、valuedisplayValueformat 項目によって、未加工値とオブジェクトに対応付けられます。Altair GraphQL クライアントを使用して、スキーマのドキュメントを確認することをお勧めします。

現在、GraphQL API ワイヤアダプタでは次の使用事例はサポートされていません。

  • Experience Cloud サイト
  • 別のコンポーネントからのフラグメントの参照など、実行時の GraphQL クエリの動的作成
  • ${} を使用した文字列の補間構造
  • @skip@include などのディレクティブでの変数の使用

GraphQL API 機能が、ワイヤアダプタで利用できるようになるまでに数回のリリースがかかる可能性があります。「GraphQL Wire Adapter Limitations (GraphQL ワイヤアダプタの制限)」を参照してください。

また、GraphQL クエリが Salesforce モバイルアプリケーション、Salesforce Field Service、または Mobile Offline で事前取得に失敗した場合は、参照整合性とプライミング機能を維持するために、GraphQL クエリで metaschema ディレクティブを引き続き使用する必要があります。Known Issue (既知の問題)「GraphQL query fails prefetch with an "Unknown Field" warning (「不明な項目」の警告により GraphQL クエリが事前取得に失敗する)」 を参照してください。

関連トピック