1

変数からアプリにイントロスペクションを追加したいと考えています。

私はこの種の内省を持っています:

{"data":{"__schema":{"queryType":{"name":"PageContentQuery"}....  

(休憩リクエストから取得しています)

この変数をスキーマ プロバイダーにしたいのですが、可能ですか?

完全な変数はこちら: https://stackblitz.com/edit/ts-graphql-demo-ypgi18?file=index.tsx

const fetcher = (params: any) => {
  console.log(params);
  return graphql(schema, params.query, params.variables);
}

const defaultQuery = `{
 page{id,contents}
}`;

render(
  <GraphiQL fetcher={fetcher} schema={schema} defaultQuery={defaultQuery}/>,
  document.getElementById('root'),
);

ありがとう

4

1 に答える 1

0

イントロスペクション クエリの結果を考慮して、次を使用してスキーマを構築できますbuildClientSchema

import { buildClientSchema } from 'graphql'

const schema = buildClientSchema(introspectionResult)

次に、そのスキーマを prop として GraphiQL コンポーネントに渡すことができます。

<GraphiQL fetcher={fetcher} schema={schema} />

もちろん、これは通常は必要ありません。スキーマが渡されない場合、GraphiQL は提供されたフェッチャーを使用してイントロスペクション クエリを作成します。

于 2019-02-16T07:58:10.420 に答える