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