Является ли `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
похоже на обходной путь, который не должен использоваться. Это правильное решение?