【发布时间】:2020-02-07 07:10:33
【问题描述】:
GraphQL 查询/突变非常简洁:它们只需要它们实际需要的东西,没有别的。或者至少是基本的。
但是,如果您将变量与其中任何一个一起使用,那么您的语法不可避免地会出现冗余:
query HeroNameAndFriends($episode: Episode) {
hero(episode: $episode) {
name
friends {
name
}
}
}
注意$episode: Episode 和episode: $episode。问题是每个 GraphQL 突变都需要相同的冗余:如果您使用变量,则每个参数都必须定义两次(如果您正在进行 programmatic 查询,那么您无疑是在使用变量)。
我的问题是,为什么?让每个使用 GraphQL 的人都不得不重复他们的论点似乎没有必要。
为什么不直接写语法:
query HeroNameAndFriends() {
hero($episode: Episode) {
name
friends {
name
}
}
}
或者如果你真的需要允许不同的变量名,允许一个可选的第三部分:
query HeroNameAndFriends() {
hero(episode: Episode : $episode) {
name
friends {
name
}
}
}
需要明确的是,我知道使用变量的查询与非变量的查询不同,但我要问的是,为什么要为那些迫使每个人重复自己的查询选择一种语法?
看起来如此......不干燥!我肯定错过了为什么这种重复是必要的一个重要原因?
【问题讨论】:
标签: graphql