用 GraphQL 替换 REST 调用

Posted

技术标签:

【中文标题】用 GraphQL 替换 REST 调用【英文标题】:Replacing REST calls with GraphQL 【发布时间】:2018-05-07 13:33:19 【问题描述】:

我最近阅读了 GraphQL 相对于 Rest API 的优势(和劣势)。

我正在开发一个使用多种不同 Rest API 和 Soap 服务的网页。其中一些服务是依赖的,这意味着来自 Rest1 的结果将作为参数传递给 Rest2,该参数将传递给 Soap 服务以获得最终返回值。

据我了解,GraphQL 处理多个数据源和查询嵌套,但我还不知道它是否会处理那些嵌套的依赖查询。

使用过依赖于 GraphQL 的多个数据源的任何人都可以告诉我是否可以完成吗?我的项目应该会在 2 周内完成,如果花时间学习和设置 GraphQL,但因为它不支持我的情况而最终不使用它,这对我来说将是一个很大的失败。

注意:API 和服务不是我的,我从外部来源使用它们

【问题讨论】:

【参考方案1】:

我假设您尚未设置 GraphQL 服务器。一旦你这样做了,你就会看到这并不难。因此,我建议您先设置自己的服务器。 Egghead 课程“Build a GraphQL Server”让我开始学习,但它不是免费的。

本质上,您将设置架构,然后定义如何使用数据进行解析。当您解析时,您可以设置一个快速服务器来查询数据库,或者您可以点击 REST 接口,或点击您的 SOAP 接口。检索数据的方式取决于您,只要您按照定义的架构返回数据即可。

希望这是有道理的。模拟一个迷你应用程序进行演示是可能的,但由于我手边没有一个,这是我能提供的最佳建议。

【讨论】:

以上是关于用 GraphQL 替换 REST 调用的主要内容,如果未能解决你的问题,请参考以下文章

使用 REST 包装 GraphQL 从 NestJS 提供 GraphQL 和 REST API

GraphQL测试实践

Delphi 与 Graph.cool API?

通过 GraphQL 应用从 REST api 调用返回的 cookie

如何在 Body 中传递查询数据以在 graphql 中进行 REST API 调用

使用 Apollo React 用 GraphQL 包装 REST api