云计算技术

❖ Github API v4: GraphQL

2019-01-20  本文已影响29人  Solomon_Xie

GraphQL势不可挡,有着即将取代REST的API架构。主要好处就是“你要什么,api就给你什么。而不是你要不要都给你返回一大堆没用的。”

而且:GraphQL只需要一个网址URL!

https://api.github.com/graphql

不像REST,你需要各种各有的URL去申请不同的内容。GraphQL一个URL全够了。
而且一般不是很复杂的情况下,你几乎只要request一次这个地址,就能拿到你全部需要的数据了(能按照你的需求返回给你各种嵌套的、格式化的数据)

网上看了很多文章解释之后发现还是什么都没懂。所以这篇分享不打算按照常规路线,先用一大堆结构图、语法给你弄懵。这里我想先让它运作起来,有个"Hello world",然后再去深究背后的逻辑和语法。

初试GraphQL

要说去了解一个API,最好的方式就是用PostmanInsomnia这种REST客户端去连接玩耍了,不需要任何编程,只是手动点一点就ok。

”有意思“的是,因为GraphQL太新潮,这两大客户端对它的支持各不相同,使用的参数、格式也大相径庭。
下面通过最简单的案例总结一下。

Insomnia 访问Github GraphQL 的案例

Insomnia对GraphQL的支持相当好,可以说已经领先别人一步。
以下为操作步骤:

query {
  viewer {
    login
  }
}

Postman访问GraphQL失败

不像Insomnia,Postman暂时没有支持GraphQL的选项,但是可以通过类似的操作达到一样的效果。流程是一样的,只是每个地方设置格式都不同,这也是我不断尝试才找到的总结方案(可惜网上相关教程太少)。

这里只说不同的地方吧:

{ 
  "query": "query {viewer { login } }"
}
imageimage

GitHub GraphQL Explorer

这个是Github制作的网页练习机,免去了一切授权等处理,让你只专注于查询语句的调用练习。
每次点击运行,都会实时返回对应的数据。
如果记不住的、不懂的,还可以点击旁边的Docs,会显示出一个搜索框,显示你需要的内容的文档。

GraphQL API Explorer | GitHub Developer Guide

imageimage

常用查询结构

下面展示一些我测试过的查询结构,希望能起到帮助作用。
为了增强阅读性,节省文字长度,返回值就先不粘上来了。而且返回值几乎就是查询语句的结构,没什么特别新鲜的。

查询指定的repo中的issues和comments

其中指定了某一个repo(通过owner和name指定),也指定了某一条issue(通过number指定),并要求返回最近的10条comments。

imageimage
上一篇下一篇

猜你喜欢

热点阅读