在 Apollo GraphQL 中跨本地和远程模式的嵌套数组中建模数据的最佳方法?
Posted
技术标签:
【中文标题】在 Apollo GraphQL 中跨本地和远程模式的嵌套数组中建模数据的最佳方法?【英文标题】:Best way to model data in nested arrays across local and remote schemas in Apollo GraphQL? 【发布时间】:2020-08-05 17:02:25 【问题描述】:我是 graphql 和 apollo 的新手。我有一个本地 Graphql 模式,它使用嵌套的对象数组,并在使用 Mongoose 的解析器中映射到 mongoDB。
type Category
id: ID!
category: String!
sections: [Section]
type SurveyType
id: ID!
stype(type: SurveyTypeChoice): String
categories: [Category]
我对此的查询工作正常,但我也有一个远程模式,它来自我正在运行的 hasura 实例并映射到 postgreSQL 数据库。此远程模式包含问题信息。我已经使用 graphql-tools 模块合并了这些模式,现在可以通过我的本地 apollo 服务器实例独立查询这两个模式。
我的问题是,对于上面架构中的 Section 类型,我希望它采用这种格式:
type Section
id: ID!
section: String!
leadText: String!
questions: [Question] // Question here is an object from the remote schema
有没有办法实现这种模型并修改解析器,以便我可以查询到 Section 级别并从远程模式中获取问题数组?
还是我找错树了?如果是这样,任何人都可以想出一种更好的方法来跨模式对此类数据进行建模吗?
任何建议将不胜感激!谢谢
【问题讨论】:
【参考方案1】:我也是 GraphQL 的新手。我个人没有使用过 Hasura,但我最近发现了this 问题,我认为它可以帮助您解决问题。它确实是声明性的,并且包含有关如何实施示例解决方案的大量详细信息。
希望对您有所帮助!如果它帮助您解决问题,请告诉我。
【讨论】:
谢谢乔治,非常有用!远程连接似乎是关键 很高兴听到这个消息。如果对您有帮助,您可以接受或支持我的回答吗? 非常感谢。我很感激!以上是关于在 Apollo GraphQL 中跨本地和远程模式的嵌套数组中建模数据的最佳方法?的主要内容,如果未能解决你的问题,请参考以下文章
当我在 Vue-apollo 中使用本地状态时如何获取远程 GraphQL 数据
使用最新版本的 Apollo 和 GraphQL 工具进行远程模式拼接