问题标签 [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.
vtl - 使用 apache 速度添加变量 JSON
我需要能够动态地将变量添加到 JSON 字符串,然后对其进行转义。VTL可以做到这一点吗?
这是我的情况
$foo 将是动态添加到我想要转义的 JSON 字符串的变量。
velocity - Telligent 10 - 速度模板 - 获取当前日期时间
使用 Telligent 10 平台及其原生的 Velocity 模板语言,我们如何才能简单地获取当前的datetime
?
根据我在 SO 上看到的许多示例,前两个需要$date
先前定义的 var,并且这些示例都静态定义日期,而不是通过获取当前系统日期时间,因此以下内容不起作用:
根据这个 Telligent 社区线程,我读到 Telligent 使用 .NET DateTime(我非常熟悉)但是......这些在 Widget Studio 中也不起作用:
ms-word - 使用 Velocity 模板生成更新 TOC 的 Word 文档
我目前正在研究用于从 JAMA 平台导出数据的 Velocity 模板。
我需要遵循特定的文档格式。此格式包括当前在文档中正确创建的目录。
问题是表格导出为空,没有考虑文档中的标题。这可以通过手动更新表格轻松纠正,但是在导出大量文档时非常耗时。
执行导出时有没有办法自动更新表?
aws-sdk - 是否有用于使用 VTL 的 AWS Appsync 的 Model.objects.update_or_create()?
我正在使用$util.autoId()
并想知道是否有一种模式可以update_or_create()
使用 VTL 执行(类似于 Django 模式),或者我是否应该将解析器链接到 Lambda 并在那里执行逻辑?
aws-lambda - AWS AppSync 使用存在检查解析器将多个子项添加到一个父属性中
我对 AWS AppSync 有疑问。我想知道是否有一种方法可以在将多个值添加到父项的一个属性中时检查存在性。
所以,这是我的例子:
这是用户类型: 用户类型
这是 dynamodb 的样子: dynamodb item
这就是我想要完成的:将三个程序添加到用户记录中,在程序属性下。 addProgramToUser 突变
这是我当前 的解析器:addProgramToUser 解析器
所以我的逻辑是先从 dynamodb 中提取现有程序,然后检查“待添加”程序 ID 是否在其中。如果有,请停止更新或跳过该程序 ID。如果没有,请继续更新。所以问题是,如何使用 VTL 提取当前数据以及如何比较现有数据和我想要添加的数据。
或者,如果有人对我如何完成这项任务有其他想法,请提供帮助。非常感谢。我无法嵌入图片,因为我是 stackoverflow 的新手。很抱歉给您带来不便。祝你有美好的一天。
amazon-dynamodb - 带有 ctx.identity.username 的简单 GetItem 返回 null
我正在使用AppSync
withIAM auth
和。我正在尝试执行以下操作。DynamoDB resolver
Cognito
$ctx.identity.username
应该包含userId
生成的Cognito
,我正在尝试使用它来获取当前用户数据。
客户端,我正在使用AWS Amplify
它告诉我我当前已登录:
getUserLogged
是Apollo query
应该返回用户数据的那个。
我试过的:
- 如果我这样离开它,则
getUserLogged
返回 null。 - 如果我用这样
$util.dynamodb.toDynamoDBJson($ctx.identity.username)
的已知名称替换解析器:它可以工作!我得到了这个用户数据。userId
$util.dynamodb.toDynamoDBJson("b1ad0902-2b70-4abd-9acf-e85b62d06fa8")
- 我尝试在解析器页面中使用测试工具,但它只提供假数据,所以我不能依赖它。
我犯错了吗?对我来说,一切看起来都不错,但我想我错过了什么?
我可以清楚地看到$ctx.identity
包含的内容吗?
amazon-web-services - 身体映射模板中引用后的点(AWS API 网关)
是否可以在 API Gateway 的正文映射模板中的引用之后直接使用点?
我像这样进行字符串连接:
问题是 $apiid 和 $region 没有被取消引用。结果看起来像这样。
如果我使用没有字符串连接的引用,它们具有预期值。所以#set操作似乎是正确的。
我认为它将引用后的点误认为是函数调用。如何逃避速度模板语言中的点?
amazon-web-services - 如何使用 AppSync 解决父子关系
我的架构如下所示
我希望能够在运行 createPost 突变时同时批量插入 Post 和 PostRevision;然而,VTL 给我带来了很多困难。
我在下面尝试过
所以基本上我在 createPost 的解析器中重建文档,以便我可以添加Post
然后也将ID
帖子添加到postReivision
但是当我运行下面的代码时
我收到以下错误
我究竟做错了什么?
我知道使用 lambda 函数更容易解决,但我不想无缘无故地增加成本。任何帮助将不胜感激。谢谢!
arrays - Apache VTL - 如何在数组中查找项目
我第一次尝试使用 VTL,但看不到获取数组来获取输入的字符串。
我试过“in”(但我不相信这是这种语言中的关键词),以及下面的 .contains() (但它在创建的数组中找不到字符串)
下面的代码供用例参考:
我会使用什么关键字代替包含?是否有任何关键字可以节省 VTL 中 == 的许多 if 语句的时间?
json - 在 AWS AppSync 查询中返回嵌套 JSON
一般来说,我对 AppSync(和 GraphQL)还是很陌生,但是在将解析器连接到我们的 DynamoDB 表时遇到了一个奇怪的问题。具体来说,我们有一个嵌套的 Map 结构,用于我们任意构建的项目属性之一(其复杂性和形式取决于父项目的类型)——有点像这样:
我们附带的 GraphQL 类型如下:
当我们查询该项目时,我们得到以下响应:
问题是我们似乎无法让Item.data
字段解析器返回 JSON 对象(即使我们在通用查询解析器之上附加了一个单独的字段级解析器)。它总是返回一个字符串,奇怪的是,如果我们将预期的字段类型更改为字符串!,响应将:
用=
. 我们已经用我们的响应解析器尝试了一切,包括如何使用 appsync 从 DynamoDB 返回 JSON 对象?,但我们完全停留在这一点上。
在上述帖子中的建议均无效后,我们当前的查询响应解析器已恢复为标准响应:
我们试图避免需要为每个嵌套级别包含支持类型的情况data
(因为它会根据父项类型而变化,并且在我给出的示例中它可以有三层或四层),我们认为改变的模式类型AWSJSON!
会做的伎俩。不过,我开始担心无法绕过重建我们的基本模式。任何相反的建议都会有所帮助!
PS 我在 CloudWatch 日志中注意到context.result.data
响应字段下存在适当的 JSON 响应,但不知何故有以下内容transformedTemplate
(再次,考虑到我们没有应用任何映射模板,除了将结果转换为有效的JSON):
为这个冗长的问题道歉,但我很难过。