【问题标题】:GraphQL Resolvers on client side for Apollo-iOSApollo-iOS 客户端的 GraphQL 解析器
【发布时间】:2020-07-22 07:19:06
【问题描述】:

我如何编写解析器以在客户端(在我的 swift 项目中)使用 Apollo-iOS 进行多个 API 调用以完成 GraphQL 查询?

例如:如果要从具有 name 和 age 参数的查询构造一个 Person 对象 - 我必须从服务调用中获取 name 并从另一个服务调用中获取 age 并将它们拼接成 Person 对象,那么解析器会是什么样子,我应该在哪里写呢?

感谢任何帮助。

【问题讨论】:

    标签: ios swift graphql apollo-ios


    【解决方案1】:

    我相信 GraphQL 解析器只是一个概念服务器端。客户只是要求数据。服务器应该解析客户端发送的查询,因此您的解析器应该对不同的服务进行必要的调用,以便能够通过访问单个端点来完全解析查询。

    更深入地解释 GraphQL 中的解析器:https://medium.com/paypal-engineering/graphql-resolvers-best-practices-cd36fdbcef55

    如果需要,您可以编写自己的快速代码来从两个单独的 GraphQL 端点/服务中获取数据。

    【讨论】:

    • 我认为来自 GraphQL 客户端 React 文档 - apollographql.com/docs/react/data/local-state。 - 它提到了local resolvers,在客户端,我相信它也可以在swift客户端中实现。但这将是我们必须做的手动过程。有没有办法让查询/模式定义实现这一点?
    • 该上下文中的本地解析器仅用于修改缓存的 graphql 数据。例如,如果存储了用户记录,并且由于用户的某些更改而需要简单地更新客户端的字段,则可以使用本地解析器。尽管在技术上可以创建一个连接到端点的本地解析器并始终调用客户端解析器,但这不是最佳实践。最好的解决方案是让 apollo 服务器解析器进行所有必要的服务调用。此外,iOS sdk 中似乎还没有本地解析器。
    猜你喜欢
    • 2018-02-14
    • 2020-05-03
    • 2019-06-22
    • 1970-01-01
    • 2022-12-12
    • 2020-01-31
    • 2016-08-31
    • 2020-09-19
    • 2019-06-30
    相关资源
    最近更新 更多