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)

然后,您可以将该模式作为道具传递给 GraphiQL 组件:

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

当然,这通常不是必需的——如果未传入模式,那么 GraphiQL 将使用您提供的 fetcher 为您进行自省查询。

于 2019-02-16T07:58:10.420 回答