GraphQL, где предложение принять объект Json? - PullRequest
0 голосов
/ 16 января 2020

Итак, у меня есть следующий рабочий GQL:

mutation updateManySomething{
    updateManySomething(
        data: {
            dateTime: "2020-01-15T13:07:42-06:00"
            status: true
            updatedBy: "1234"
        }
        where: { id_in: ["1234", "1234" ] }
    ) {
        count
    }
}

Однако, когда я пытаюсь заставить его принять переданные переменные, он вылетает из-за отсутствия идентификатора! определяется как массив идентификаторов ....

mutation updateManySomething(
    $id: ID!
    $dateTime: DateTime
    $status: Boolean
    $updatedBy: String!
    ) {
    updateManySomething(
    data: {
            dateTime: $dateTime
            status: $status
            updatedBy: $updatedBy
      }
  where: { id_in: [$id] }
    ) {
        count
    }
}

Я попытался пропустить $ id: ID! и создание новой переменной $ arrayOfIds: Json, но это тоже не помогает, кто-нибудь знает, что я могу сделать? Бэкэнд prisma JS работает в React-Native.

Ниже на рисунке изображена точная ошибка от Apollo, некоторые небольшие имена переменных изменены, но это по сути тот же запрос.

error image

1 Ответ

1 голос
/ 18 января 2020

Если схема ожидает список идентификаторов, то вы должны определить свою переменную соответственно:

mutation updateManySomething(
  $ids: [ID!]!
  $dateTime: DateTime
  $status: Boolean
  $updatedBy: String!
) {
  updateManySomething(
    data: {
      dateTime: $dateTime
      status: $status
      updatedBy: $updatedBy
    }
    where: {
      id_in: $ids
    }
  ) {
  count
  }
}

Примечание: ненулевой тип может использоваться там, где ожидается обнуляемый тип, но не наоборот , Это означает, что вы можете использовать [ID!]!, даже если тип аргумента [ID], [ID!] или [ID]!.

...