解析器映射模板开发指南

Posted

技术标签:

【中文标题】解析器映射模板开发指南【英文标题】:Resolver Mapping Template development guidelines 【发布时间】:2019-11-04 09:55:05 【问题描述】:

主题 我正在使用带有 GraphQL 和 DynamoDB 的放大作为通过 AppSync 工作的后端。 AppSync 基于 vtl 生成 json 并执行(我其实不知道服务的哪一部分执行) - 所以它命名为Resolver Mapping Template

我需要使用我编写的自定义解析器覆盖我的所有 GraphQL 端点,但开发会受到伤害,因为我找不到任何解决方法来简化开发和测试,除了通过 aws 控制台,什么是缓慢和不方便的

我尝试了什么 作为一种方法,我尝试创建 DynamoDB json 文件并通过 awscli 上传它们,但 AppSync 使用另一种 json 格式 - Resolver Mapping Template

我需要什么 我想知道如何开发、调试和测试我的解析器的任何解决方法和指南。 所以我需要 2 个选项或两者都需要

    将生成的模板与所有$util 内容进行比较。很高兴拥有 通过 cli 将生成的模板执行到 DynamoDB 中以检查结果(或者可能有任何模拟系统)。很高兴拥有

【问题讨论】:

您确定所有端点都需要自定义解析器,而自动生成的解析器不能满足您的需求吗?此外,如果您确实需要自定义解析器,请关注 aws-amplify.github.io/docs/cli/…,以便我们可以对您的解析器 vtl 代码进行版本控制,而不仅仅是通过 aws 控制台 @ 模型为每一个用它注解的类型创建不同的表。我不是 DynamoDB 的经验丰富的用户,但在阅读和观看规范和教程之后,我得到了需要通过分区、sk 和 GSI youtube.com/watch?v=HaEPXoXVf2k 构建它的问题,我仍然停留在两个选项之间 - 使用 @model 来生成我不知道的结构不喜欢太多或使用不方便开发的解析器。但我更喜欢第二种选择,因为它更灵活 > 关注 aws-amplify.github.io/docs/cli/... 谢谢,我正在做类似的事情,问题是对于每个vtl 更改我都需要推送它(5 分钟以上)或通过 aws 控制台编写和调试 好吧,视频显示了“高级”用法,而在大多数情况下,自动生成的代码已经足够使用了。所以我倾向于选项 1。 谢谢@YikSanChan,我会听从你的建议 【参考方案1】:

建议使用 Amplify CLI 来管理自动创建解析器以及自行更新它们以减轻一些“开发伤害”部分。

我注意到您提到您正在寻找的一件事是能够快速测试解析器(在这种情况下,amplify cli 将为您创建),但如前所述,每次 amplify 推送都需要一些时间cfn 进行更新。您可能感兴趣(并可能为您缓解此问题)是用于放大 cli 的新 RFC:https://github.com/aws-amplify/amplify-cli/issues/1433

看看它是否满足您的需求,如果没有,请在该 github 帖子中添加评论。

【讨论】:

这个 RFC 正是我想要的,谢谢!

以上是关于解析器映射模板开发指南的主要内容,如果未能解决你的问题,请参考以下文章

在 AWS 解析器映射模板中,是不是有任何方法可以从对象中删除字段?

Appsync“批量创建”解析器给出“映射模板”错误

dedecms二次开发:dedetag.class.php 静态模板类

我可以在Aws AppSync解析器映射模板中对用户输入进行消毒吗?

QT开发(二十五)——QT模板库

如何使用 C++ 模板实现从类型到对象方法调用的映射?