5

可以传递查询,但显然不是片段:

server.use('/graphiql', graphiqlExpress({
    endpointURL: '/graphql',
    query: `# Welcome to GraphiQL

query PostsForAuthor {
  author(id: 1) {
    firstName
    posts {
      title
      votes
    }
  }
}`}));


更新 10/12/2017 可以使用 Apollo 的客户端发送片段和查询:

http://dev.apollodata.com/core/fragments.html

但是,这不是原始问题的解决方案;我想在启动时将片段传递给 graphiql 服务器实例。

4

2 回答 2

1

启动是指来自服务器吗?如果是这样,我不相信这就是碎片的使用方式。我的理解如下:

  1. 在您提供类型的服务器上(例如User
  2. 在客户端上,您使用查询和片段查询这些类型

例如,如果您User在服务器上提供类型,则在客户端 graphQL 上,您可以使用片段来查询该类型:

graphQL(客户端)

fragment authorData on AuthorType{
  firstName
  posts {
    title
    votes
  }
}

query PostsForAuthor {
  author(id: 1) {
    ...authorData
  }
}
于 2018-02-12T00:28:12.293 回答
0

正如您所注意到的(并且如此处详述) GraphiQL接受一个query参数:

query:一个可选的 GraphQL 字符串,用作初始显示的查询,如果提供了 undefined,将使用存储的查询或 defaultQuery。

如果将片段作为该参数的值放入不起作用,那么我不相信有任何方法可以从片段开始......但你真的为什么要这样做?片段本身是不可执行的,整个想法是使用(可执行)查询启动 GraphiQL。

如果您只想复制/粘贴一些您在查询中经常使用的文本,那么书签可能是一个更好的主意。

于 2017-12-31T20:01:13.383 回答