为什么要使用 Apollo GraphQL Sever 进行 Express(或其他集成)?

Ale*_*eks 11 apollo graphql

我正在努力理解 Express(或 Koa、Hapi 等)与 Apollo GraphQL 服务器集成的附加价值。

我发现它可以在独立模式下很好地工作(例如:https : //medium.com/codingthesmartway-com-blog/apollo-server-2-introduction-efc4026f5654)。

在哪种情况下我们应该使用(或不使用)集成?是什么推动了这个决定?

Dan*_*den 12

如果您只需要一个 GraphQL 端点,那么apollo-server通常首选使用独立库 ( ),因为要编写的样板更少(订阅、文件上传等功能无需额外配置即可工作)。但是,除了公开单个 API 端点之外,许多应用程序还需要其他功能。例子包括:

  • 网络钩子
  • OAuth 回调
  • 会话管理
  • 饼干解析
  • CSRF保护
  • 监控或记录请求
  • 速率限制
  • 地理围栏
  • 提供静态内容
  • 服务端渲染

如果您的应用程序需要这种功能,那么您将需要使用像 Express 这样的 HTTP 框架,然后使用适当的集成库(即apollo-server-express)。

Apollo Server 还包括无服务器解决方案 AWS Lambda 的集成。例如,如果您想要无服务器,以获得更好的可扩展性或消除系统管理成本,那么您还需要使用这些集成之一。