该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
不是模式中任何字段的返回类型,除了以接口作为其返回类型的查询。如果没有任何其他更改,GraphQL 将无法识别查询。Contact
contacts
是orphan_types
接口什么possible_types
是工会?也许这是让我失望的命名,但orphan_types
似乎是一种不应该使用的解决方法。这是正确的解决方案吗?