我正在努力理解 Express(或 Koa、Hapi 等)与 Apollo GraphQL 服务器集成的附加值。
我发现它可以在独立模式下很好地工作(例如:https://medium.com/codingthesmartway-com-blog/apollo-server-2-introduction-efc4026f5654).
在什么情况下我们应该在集成(或不集成)的情况下使用它?是什么推动了这个决定?
如果您需要的只是 GraphQL 端点,那么使用独立库(apollo-server
)通常是首选,因为需要编写的样板文件较少(订阅、文件上传等功能无需额外配置即可工作)。然而,许多应用程序需要除了公开单个 API 端点之外的附加功能。示例包括:
- Webhooks
- OAuth 回调
- 会话管理
- Cookie解析
- 跨站请求伪造保护
- 监控或记录请求
- 速率限制
- 地理围栏
- 提供静态内容
- 服务端渲染
如果您的应用程序需要此类功能,那么您将需要使用 Express 等 HTTP 框架,然后使用适当的集成库(即apollo-server-express
).
Apollo Server 还包括无服务器解决方案 AWS Lambda 的集成。例如,如果您想采用无服务器来获得更好的可扩展性或消除系统管理成本,那么您还需要使用这些集成之一。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)