有没有办法将片段传递给graphiql?

时间:2017-08-08 00:10:16

标签: graphql apollo-server graphiql

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

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服务器实例

2 个答案:

答案 0 :(得分:0)

正如您所注意到的(以及详细的here)GraphiQL采用query参数:

  

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

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

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

答案 1 :(得分:0)

启动

你的意思是从服务器?如果是这样,我不相信片段是如何使用的。我的理解如下:

  1. 在服务器上提供类型(如User
  2. 在客户端上使用查询和片段查询这些类型
  3. 例如,如果在服务器上提供类型User,则在客户端graphQL上可以使用片段来查询该类型:

    graphQL(客户端)

    fragment authorData on AuthorType{
      firstName
      posts {
        title
        votes
      }
    }
    
    query PostsForAuthor {
      author(id: 1) {
        ...authorData
      }
    }