我可以扩展对象类型在graphql lighthouse-php?



我正在使用lighthouse-php与laravel。我需要在多个查询和不同的模式中使用type Employee。在某些情况下,Employee可以有额外的字段。

#employee.graphql
type Employee{
id: ID
name: String
}

#company.graphql
extend type Employee{
loginCount: ID
}

这个方法好吗?如果有更好的方法,请告诉我。

是。这是一个完全可以接受的方法虽然你的例子可能是那么完美。请考虑这样的内容:

# employee.graphql
type Employee {
id: ID!
name: String!
}
# company.graphql
type Company {
id: ID!
name: String!
}
extend type Employee {
company: Company! @belongsTo
}

示例中的loginCount属性似乎与company.graphl无关,因此为了您自己的理智,请尝试将相关项分组。

但是将所有与公司相关的字段和查询放在一个文件中是很有意义的,特别是在更大的模式中。

一个旁注,添加字段(在你的例子和companyloginCount)添加到Employee类型无论你使用它,它不像这只添加字段company.graphql内可用。在构建最终模式时,所有extend *类型合并为单个Employee类型,因此上述模式的最终结果为:

type Employee {
id: ID!
name: String!
company: Company!
}
type Company {
id: ID!
name: String!
}

希望这一切都有意义!

最新更新