aws amplify graphql 计算域内联解析器

Posted

技术标签:

【中文标题】aws amplify graphql 计算域内联解析器【英文标题】:aws amplify graphql computed field inline resolver 【发布时间】: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 的努力不应白费。 【参考方案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

【讨论】:

以上是关于aws amplify graphql 计算域内联解析器的主要内容,如果未能解决你的问题,请参考以下文章

AWS Amplify 未生成正确的 graphql 输入深度

如何在 aws amplify 中使用 graphQL 限制

@connection 上的 AWS Amplify Graphql 查询

通过 GraphQL 键检索 AWS Amplify DataStore 记录

aws amplify appsync 中的 Graphql 突变错误

AWS Amplify GraphQL Schema 导致错误