模型字段上的 AWS Amplify AppSync @function
AWS Amplify AppSync @function on a model field
我正在为看起来像这样的博客创建一个 Amplify 架构:
type Post @model {
id: ID!
caption: String!
src: String!
}
我想在Post模型中添加一个新字段来计算Post[=27的次数=] 被喜欢。
它从另一个 API 获取此数据。
有没有办法 运行 仅在 模型字段上创建一个函数 类似这样的东西。
type Post @model {
id: ID!
caption: String!
src: String!
likes: String @function("getLikesLambda-${dev}")
}
getLikesLambda
代码看起来如何?
我在官方文档中看到了有关实现解析器的代码,但它们都将 @function 与 type query 相关联,这并不是我想要的。
如果你们有任何建议或有任何不清楚的地方,请告诉我。
您的解析器可以附加到任何字段,而不仅仅是查询根
我已经实现了类似的东西
在您的 graphQL 架构上:
likes: String @function(name: "getLikesLambda-${env}")
添加一个新的 lambda 函数调用 amplify function add
然后编写您的代码,这里是一个 Python 示例,但您可以使用任何支持的语言。
import boto3
def handler(event, context):
print('received event:')
print(event)
if 'typeName' in event and event['typeName'] == 'Post' and event['fieldName'] == 'likes':
print("Resolve field likes")
# Do your logic to get the likes
likes = getLikes()
return likes
return ''
@danielfranca 完全正确。我还没有测试过它,但我最近在这里找到了一些我以前从未见过的文档:https://docs.amplify.aws/cli/graphql-transformer/directives。这里有一个函数示例:
type Query {
posts: [Post] @function(name: "GraphQLResolverFunction")
}
type Post {
id: ID!
title: String!
comments: [Comment] @function(name: "GraphQLResolverFunction")
}
type Comment {
postId: ID!
content: String
}
我正在为看起来像这样的博客创建一个 Amplify 架构:
type Post @model {
id: ID!
caption: String!
src: String!
}
我想在Post模型中添加一个新字段来计算Post[=27的次数=] 被喜欢。 它从另一个 API 获取此数据。
有没有办法 运行 仅在 模型字段上创建一个函数 类似这样的东西。
type Post @model {
id: ID!
caption: String!
src: String!
likes: String @function("getLikesLambda-${dev}")
}
getLikesLambda
代码看起来如何?
我在官方文档中看到了有关实现解析器的代码,但它们都将 @function 与 type query 相关联,这并不是我想要的。
如果你们有任何建议或有任何不清楚的地方,请告诉我。
您的解析器可以附加到任何字段,而不仅仅是查询根
我已经实现了类似的东西
在您的 graphQL 架构上:
likes: String @function(name: "getLikesLambda-${env}")
添加一个新的 lambda 函数调用 amplify function add
然后编写您的代码,这里是一个 Python 示例,但您可以使用任何支持的语言。
import boto3
def handler(event, context):
print('received event:')
print(event)
if 'typeName' in event and event['typeName'] == 'Post' and event['fieldName'] == 'likes':
print("Resolve field likes")
# Do your logic to get the likes
likes = getLikes()
return likes
return ''
@danielfranca 完全正确。我还没有测试过它,但我最近在这里找到了一些我以前从未见过的文档:https://docs.amplify.aws/cli/graphql-transformer/directives。这里有一个函数示例:
type Query {
posts: [Post] @function(name: "GraphQLResolverFunction")
}
type Post {
id: ID!
title: String!
comments: [Comment] @function(name: "GraphQLResolverFunction")
}
type Comment {
postId: ID!
content: String
}