クライアントが追加のアクションを実行できるように、特定のリクエストが行われたときに常にフィールドを返すことを望みます。Graphqlフィールドを常に返す方法は?
たとえば、ユーザー登録が成功した場合、私はフラッシュメッセージを表示したいと思います。しかし、フロントエンドではなくバックエンドで処理する必要があります。
クライアントは、必要な情報を保持する特定のフィールドを常に要求することができますが、見落としやすいので、必要なときにデータを返すことができます。
これは可能ですか?
クライアントが追加のアクションを実行できるように、特定のリクエストが行われたときに常にフィールドを返すことを望みます。Graphqlフィールドを常に返す方法は?
たとえば、ユーザー登録が成功した場合、私はフラッシュメッセージを表示したいと思います。しかし、フロントエンドではなくバックエンドで処理する必要があります。
クライアントは、必要な情報を保持する特定のフィールドを常に要求することができますが、見落としやすいので、必要なときにデータを返すことができます。
これは可能ですか?
同じ意味で引数が必要な特定のフィールドを必要とするGraphQL仕様はありません。しかしこれはリゾルバの中で扱うことができます。あなたがgetFoos
クエリと呼ばれている、とあなたはそのクエリを取得する際に、常にフィールドfoo
を要求するクライアントを必要とする場合、例えば、getFoos
のためのあなたのリゾルバは次のようになります。
function (obj, args, ctx, info) {
const fields = info.fieldNodes[0].selectionSet.selections.filter(s => s.name.value)
if (!fields.includes('foo')) return Promise.reject(new Error('Missing field foo!'))
// continue resolving the query as normal
}
を各リゾルバは、そのよう取り4番目のパラメータは、どのフィールドが要求されたかを含む、要求に関する詳細情報を含むinfoオブジェクトです。あなたのリゾルバの中に、フィールドが含まれていることを確認してください。欠落している場合は、代わりに拒否されたPromiseを返してください。これにより、特定のフィールドが見つからない場合にクエリが失敗します。
十分な情報が提供されていません。あなたはajaxを使用していますか(あなたの登録フォームはajax経由で提出します)?それとも、デカップリングされたフロントエンドについて話していますか?あなたはgraphqlを使っていますか?あなたはgraphqlにモジュールを使用していますか?どのバージョンのDrupal?あなたが助けを望むなら、人々があなたを助けてくれるようにする必要があります。 – 2pha