aws-appsync - 从 AWS AppSync 迁移到 Apollo GraphQL (Javascript)
问题描述
我对 GraphQL 相当陌生,并且一直在为 GraphQL API 使用 AWS AppSync 服务。我使用 AWS Cognito 进行身份验证/授权、一些 Lambda 函数以及连接到我的 API 的无服务器 RDS 实例。我的问题是:
我怎样才能或者有没有办法从 AppSync 迁移到 Javascript 中的 Apollo GraphQL 实现,而重写代码量最少并保持数据源不变?
原因:
- 不支持 AppSync 中的版本控制。我无法找到恢复到旧版本 API 的方法。目前,我通过从 AppSync 下载 schema.json 来备份我的 API,并将我的所有解析器备份到一个文本文件中。
- 如果代码变大,浏览器会变得无响应并且第一次加载需要大量时间。
- $util 中的辅助函数非常有用,但在某些时候,我发现它缺少一些我想做的不同的东西。为了解决这个问题,我使用 Lambda 函数。因此,不支持在 AppSync 中添加自定义模块或库。
- 有时,测试和调试解析器真的很令人沮丧。我习惯在控制台上打印,我发现它真的很有帮助。
任何帮助将非常感激。
解决方案
这并不是关于迁移的真正答案,而是关于您可能会考虑的问题的更多想法。
浏览器没有响应 - 我猜这不会通过迁移得到解决 - 也许这里有一个可以改进的设计问题。
$util 中的辅助函数 - 我理解,尽管您经常可以找到解决方法。VTL 非常强大(虽然有时很烦人),而且我从来不需要依赖 lamdba,除非做的事情远远超出了任何帮助程序的范围(例如运行 JSON Schema 验证器)。但是我可以肯定地写自己的东西会很好。
调试 - 使用 #1 中的解决方案之一脱机将对此有所帮助。我对 SAM 没有太多经验,但我非常广泛地使用无服务器,并且 appsync 离线选项提供调试。
也许这会有所帮助。
推荐阅读
- objective-c - 如何在 macOS 上找到/注册 url 方案和文件类型处理程序?
- java - LocalDateTime 的 Spring + Thymeleaf ConversionFailedException
- javascript - 使用 Reactjs 在数组中映射数组
- git - Git 应该忽略一个 conf 文件,但它不应该在 .gitignore 中
- coldfusion - 如何增加lucee中输入的大小
- ibm-watson - 安装节点红色托盘失败?
- python - Python:带有CSV和Tensorflow的ValueError(CSV行有不同数量的字段)
- machine-learning - 使用带有标签概率总和的 fasttext 的多标签分类不一定等于零
- android - Android 架构组件:我应该将身份验证令牌保存在哪里?ViewModel 还是 SharedPreferences?
- git - 根据提交消息提取多个提交的 Git diff