在另一个查询中重用 GraphQL 查询而不重复
Posted
技术标签:
【中文标题】在另一个查询中重用 GraphQL 查询而不重复【英文标题】:Reusing a GraphQL query in another query without duplicating 【发布时间】:2019-02-20 19:42:33 【问题描述】:假设我有两个 GraphQL 查询。
查询 A:
entry(section: [privacyStatement])
... on PrivacyStatement
title
slug
pageTitle
metaDescription
metaImage
id
title
url
查询 B:
entry(section: [contact])
... on Contact
title
slug
pageTitle
metaDescription
metaImage
id
title
url
现在我希望两个查询都包含另一个查询:
查询 C:
services: categories(groupId: 1, level: 1)
id
title
slug
children
id
title
slug
如何在查询 A 和 B 中不重复查询 C 的情况下做到这一点(这不会很干燥)?如果我理解正确,您只能在一个查询中使用片段。
更新:
所以我的意思是这样的:
Query A
entry(section: [privacyStatement])
... on PrivacyStatement
title
slug
pageTitle
metaDescription
metaImage
id
title
url
QueryC
和:
Query B
entry(section: [contact])
... on Contact
title
slug
pageTitle
metaDescription
metaImage
id
title
url
QueryC
【问题讨论】:
【参考方案1】:您可以在 Query 和 Mutations 上定义片段并像这样使用它们:
Query A
entry(section: [privacyStatement])
... on PrivacyStatement
title
slug
pageTitle
metaDescription
metaImage
id
title
url
...C
fragment C on Query
services: categories(groupId: 1, level: 1)
id
title
slug
children
id
title
slug
你不能定义这样的东西!
query A(...)...
query B(...)...
【讨论】:
感谢您的回答;我不确定这是否涵盖了我的意思。我的意思是,有没有办法在查询 A 和查询 B 中重用查询 C,而无需将查询 C 显式添加到查询 A 和 B。我已经更新了问题。 :D 谢谢。那么我只需要重复查询即可。以上是关于在另一个查询中重用 GraphQL 查询而不重复的主要内容,如果未能解决你的问题,请参考以下文章
Informix SQL / 在另一个查询中重用存储过程的结果