处理数据
嵌套字段
看例子:
我想查看 viewer 下的 repositories. 注意里面的 edges, 一旦看到这个词, 通常就表示有连接到某个数组的数据. 在这里就是一个集合的 repository.
edges 里面的 node 代表 viewer 列表里不同的 repository.
查询报错了, 因为这里需要多 repositories 有个翻页的动作, 所以需要 first 或 last 参数.
添加 first 参数以后就可以看到正确的结果了:
把参数换成 last 也可以, 我就不试了.
连接 Connection
查看 Docs, 可以看到 viewer 下 repositories 的返回类型是 RepositoryConnection:
再点击进去:
可以看到 RepositoryConnection 下面的 edges 是一个 RepositoryEdge 的列表.
继续点击进去, 可以看到 RepositoryEdge 下面的 node 就是一个 Repository:
把上面的关系用图来表示就是:
多重嵌套字段
直接看例子就行:
翻页
之前的例子使用了 first 或 last 参数进行翻页, 但除此之外还有很多种方式可以用来翻页.
具体如何翻页, 还要看您如何在 schema 中定义.
下面再看一个例子:
查看文档, 可以看到 issues 所有的参数定义:
它们都是用来过滤数据和进行翻页的.
为查询起名
之前的例子我们大多把 query 关键字忽略了, 而完整的写法应该是:
query 就像是查询的名称, 但是如果都叫 query 就不好区分了, 所以我们可以为查询起名, 就在 query 后边加上名字即可:
这样这个查询既让人明白又可以复用. 查询的结果还是一样的.
查询变量
之前例子的参数值都是写死的, 我们可以在查询的名称后边加上参数变量, 使用 $+ 名称表示变量, 然后将变量传递给相应的字段. 而变量的值可以在左下角的窗口里设定:
这个查询结果还是一样的.
变化 Mutation
之前的例子都是查询数据. 下面讲讲如何修改数据.
修改数据就需要用到 mutation.
Mutation 的特点如下:
和 REST 里的 POST,PUT 和 DELETE 相似.
Mutation 里使用 payload 发送数据.
GraphQL 修改 schema 背后的数据集.
API 定义了哪些 mutation 是允许的.
下面看例子, 我要为一个 Repository 的 Issue 添加评论, 首先查询, 获得一个 Issue 的 id:
然后做 mutation:
这里使用 mutation 关键字, 随后跟着 mutation 的名字和参数变量. 该参数变量的类型是 AddCommentInput, 是一个定义好的对象.
addComment 这个操作里面定义的字段是要在 mutation 成功后返回的字段.
然后在左下方设定好参数, 执行操作即可.
右侧是返回的结果.
我们再反查一遍, 看看是否添加了新的评论:
我点击了两次, 所以新增加了两个评论.
好吧简介就写到这吧, 尽管很不完整.
下篇开始实战.
来源: https://www.cnblogs.com/cgzl/p/9741516.html