以下GraphQL请求:
{
search {
firstName
City{
cityName
}
}
}
导致:
{
"data": {
"search": [
{
"firstName": "Alice",
"City": {
"cityName": "Berlin"
}
},
{
"firstName": "Bob",
"City": {
"cityName": "Madrid"
}
}
]
}
}
添加firstName参数将导致以下结果;
请求:
{
search(firstName:"Bob") {
firstName
City{
cityName
}
}
}
在:
{
"data": {
"search": [
{
"firstName": "Bob",
"City": {
"cityName": "Madrid"
}
}
]
}
}
但是到目前为止,如果我现在向City添加一个参数,那么我希望这能反映出完整的结果。
以下请求:
{
search(firstName: "Bob") {
firstName
City(cityName: "Madrid") {
cityName
}
}
}
结果:
{
"data": {
"search": [
{
"firstName": "Bob",
"City": {
"cityName": null
}
}
]
}
}
但是我希望结果是:
{
"data": {
"search": []
}
}
或此回复:
{
search {
firstName
City(cityName: "Madrid") {
cityName
}
}
}
应该导致
{
"data": {
"search": [
{
"firstName": "Bob",
"City": {
"cityName": "Madrid"
}
}
]
}
}
我认为这与查询的结构方式有关,但我不确定。
答案 0 :(得分:0)
我认为City(cityName:...)
解析的数据不会影响firstName
。对于API而言,只有一个字段影响整个响应可能是一个不好的结构。
但是,要实现类似的目的,我建议在search
上发送cityName参数,例如:
{
search(firstName: "Bob", cityName: "Madrid") {
firstName
City {
cityName
}
}
}
然后解析在search
解析器上输入的数据。