AppSync VTL 解析程序 - 如何解决分析错误

AppSync VTL resolver - how to resolve parse error

提问人:jordan 提问时间:8/2/2023 更新时间:8/10/2023 访问量:63

问:

我在 VTL 响应映射上收到此错误,但不确定这意味着什么

graphql: Encountered "}" at velocity[line 9, column 3]
                                Was expecting one of:
                                    "[" ...
                                    "{" ...
                                    <STRING_LITERAL> ...
                                    "true" ...
                                    "false" ...
                                    <INTEGER_LITERAL> ...
                                    <FLOATING_POINT_LITERAL> ...
                                    <IDENTIFIER> ...
                                    "{" ...
                                    "[" ...

对于以下响应映射:

#set($isAdmin = $ctx.identity.resolverContext.is_admin)

#if(!$isAdmin)
  $util.toJson({
    "availability": {
      "startsAt": $ctx.result.availability.startsAt,
      "endsAt": $ctx.result.availability.endsAt,
    }
  })
#end

$util.toJson($ctx.result)
aws-appsync vtl apache-velocity aws-appsync-resolver

评论


答:

0赞 cyberwombat 8/10/2023 #1

删除对象中的结束逗号:

#set($isAdmin = $ctx.identity.resolverContext.is_admin)

#if(!$isAdmin)
  $util.toJson({
    "availability": {
      "startsAt": $ctx.result.availability.startsAt,
      "endsAt": $ctx.result.availability.endsAt
    }
  })
#end

$util.toJson($ctx.result)

这里有一个验证器可以提供帮助。