Учитывая graphql.js схема, как я могу найти все варианты определенного типа объединения?

#graphql #graphql-js

#graphql #graphql-js

Вопрос:

Предположим, у меня есть схема GraphQL, построенная следующим образом:

 var { buildSchema } = require('graphql');

// Construct a schema, using GraphQL schema language
var schema = buildSchema(`
  type Human = // some object type
  type Droid = // another object type
  union SearchResult = Human | Droid
  type Query {
    result: SearchResult
  }
`);

const searchResultVariants = ?
  

Теперь я ищу способ программно определить все варианты SearchResult типа в одной программе для данного schema , есть ли способ для этого? Спасибо

Ответ №1:

Получить абстрактный тип (интерфейс или объединение), о котором идет речь:

 const searchResultType = schema.getType('SearchResult');
  

затем получите его возможные типы:

 const possibleTypes = schema.getPossibleTypes(searchResultType);
  

possibleTypes будет создан массив GraphQLObjectType объектов.

Вы также можете проверить, является ли конкретный тип возможным типом абстрактного типа с помощью isPossibleType .

Комментарии:

1. Спасибо за ваш ответ, не могли бы вы, пожалуйста, поделиться, где документированы эти методы?