1

クエリを外部ファイルに保存したいとします。たとえば、次のようにします。

query GetAllTodos {
  todos{
    _id
    todoMessage
    createdAt
  }
}

query GetAllTests {
  tests
}

ファイル全体を単一の文字列にロードして、その文字列を ApolloClient に渡し、実行するクエリを選択することは可能ですか?

apollo.query({query: gql([allQueries])}, select: 'TodoQuery').then(({data})=>data);

他のクライアントでこれを行うことは可能ですか? アポロはいらない。

4

1 に答える 1

0

特に既存のツールでそれを行う方法を知りません。

そうは言っても、これらのクエリからモジュールを作成できます(ES6 +とパッケージを使用していると仮定しますgraphql-tag):

// queries.js
export const GetAllTodos = gql`...`
export const GetAllTests = gql`...`

// Where you do a query
import { GetAllTodos, GetAllTests } from './queries.js';
apollo.query({ query: GetAllTodos }).then(( { data } => data);

より動的なものが必要な場合、queries.jsモジュールはおそらくこれらにマップできる関数をエクスポートできます。

// queries.js
export const queries = {
  'GetAllTodos': gql`...`,
  'GetAllTests': gql`...`'
};

export default function selectQuery(key) {
  return queries[key];
}

// Where you do a query
import selectQuery from './queries.js';
apollo.query({ query: selectQuery('GetAllTodos') }).then(( { data } => data);

次に、これを拡張して、「TodoQuery」に一致するクエリを検索して検索することができますが、元の例のようにクエリに別の名前を付けることができます。

于 2016-11-17T02:59:36.627 に答える