React Native开发中能否使用AWS AppSync作为GraphQL服务器
回答
完全可以直接使用AWS AppSync替代Apollo Server、Express GraphQL这类需要独立部署的GraphQL服务器,和你当前选用的Apollo Client、AWS技术栈适配没有问题,结合实际落地经验可以参考以下信息:
- 从协议兼容性来说,AppSync完全遵循标准GraphQL规范,你现有写好的Query、Mutation操作不需要做语法层面的修改就能直接对接。如果不需要用到AppSync的专属能力,甚至不需要替换Apollo Client的核心依赖,只要把客户端请求的endpoint地址改成AppSync分配的API地址,配置好对应鉴权信息(API密钥、Cognito JWT、IAM签名都支持)就能跑通。
- 相比自建GraphQL服务器,AppSync作为全托管服务省掉了所有运维成本:你不需要管服务器部署、扩容、补丁升级、负载均衡、WebSocket连接保活这些杂事,按实际请求量付费,项目初期流量小的时候成本远低于自己搭服务部署Apollo Server。
- 针对React Native这类移动端场景,AppSync内置了很多自己搭服务需要额外开发的能力:开箱即用的离线数据同步、实时订阅的连接稳定性保障、对接Cognito的细粒度字段级权限控制,还可以直接配置resolver连接DynamoDB、Lambda、RDS等AWS服务,不用自己在服务端写重复的数据层连接代码。
当然也不是所有场景都适合选AppSync:如果你需要非常定制化的GraphQL执行逻辑,比如复杂的远程schema拼接、自定义执行链路的深度埋点、或者要做跨云的多环境部署,那自建Apollo Server灵活度会更高。但如果你确定整套服务都跑在AWS上、面向移动端场景做开发,优先选AppSync会省很多工作量。
小提示:如果要使用AppSync的实时订阅、离线同步能力,只需要给Apollo Client替换适配的WebSocket链接即可,不需要重构整个业务层的请求代码。
内容的提问来源于stack exchange,提问作者Kiera Kareen
相关产品推荐
相关产品推荐

