2017-01-10 34 views
1

如何使用graphql-js在我的模式中定义片段?如何使用graphql-js定义一个片段?

import graphql from 'graphql' 
/* how do I do this? 
fragment authorInfo on Author { 
    name 
} 
*/ 

例如,定义为Author类型我想:所以这里的类型定义是由GraphQLObjecType产生

import graphql from 'graphql' 
export default new graphql.GraphQLObjectType({ 
    description: `An author`, 
    name: { 
     description: `The author's legal name.`, 
     type: GraphQLString 
    } 
    }), 
    name: `Author` 
}) 

。什么函数生成碎片?

回答

4

Fragments用于分组字段并在客户端重新使用它们。在服务器上以及在创建模式时,他们不应该担心什么。

客户端代码应该在从服务器查询数据时提供片段。 GraphQL本身负责在查询中添加分段字段。在服务器上,您需要指定所有对象上的所有字段。

当然,您可以编写自己的帮手来减少手动工作。

也与variables一样。

+0

所以,当我使用GraphiQL时,我只是添加片段与我的查询内联?这是我目前的动机。虽然我在测试服务器我厌倦了打字 '查询{ 功能(PARAM){ X Ÿ ž } }' 它会是不错的只是片段的东西某处定义已经让我可以写: '查询{ 功能(PARAM){ ......东西 } }' –

+0

@JosephFraley你可以做的是有一个包含所需的片段串,硬编码在客户端 - 侧。然后将其附加到您发送它们时的所有查询。 GraphQL核心是非常小的,如果你需要定制行为,你必须在它周围编写一些助手。 –

相关问题