Невозможно сериализовать AWSDate из RDS в шаблоне сопоставления ответов AppSync. - PullRequest
0 голосов
/ 28 сентября 2019

Я строю проект AppSync, используя Aurora без сервера в качестве моей базы данных, и наткнулся на эту странную ошибку:

"Can't serialize value (/getUsers/created_at) : Unable to serialize `2019-09-28 07:36:13` as a valid DateTime Object."

Это происходит, когда я получаю объект User, который выглядит следующим образом:

type Users {
  id: String!
  name: String!
  description: String
  created_at: AWSDateTime
  updated_at: AWSDateTime
  logged_in: AWSDateTime
}

Ошибка, кажется, происходит, потому что $utils.rds.toJsonObject($ctx.result)[0][0] не может проанализировать AWSDateTime.Что делает невозможным передачу данных с датой из базы данных.

Если я просто выберу объект без дат ["SELECT id,name,description FROM Users WHERE id='$ctx.args.id'"], он будет работать нормально.

Так как же обрабатывать даты в AWS AppSync иAurora?Я не смог найти ни одного примера или ссылки на даты обработки в документации.:(

1 Ответ

0 голосов
/ 28 сентября 2019

Я случайно нашел ответ в репозитории, связанном с этим вопросом Используйте AppSync и Amazon RDS с serverless-graphql

Оказывается, как пользователь dev1702 обнаружен, что $utils.rds.toJsonObject($ctx.result)[0][0] не может проанализировать метку времени RDS в формат GraphQl AWSDate.

Таким образом, просто изменив тип схемы graphql с:

created_at: AWSDateTime

на:

created_at: String

решает эту проблему.

...