为什么要使用Apollo GraphQL服务器进行Express(或其他集成)? 我努力理解Apple Loopql服务器的Express(或膝关节炎、HAPI等)的附加值。

为什么要使用Apollo GraphQL服务器进行Express(或其他集成)? 我努力理解Apple Loopql服务器的Express(或膝关节炎、HAPI等)的附加值。,graphql,apollo,Graphql,Apollo,我认为它可以在独立模式下很好地工作(例如:) 在哪种情况下,我们应该使用它(或不使用)集成?这一决定的驱动因素是什么?如果您只需要一个GraphQL端点,那么通常首选使用独立库(apollo server),因为需要编写的样板文件较少(订阅、文件上传等功能,无需额外配置即可工作)。然而,许多应用程序需要额外的功能,而不仅仅是公开单个API端点。例子包括: 网钩 OAuth回调 会话管理 Cookie解析 CSRF保护 监视或记录请求 速率限制 地理围栏 提供静态内容 服务器端渲染 如果您的应

我认为它可以在独立模式下很好地工作(例如:)


在哪种情况下,我们应该使用它(或不使用)集成?这一决定的驱动因素是什么?

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

  • 网钩
  • OAuth回调
  • 会话管理
  • Cookie解析
  • CSRF保护
  • 监视或记录请求
  • 速率限制
  • 地理围栏
  • 提供静态内容
  • 服务器端渲染
如果您的应用程序需要此类功能,那么您需要使用HTTP框架(如Express),然后使用适当的集成库(即阿波罗服务器Express)


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

如果您只需要一个GraphQL端点,则通常首选使用独立库(
apollo server
),因为要编写的样板文件较少(订阅、文件上载等功能在无需额外配置的情况下即可正常工作)。但是,许多应用程序需要额外的功能,而不仅仅是公开单个API端点。示例包括:

  • 网钩
  • OAuth回调
  • 会话管理
  • Cookie解析
  • CSRF保护
  • 监视或记录请求
  • 速率限制
  • 地理围栏
  • 提供静态内容
  • 服务器端渲染
如果您的应用程序需要此类功能,那么您需要使用HTTP框架(如Express),然后使用适当的集成库(即阿波罗服务器Express)


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

谢谢您,Daniel,我明白了,答案非常清楚。只有一件小事-您的最后一句话。您为什么要y集成对于部署到AWS是必要的?应该很容易构建一个独立的Apollo服务器,没有集成,然后将其部署到Lambda或Fargate。我很了解您吗?我没有广泛使用Lambda,但我的理解是,您在运行HTTP服务器时不再使用它,因为实际上没有可侦听的端口一切都通过处理函数本身运行。在后台,独立库只是为您设置了一个Express服务器,然后在服务器实例上调用
listen
时调用
listen
。更重要的是,当使用Azure函数、Google云函数等无服务器解决方案时ure与常规Express应用程序相比差异很大,足以保证使用适当的集成。谢谢Daniel,答案非常清楚,我明白了。只是一件小事——你的最后一句话。你为什么说集成是部署到AWS所必需的?只需构建一个独立的Apollo服务器,不需要集成,然后部署到AWS应该很容易o Lambda或Fargate。我很了解你吗?我没有广泛使用Lambda,但我的理解是,在运行HTTP服务器时,你不再使用它,因为实际上没有可侦听的端口,所有内容都通过处理程序函数本身运行。在后台,独立库只是为你和n在服务器实例上调用
listen
时调用
listen
。更重要的一点是,当使用诸如Azure功能、Google云功能等无服务器解决方案时,该架构与常规Express应用程序相比有足够的不同,足以保证使用适当的集成。