概念性问题:React Native,Apollo,Node和GraphQL如何协同工作?

时间:2017-07-12 15:18:25

标签: node.js react-native graphql apollo aws-sdk-nodejs

我是GraphQL,Apollo,AWS S3和Redux的新手。我已经阅读了每个教程,我熟悉React Native,Node,Heroku和Mongo。我无法理解以下内容:

  • " GraphQL Server"是否使用React Native?
  • 托管移动设备
  • 我可以创建带有Node的GraphQL服务器并将其托管在AWS S3上吗?
  • 如何在我的React Native代码中使用Apollo / GraphQL获取数据并使用Apollo / Redux在本地存储数据?
  • 我是否必须从一开始就使用Graphcool作为端点?我试图做的就是在加载应用程序时从我的数据库中提取数据(不想流式传输,以便我可以离线使用数据)。

我应该在哪里寻求更好的理解?

1 个答案:

答案 0 :(得分:1)

在您探索新领域时,我有几条评论。

GraphQL只是与数据库对话的查询语言。因此,您可以自由运行任何类型的api(在服务器上,无服务器上等),它将使用graphql接收graphql查询/变异并与您的数据库进行交互。

GraphCool是一个“生产就绪的后端”,基本上是作为服务的后端。因此,您不必担心运行服务器(因为我相信它们在无服务器基础架构上运行大部分内容)或管理数据库所在的位置。

您可以使用AWS Lambda在AWS EC2上运行HTTP服务器或无服务器。 (或与谷歌或Azure相同的味道)。无论您决定使用什么来接受请求,您的端点都将接受graphql查询字符串,然后使用db执行操作。 AWS S3更多的是静态存储。您可以存储要检索的文件或可以提取的脚本,但S3可能不是您希望运行任何类似服务器的代码的地方。

Apollo将成为您的前端使用的工具,可以轻松地与您的graphql服务器进行交互。 React-Apollo

Apollo / Redux可以帮助您管理整个应用程序中的状态。您只需在加载时将数据加载到应用程序状态,然后与该状态进行交互,而无需再进行任何外部调用。

希望这很有帮助。