Appsync отсутствует распознаватель - PullRequest
0 голосов
/ 18 октября 2018

Я использую AWS appsync + DynamoDB.

Проблема: я создал новое поле 'rating' в своей схеме 'Users':

type Users {
    id: ID!
    first: String!
    last: String!
    rating: String #<----The new field
}

AppSync создал все ресурсы, и я могу создавать новые записи с помощью мутаций, и это работает какОчарование.

mutation createUsers{
   createUsers(input:{
     first:"John"
     last:"Smith"
     rating:"B" #<---Writing new field without problem
   }){
     id
     first
     last
     rating #<---Confirming that is recorded in DynamoDB
   }
 }

Проблема в том, что я не могу понять, как написать распознаватель, чтобы следующий запрос работал.

query{
  queryUsersByRating(rating: "B"){
    items{
      id
      username
      rating
    }
  }
}

Результат таков:

{
  "data": {
    "queryUsersByRating": null
  }
}

Проблема четко обозначена здесь в разделе «Отсутствует решатель», но нет четкого решения.

Я попытался подключить следующий Resolver непосредственно в интерфейсе AppSync, но он не работает:

{
    "version" : "2017-02-28",
    "operation" : "Query",
    "query" : {
        "expression": "rating = :rating",
        "expressionValues" : {
            ":rating" : $util.dynamodb.toDynamoDBJson($ctx.args.rating)
        }
    }
}

Любая помощь будет принята, СПАСИБО!

1 Ответ

0 голосов
/ 27 мая 2019

Вам не нужно писать собственный распознаватель для запросов по рейтингу, Appsync обернул все поля внутри filter.

query{
  queryUsersByRating(filter: {rating: "B"}){
    items{
      id
      username
      rating
    }
  }
}
...