假设存在一个具有以下架构的graphql服务器:
query
-currentUser
--data1
--data2
...
假设在客户端上,应用程序的第1页上需要data1,第2页上则需要data2。如果我更新data2并想重新获取查询,是否需要从顶层查询,解析currentUser才能获取更新的data2?解决此问题的唯一方法是为data2创建根级查询吗?例如:
query
-currentUser
--data1
--data2
-data2 (query on root of tree to avoid repeated currentUser calls)
编辑:我对如何使用Apollo-client for React做到这一点
答案 0 :(得分:0)
中继top-level node query提供了执行此操作的标准方法。如果大多数对象都实现了其Node
接口,那么您可以使用顶级node(id: ID!)
查询来检索特定对象。
query GetFirstDatum {
currentUser {
id
data1
}
}
query GetSecondDatum($id: ID!) {
node(id: $id) {
... on User {
data2
}
}
}
这需要在IDL中提供Node
接口,让您的对象实现它,并提供顶级node
查询的实现,该查询可以返回给定对象ID的对象。大多数服务器库对此都有一定程度的支持。