GraphQL非嵌套关系

时间:2017-03-16 09:59:27

标签: graphql

我试图让GraphQL上的节点表示更类似于jsonapi的样子http://jsonapi.org/

我的意思是如果我们采用GraphQL上的一个例子

{
  hero {
    name
    # Queries can have comments!
    friends {
      name
    }
  }
}

在这些行中有更多的表示

{
  hero {
    name
    # Queries can have comments!
    friends {
      id
    }
  },
  friends {
    id, name
  }
}

这在GraphQL中是否可行

由于

1 个答案:

答案 0 :(得分:0)

有可能,并且拥有friends字段没有任何问题。在GraphQL术语中,您可以拥有模式的以下部分:

type User {
    id: ID
    name: String
    firends: [User]
}
type RootQuery {
    hero: User
    friends(forUserId: ID!): [User]
}

然后你可以随意查询 - 你可以单独询问朋友:

{
    friends(forUserId: "12") {
        id, name
    }
}

但是GraphQL的整个想法是,您不必进行多次查询即可获得所需的信息。如果你只需要一个用户列表 - 这是一个合理的查询,大多数人都有(带有分页参数等)。话虽如此,没有理由在此之后获取ID列表并为数据发送另一个fetch查询。