Преобразовать тип объединения на шлюзе в скалярный тип в сервисе GraphQL в apollo-сервере - PullRequest
0 голосов
/ 03 декабря 2018

У меня есть тип, определенный как Device на моем сервере Prisma

type Device {
  id: ID! @unique
  type: DeviceType
  settings: Json
}

На моем шлюзе, однако я хотел бы преобразовать настройки поля в фактический тип объединения

# import Node from './generated/prisma.graphql'

type MobileSettings {
  firmware: String
}

type DesktopSettings {
  os: String
}

union Settings = MobileSettings | DesktopSettings

type Device implements Node {
  id: ID!
  type: DeviceType
  settings: Json
}

type Query {
  devices: [Device]
  node(id: ID!): Node
}

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

Как преобразовать поле Json в фактический тип объединения?

1 Ответ

0 голосов
/ 10 декабря 2018

Я думаю, что вы забыли использовать тип Settings в своей схеме:

# import Node from './generated/prisma.graphql'

type MobileSettings {
  firmware: String
}

type DesktopSettings {
  os: String
}

union Settings = MobileSettings | DesktopSettings

type Device implements Node {
  id: ID!
  type: DeviceType
  settings: Settings # <-- Here
}

type Query {
  devices: [Device]
  node(id: ID!): Node
}
...