用户登录

在查询里面用 Directive 可以影响查询的执行。之前我们在这个查询里用了变量,这里我们再给它添加一个变量,名字是 $withPosts,它的类型是 Boolean!,后面的叹号表示这个变量必填。

然后在 posts 这个字段上面可以用一个 Directive, 这些 Directive 用 @ 符号开头,可以使用 inclue 还有 skip,先用一下这个 include 。 括号,里面加上一个 if,它的值用一下 $withPosts 这个变量的值。

这样在执行这个查询的时候,提供给它的变量里面,如果把 withPosts 的值设置成 true,就会在响应的结果里面包含这个用了这个 @include Directive 的 posts 字段,如果 withPosts 的值是 false,在响应的结果里面就不会包含 posts 字段。

下面在 Query Variables 里面,设置一下查询需要的变量,添加一个 id ,设置一下它的值,再添加一个 withPosts,先把它的值设置成 true,执行一下这个查询。

响应的结果里面会包含用户里的 posts 字段。 修改一下查询的时候提供的查询变量里面的这个 withPosts 的值,换成 false。再执行一下这个查询。

这次从服务端那里响应回来的结果里面,就没有包含用户的 posts 字段。 因为在查询里的 posts 字段的上面,用了一个 @include 指令,它会根据 $withPosts 变量的值决定在查询的结果里面是否要包含这个字段。

GraphQL 查询中的指令(Directives)《 企业应用架构:GraphQL 查询 》

统计

11686
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点