【发布时间】:2018-10-30 08:08:15
【问题描述】:
我有一个类型 User 和一个类型 Book 定义如下:
type User {
id: ID!
borrowedBooks: [Book]
}
type Book {
id: ID!
name: String
borrowedBy: [User]
}
现在我想存储用户对每本书的评分。我的问题是:我应该如何定义模式,以便我可以查询用户对每本借书的评分?我是否可以像下面这样查询评分,如果不能,处理这种情况的常用方法是什么。
getUser(id: "xxx"): {
borrowedBooks: {
id
name
rating # <------ get the rating value
}
}
【问题讨论】:
-
您的架构无法确定您如何从 GraphQL 位于前面的任何数据源获取数据,这就是您的解析器逻辑所做的。在最坏的情况下,模式可能会使从这些数据源中获取数据的效率低于其应有的效率。您是在特定数据源的上下文中询问,还是在某些特定的 GraphQL 实施(如 AWS AppSync)中询问?
-
嗨@DanielRearden,谢谢你的回复。是的,我明白你的意思,根据使用的数据源,可能必须以不同的方式定义解析器甚至模式。我想我有两个问题。首先是如何为该用例定义模式(查询方法不必与我写的相同,只是想知道像您这样的其他开发人员如何处理)。第二个问题是如何实际旋转它。你说得对,我正在使用 AppSync。很高兴知道如何在 AppSync 中执行此操作,或者至少测试 AppSync 是否可以正确转换解析器。