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 记录