【问题标题】:aws amplify graphql computed field inline resolveraws amplify graphql 计算域内联解析器
【发布时间】:2020-09-12 04:10:44
【问题描述】:

对于复杂的字段解析器,我知道@function directive 是要走的路。

但是那些非常简单的计算域呢?带有 lambda 的 @function 指令有点太多了。我看到 prisma 支持内联 javascript 函数。请参阅类似任务的the answer

不确定 aws-amplify graphql 是否支持内联函数。

【问题讨论】:

  • 你可以使用 VTL 自定义解析器,但是有很多样板:docs.amplify.aws/cli/graphql-transformer/…
  • 确实,AppSync 缺少一些东西,JavaScript 函数。 VTL 有点像 Java。可能在 Java VTL 中编写函数。你能解释一下内联函数有多短吗?我不知道。我喜欢 AppSync。使用 AppSync 的努力不应白费。

标签: graphql aws-amplify


【解决方案1】:

您可以覆盖该字段的默认 VTL 解析器,只需添加您想要的逻辑。

This article 详细介绍了一个简单的用例(我认为类似于你的)

只需几步

  • 将该字段添加到您的架构中
  • 构建您的 API
  • 查找自动生成的解析器 (amplify/backend/api/client/build/resolvers) 命名约定很简单。
  • 复制到amplify/backend/api/client/resolvers
  • 根据需要进行更改
  • 将您的更改推送到 Amplify

在文章中他刚刚添加了一个新的套装物品

## [Start] Prepare DynamoDB PutItem Request. **
$util.qr($context.args.input.put("createdAt", $util.time.nowISO8601()))
$util.qr($context.args.input.put("updatedAt", $util.time.nowISO8601()))
# The next line was added
$util.qr($context.args.input.put("active", false))

AWS 在 VTL 上有一些 tutorials,您可能想看看。

而且 Amplify 在使用 VTL 的自定义解析器上有更多 docs

【讨论】:

    猜你喜欢
    • 2020-05-09
    • 2018-10-11
    • 2021-03-03
    • 2019-08-30
    • 2020-07-01
    • 2022-08-24
    • 2019-07-28
    • 2020-04-08
    • 2020-03-08
    相关资源
    最近更新 更多