Является ли `orphan_types` единственным способом указать возможные типы разрешения для интерфейса?

ruby-graphql Документация говорит следующее о типах разрешения для интерфейсов:

... схема находит ее типы путем обхода ее полей, начиная с query, mutation а также subscription, Если объект никогда не является возвращаемым типом поля, а только связан через интерфейс, то он должен быть явно связан со схемой через orphan_types,

Посмотреть здесь

У меня есть следующее определение модуля с двумя классами, которые его реализуют:

module Contact
  include GraphQL::Schema::Interface

  field :id, ID, null: false
end

class Cmpany < Types::Base
  implements Contact

  graphql_name "Company"

  field :name, String, null: false
end

class Person < Types::Base
  implements Contact

  graphql_name "Person"

  field :first_name, String, null: false
  field :last_name, String, null: false
end

Как он есть, мой код соответствует описанию в документации, в том, что типы Company а также Person никогда не возвращают тип какого-либо поля в схеме, кроме запроса, который имеет интерфейс Contact как его тип возврата. Без каких-либо других изменений GraphQL не распознает contacts запрос.

Является orphan_types интерфейсы какие possible_types это для союзов? Возможно, это меня раздражает, но orphan_types похоже на обходной путь, который не должен использоваться. Это правильное решение?

0 ответов

Другие вопросы по тегам