如何为 "most likes" 的 Appsync 创建 GraphQl 解析器
How to create a GraphQl resolver for Appsync for "most likes"
我将 AWS Appsync 与 DynamoDB 用作数据源。我有 2 个表,一个用于照片,一个用于喜欢。在 Appsync 解析器中,我只想 return 点赞次数超过 5 次的照片。我怎样才能在 Appsync
中实现这个
架构
type Photo {
id: ID!
likes: [LikedPhoto]
}
type LikedPhoto {
id: ID!
username: String!
photoId: String!
}
查询
type Query {
listPhotos(filter: PhotoFilterInput, limit: Int, nextToken: String): PhotoConnection
}
照片解析器
数据来源:PhotoTable
{
"version": "2017-02-28",
"operation": "Scan",
"filter": #if($context.args.filter) $util.transform.toDynamoDBFilterExpression($ctx.args.filter) #else null #end,
"limit": $util.defaultIfNull($ctx.args.limit, 20),
"nextToken": $util.toJson($util.defaultIfNullOrEmpty($ctx.args.nextToken, null)),
}
喜欢解析器
数据来源:LikesTable
{
"version": "2017-02-28",
"operation": "Query",
"index": "photoId-index",
"query": {
"expression": "photoId = :photoId",
"expressionValues": {
":photoId": {
"S": "$context.source.id"
}
}
}
}
我如何为点赞或照片编写解析器,以仅显示点赞次数超过 5 次的照片。
如何将您的架构设计成 document-based
只有 PhotoTable
.
这样您就可以轻松地使用 totalLike
.
过滤照片
type Photo {
id: ID!
likedUsername: [String]
totalLike: Int
}
// QUERY RESOLVER
{
"version" : "2017-02-28",
"operation" : "Scan",
"filter" : {
"expression": "totalLike > :totalLike",
"expressionValues": {
":totalLike": {
"N": 5
}
}
}
}
我将 AWS Appsync 与 DynamoDB 用作数据源。我有 2 个表,一个用于照片,一个用于喜欢。在 Appsync 解析器中,我只想 return 点赞次数超过 5 次的照片。我怎样才能在 Appsync
中实现这个架构
type Photo {
id: ID!
likes: [LikedPhoto]
}
type LikedPhoto {
id: ID!
username: String!
photoId: String!
}
查询
type Query {
listPhotos(filter: PhotoFilterInput, limit: Int, nextToken: String): PhotoConnection
}
照片解析器
数据来源:PhotoTable
{
"version": "2017-02-28",
"operation": "Scan",
"filter": #if($context.args.filter) $util.transform.toDynamoDBFilterExpression($ctx.args.filter) #else null #end,
"limit": $util.defaultIfNull($ctx.args.limit, 20),
"nextToken": $util.toJson($util.defaultIfNullOrEmpty($ctx.args.nextToken, null)),
}
喜欢解析器
数据来源:LikesTable
{
"version": "2017-02-28",
"operation": "Query",
"index": "photoId-index",
"query": {
"expression": "photoId = :photoId",
"expressionValues": {
":photoId": {
"S": "$context.source.id"
}
}
}
}
我如何为点赞或照片编写解析器,以仅显示点赞次数超过 5 次的照片。
如何将您的架构设计成 document-based
只有 PhotoTable
.
这样您就可以轻松地使用 totalLike
.
type Photo {
id: ID!
likedUsername: [String]
totalLike: Int
}
// QUERY RESOLVER
{
"version" : "2017-02-28",
"operation" : "Scan",
"filter" : {
"expression": "totalLike > :totalLike",
"expressionValues": {
":totalLike": {
"N": 5
}
}
}
}