«Невозможно вернуть значение NULL для ненулевого типа:« Person »в родительских« Messages »(/ getMessages / sendBy)» в GraphQL SDL (aws appsync) - PullRequest
0 голосов
/ 30 мая 2018

Я новичок в graphql. Я реализую реактивное приложение с помощью aws appsync. Ниже приведен код, который я написал в схеме

type Messages {
id: ID!
createdAt: String!
updateAt: String!
text: String!
sendBy: Person!
    @relation(name: "UserMessages")}

type Person {
id: ID!
createdAt: String!
updateAt: String!
name: String!
messages: [Messages!]!
    @relation(name: "UserMessages")}

Когда я пытался запросить значение sendBy, оно дает мнеговоря об ошибке

  query getMessages{
  getMessages(id : "a0546b5d-1faf-444c-b243-fab5e1f47d2d") {
    id
    text
    sendBy {
      name
    }
  }
}


 {
  "data": {
    "getMessages": null
  },
  "errors": [
    {
      "path": [
        "getMessages",
        "sendBy"
      ],
      "locations": null,
      "message": "Cannot return null for non-nullable type: 'Person' within parent 'Messages' (/getMessages/sendBy)"
    }
  ]
}

Не понимаю эту ошибку, пожалуйста, помогите мне. Спасибо!заранее

Ответы [ 2 ]

0 голосов
/ 17 июля 2018

Я столкнулся с подобной проблемой при работе над моей установкой с CloudFormation.В моей конкретной ситуации я неправильно настроил проекцию для глобальных вторичных индексов.Так как атрибуты не были спроецированы в индекс, я получил идентификатор в ответе, но ноль для всех других значений.Обновление ProjectionType до «ALL» решило мою проблему.Не сказать, что это «правильный» параметр, но для моей конкретной реализации он был необходим.

Подробнее о проекции глобального вторичного индекса для CloudFormation можно найти здесь: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-projectionobject.html

Атрибуты, которые копируются (проецируются) из исходной таблицы в индекс.Эти атрибуты являются дополнениями к атрибутам первичного ключа и атрибутам индексного ключа, которые автоматически проецируются.

0 голосов
/ 30 мая 2018

Похоже, что путь [getMessages, sendBy] разрешается в значение null, а в определении схемы (sendBy: Person!) говорится, что поле sendBy не может преобразоваться в ноль.Проверьте, подключен ли преобразователь к полю sendBy в типе Messages.

Если подключенный преобразователь подключен, включите журналы CloudWatch для этого API (это можно сделать на странице «Настройки» в консоли.выберите опцию ВСЕ).Вы должны быть в состоянии проверить, что было разрешено отображение запроса / ответа для пути [getMessages, 0, sendBy].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...