使用 Apollo 客户端 (React) 向 REST 端点发送请求

Sending request to REST endpoint with Apollo Client (React)

我有一个 React 应用程序,我需要使用 Apollo Client 向现有的 REST API 服务器发出请求。

一种可能的方法是创建包装现有 REST API 的 GraphQL 服务器,但我更愿意在客户端这样做并直接调用它。我认为这是过渡时期的临时解决方案。

尽管我们还没有 GraphQL 服务器,但现在迁移到 GraphQL 的目的是简化客户端代码并利用 Apollo 缓存功能来加速应用程序。

谢谢。

这应该可以通过 Apollo links 实现。但是请注意,由于这是 Apollo 内部积极开发的领域,因此会有一些粗糙的边缘。

例如,看一下 apollo-link-rest

另请参阅 the official links 以获取灵感和参考,如果您最终想编写自己的 link(s) 来支持您的需求。

半年后回答我自己的问题。

基本上有两种可能的选择:apollo-link-rest and apollo-bridge-link

我已经分析了他们两个,尝试同时使用他们,并决定使用 apollo-bridge-link 尽管它不是 Apollo 团队推广的,而且它的下载和喜欢比 apollo-link-休息。我可以说这是正确的决定。我没有遇到任何困难。

这里是good article on apollo-bridge-link written by its creator and a demo app.

您必须创建一个 graphql 架构和解析器才能使 apollo-bridge-link 正常工作。就像您在 graphql 服务器上执行此操作一样。稍后,如果您决定构建一个 graphql 服务器,那么在服务器上重用该模式和解析器将非常容易。关于 apollo-link-rest.

我不能说的

他们的方法是避免使用模式来简化事情。但是,另一方面,您将不得不在测试套件中编写 type patchers. Take a look at example 以查看它在现实世界的应用程序中会变得多么复杂。