GraphQL 从变量中添加自省
GraphQL add introspection from a variable
我想在我的应用程序中添加来自变量的内省。
我有这样的自省:
{"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'),
);
谢谢
根据内省查询的结果,您可以使用 buildClientSchema
:
构建模式
import { buildClientSchema } from 'graphql'
const schema = buildClientSchema(introspectionResult)
然后您可以将该模式作为 prop 传递给 GraphiQL 组件:
<GraphiQL fetcher={fetcher} schema={schema} />
当然,这通常不是必需的——如果未传入模式,GraphiQL 将使用您提供的提取器为您进行内省查询。
我想在我的应用程序中添加来自变量的内省。
我有这样的自省:
{"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'),
);
谢谢
根据内省查询的结果,您可以使用 buildClientSchema
:
import { buildClientSchema } from 'graphql'
const schema = buildClientSchema(introspectionResult)
然后您可以将该模式作为 prop 传递给 GraphiQL 组件:
<GraphiQL fetcher={fetcher} schema={schema} />
当然,这通常不是必需的——如果未传入模式,GraphiQL 将使用您提供的提取器为您进行内省查询。