如何在GraphQL模式中添加条件非空字段?

如何在GraphQL模式中添加条件非空字段?,graphql,schema,Graphql,Schema,我想实现-只有一个字段可以在评级和文本之间为空,或者只有一个字段在“Review”类型的评级和文本之间为非空 您可以使用在GraphQL中为此类行为建模。如果我理解正确,您似乎希望进行几种类型的审查,例如: type Review { rating: Int!, text: String! } 首先为所有审查定义一个通用接口: type RatingBasedReview { rating : Int! } type TextBasedReview { te

我想实现-只有一个字段可以在评级和文本之间为空,或者只有一个字段在“Review”类型的评级和文本之间为非空

您可以使用在GraphQL中为此类行为建模。如果我理解正确,您似乎希望进行几种类型的审查,例如:

type Review { 
   rating: Int!,
   text: String! 
}
首先为所有审查定义一个通用接口:

type RatingBasedReview {
    rating  : Int!
}

type TextBasedReview {
    text   : String!
}
每个子类型都实现了它:

interface Review {

}

然后,客户机可以使用语法指定要查询的实际子类型。

如果没有公共字段,则联合也可以工作,并且是必要的,因为接口必须至少定义一个字段<代码>接口审阅{}的语法无效。
type RatingBasedReview implements Review {
    rating  : Int!
}

type TextBasedReview implements Review {
    text   : String!
}