Как мне реализовать «UNION» для результатов моего запроса из двух разных типов в GraphQL? - PullRequest
0 голосов
/ 20 сентября 2019

У меня есть тип события и тип подкаста, примерно с такими определениями:

type Event {
  id: ID!
  name: String!
  location: String!
  when: DateTime!
}
type Podcast {
  id: ID!
  name: String!
  uri: String!
  when: DateTime!
}

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

query {
  events(orderBy: when_DESC) {
    id
    name
    location
    when
  }
  podcasts(orderBy: when_DESC) {
    id
    name
    uri
    when
  }
}

Я хочу избежать объединения этих двух результатов, потому что это также нарушит нумерацию страниц ...Есть ли способ получить один результат для обоих?

Используя MySQL, это будет примерно так:

SELECT id, name, location AS address FROM events ORDER BY when DESC
UNION
SELECT id, name, uri AS address FROM podcasts ORDER BY when DESC

Возможно ли это вообще?

Мой стекReact Native, клиент apollo, graphql-tag, Prisma.

...