在 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 工具进行远程模式拼接

Apollo GraphQL 本地和全局错误处理

(Apollo) GraphQL 合并模式

react-apollo 没有连接到我的 graphql 本地服务器

如何定期获取远程公钥并存储在 Apollo graphql 服务器中?