问题标签 [vtl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
315 浏览

java - 使用 Telosys 浏览 Velocity 模板语言中的目录

我正在尝试在 VTL 中编写模板以使用 telosys 生成 java 类。我的起点是一个包含 json 文件(mapping1.json、mapping2.json、...)的目录(src/main/resources/templates/es)。json 文件的数量和名称未知,可能会有所不同。我必须为每个 json 文件生成几个 java 类。

我已经为我必须生成的每个 java 类编写了一个模板。但是这些模板适用于静态嵌入的 json 对象。

这是一个例子:

我现在需要的是:

1-浏览我的 json 目录,获取每个 json 文件并在该 json 上应用模板以创建该 json 文件的 java 类。

2-正确配置文件templates.cfg以使用 java 类名创建 java 类文件。关于这一点,我尝试从模板修改变量${BEANNAME}、${BEANNAME_UC}、${BEANNAME_LC}(由 telosys 默认给出)。但它不起作用:它们仍然是空的并且没有生成文件。这是文件templates.cfg的内容:

谢谢你帮助我!

0 投票
1 回答
377 浏览

graphql - 如何使用 Aws AppSync 将 JTW 令牌(或任何其他变量)从父解析器传递给子解析器

我正在尝试将 JWT 令牌传递给 AppSync 中的嵌套查询,以检查用户是否有权请求此类数据。

问题是 AppSync不允许我将 JWT 令牌从父查询转发到任何子解析器

例子 :

这里profilePicture, pleadingList, pleadingFiles, pleadingParticipantSlots,participant是子查询,我希望能够识别谁在执行每个子查询,而不仅仅是主/父查询

有什么解决办法吗?

我已经尝试过的:

问题是,当我将令牌动态添加到主要结果时,它并不总是有效(从某种意义上说,如果我从查询中得到的是一个项目数组,而子查询是每个项目的启动,那么我无法访问每个子请求中的令牌,因为这$ctx.source将只是没有令牌的项目。

  • 我还尝试了将 JWT 令牌添加到的管道,ctx.stash但更糟糕的是,因为ctx.stash(和ctx.args)在任何子请求之前被清除

所以我想要一种将变量传递给我所有子解析器的方法,或者一种将我的标头从父请求保留到嵌套查询的方法。

我让它工作的唯一方法(它非常难看,我不想这样做;))是每次在前端添加令牌作为查询和子查询参数......

喜欢:

我有点迷茫,在 AWS AppSync 文档中找不到任何相关内容。有什么办法吗?还是我想错了?

谢谢

0 投票
1 回答
1009 浏览

amazon-dynamodb - AppSync 中的 DynamoDB ReturnValues UPDATED_OLD

我正在尝试使用AppSync更新DynamoDb表中的项目属性。一旦成功,我想在下一次调用中使用该属性的先前值作为键(我正在使用管道解析器)。

要使用DynamoDB实现此目的,您只需将UPDATED_OLD设置为返回值。

我找不到任何文档来指定 AppSync 的 DynamoDB 解析器的返回值。我试过以下。

但它的语法无效。

0 投票
1 回答
857 浏览

vtl - 如何使用 VTL 获取数组中的最后一个元素?

我正在编写 AWS AppSync 解析器。我确实需要在我的数组中获取最后一个元素。AWS AppSync 支持 VTL 语言。

例子:

#set($items=["color", "taste", "shape"])

#set($result="shape")

我正在使用 $array.size() 但没有用。我在 Utility Helpers 中看不到任何选项。.

#set($result=$item[$item.size()-1])

谢谢,

0 投票
2 回答
424 浏览

amazon-web-services - AWS Appsync 中的 VTL 宏

我正在为 aws appsync 编写请求解析器,我的宏不起作用

我尝试将其简化为最简单的形式,如下面的代码所示,它只返回 #addArgs() 而不是“test”

我希望在运行测试时得到“测试”这个词,但我得到的是#addArgs。

0 投票
1 回答
525 浏览

javascript - Dynamodb 条件更新根据条件添加或删除

我有一个 dynamodb 表,其中一列是 Map 类型。我想要一个更新查询,如果该项目在地图中,则从地图中删除该项目,或者如果该项目不在地图中,则将该项目添加到地图中。我怎样才能为这个问题写一个VTL?

0 投票
1 回答
617 浏览

graphql - 解析器映射模板开发指南

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

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

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

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

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

date - 以速度从日期减去月份

我正在尝试从给定日期获取几个月前的日期

我尝试转换为 Calendar 以使用 add 方法,但这不起作用:

我尝试以几种不同的方式做到这一点:

我什至尝试过定义块,但这也不起作用

0 投票
0 回答
289 浏览

serverless - 比较 Apache Velocity 模板中的字符串 (AWS AppSync)

我想比较字符串但无法。考虑这个例子:

如果我投一个,那么它匹配吗?

Apache 网站上的示例显示了类似的用法(尽管有一个错字说这两种选择都不会匹配)

当然,当项目属于 diff 类时,他们确实提到了强制转换为字符串,但这不是我的情况。

这是怎么回事?我正在使用 AppSync 本地插件在无服务器框架上执行此操作。问题可能存在吗?

更新awsutils 离线应用程序同步包中的潜在错误。已提交错误报告。敬请关注。

0 投票
3 回答
3269 浏览

unit-testing - 如何为速度模板编写单元测试?

这甚至可能吗?

大家好。我正在使用 AWS AppSync + DynamoDB 构建应用程序,并且我开始拥有大量解析器映射模板,所有这些模板都是使用 Apache Velocity 模板语言 (VTL) 编写的。

我开始担心的是,这些 vtl 文件对应用程序非常重要(因为它们定义了如何检索数据)并且其中一个可能造成严重破坏的错误。所以就像系统的任何关键部分一样......我想为他们编写一些自动化的单元测试。但我没有发现很多其他人这样做。

  1. 如果您使用 VTL(使用 AppSync 或 API 网关),您如何测试它们?
  2. 甚至可以为速度模板编写自动化测试吗?
  3. 还是我走错了路,我应该只使用 Lambdas 作为我的解析器?

提前致谢!