1、字段

{
    hero{
        name
        friend{
         name
        }
    }
}

2、参数:是查询有了条件

{
    hero(id:"1000"){
        name
        friend(name:"yanhz"){
         name
        }
    }
}

3、别名:解决相同字段,返回结果冲突问题

{
    hero1:hero(id:"1001"){
        name
    }
    hero2:hearo(id:"2001"){
        name
    }
}

4、片段(fragments):可复用单元

fragment fieldname on character{
        name
        appearIn
        friends{
         name
        }
}

{
  hero1:hero(id:"1001"){
    ... fieldname
  }
  hero2:hearo(id:"2001"){
    ... fieldname
  }
}

5、操作名称(operation name):就是给查询起个名称,以免对代码产生歧义

包含操作类型和操作名称

操作类型:query,mutation和subscription,来描述你做什么类型的操作。

操作名称:1、见名知意 2、调试跟踪

query query1    {
                    hero(id:"1000"){
                        name
                        friend(name:"yanhz"){
                         name
                        }
                    }
                }

6、变量(variables):动态值即变量

三件事:

1、声明变量-(在操作名称处声明)

2、使用变量

3、传递变量值

query query1 ($var: type)   {//声明变量
                    hero(id:$var){//使用变量
                        name
                        friend(name:"yanhz"){
                         name
                        }
                    }
                }





============传递变量值
{
    "$var":"1234234"
}

变量的定义:如果是可选上面的方式即可,如果是必须,要在类型后面加上!;类型,必须是标量、枚举或者对象类型

默认变量值:直接赋值即可

7、指令(directives):控制逻辑使用,可以和变量一起使用

一个指令可以附着在字段或者片段包含的字段上。

目前有两个指令:

@include(if: Boolean) 仅在参数为 true 时,包含此字段。
@skip(if: Boolean) 如果参数为 true,跳过此字段。

query Hero($episode: Episode, $withFriends: Boolean!) {
  hero(episode: $episode) {
    name
    friends @include(if: $withFriends) {
      name
    }
  }
}

指令在你不得不通过字符串操作来增减查询的字段时解救你。服务端实现也可以定义新的指令来添加新的特性。

8、变更(mutations)

results matching ""

    No results matching ""