用POSTMAN通过GraphQL获取Github仓库的信息

你要做什么?

为了获取Github存储库的信息,使用名为POSTMAN的平台进行执行。
在POSTMAN中使用”GraphQL API v4″来发送查询,并获取存储库信息。

在这篇文章中,

    • APIをPOSTMANに追加

 

    簡単なqueryを叩く

我們將進行到這一點的描述。

邮递员是谁?

这是我们的官方网站。
POSTMAN是一个为API开发提供综合环境的工具。

这次的目的是使用GraphQL API v4获取GitHub信息,而不是自己制作API。因此,我们希望提供一个直观易用的API环境。

让我试试看吧

现在我们来实际操作一下。在POSTMAN的文档中,还有有关从安装到操作各种API的方法的说明,请您也检查一下。

环境

操作系统 — macOS Catalina 版本 10.15.5
POSTMAN — Postman v7.25.2
API — GraphQL API v4

前提准备

    • POSTMANのインストール(POSTMAN Download Pageからできます)

 

    GithubAPIの認証・OAuth token(アクセストークン)の取得(こちらのGithubDocsを参考に)

将API注册到POSTMAN

首先,将GraphQL的API添加到POSTMAN中。

下载Schema

你可以从这里下载GraphQL的Public Schema。

向POSTMAN添加新的API

newAPI
addAPI

现在API的注册已经完成了。

2. 查询数据库

接下来,我们将创建查询。

创建一个新请求。

Screen Shot 2020-08-23 at 17.32.33.png

設置請求的詳細

接下来,我们将设置请求的详细信息。

    • リクエストのタイプをデフォルトのGETから、POSTに変更します。

 

    • URLは「https://api.github.com/graphql 」と入力します。

 

    Authorizationのタブを選択し、認証Typeを選びます(私はOAuth2.0にします)。
Screen Shot 2020-08-23 at 17.32.33.png

查询数据

Screen Shot 2020-08-23 at 17.41.22.png

我的用户信息

{
    user(login: "\任意のユーザー名\") {
        name
    }
}

不展开回应,自己的Github显示名称会返回。

開放帳戶的資料庫擁有者(repositoryOwner())。

在「repositoryOwner()」中,您可以获取任何账户的信息。
这里是获取存储库总数的查询。


{
  repositoryOwner (login: "facebook") {
    repositories {
      totalCount
    }
  }
}
以下是响应内容:{
“data”: {
“repositoryOwner”: {
“repositories”: {
“totalCount”: 127
}
}
}
}

仓库 repository() 的开放存储信息

如果在「repository()」函数中使用openRepository,您将能够获取到存储库的信息。
如果输入「owner:””, name:””」以省略账户信息,则只需要特定的存储库信息,而无需账户信息,这是推荐的方法。
在这里,我们获取的查询将包括fork总数、issue总数、stargazer总数、watcher总数、pullRequest总数、labels总数和milestone总数。


{
  repository(owner:"facebook",name:"react"){
    forks {
        totalCount
    }
    issues {
        totalCount
    }
    stargazers {
        totalCount
    }
    watchers {
        totalCount
    }
    pullRequests {
        totalCount
    }
    labels{
        totalCount
    }
    milestones{
        totalCount
    }
  }
}
以下是回应:{
“数据”: {
“代码库”: {
“分支数”: {
“总数”: 29096
},
“问题”: {
“总数”: 9486
},
“星标者”: {
“总数”: 154618
},
“关注者”: {
“总数”: 6684
},
“拉取请求”: {
“总数”: 9968
},
“标签”: {
“总数”: 59
},
“里程碑”: {
“总数”: 39
}
}
}
}

获取每个问题的内容

不仅限于问题,您可以使用以下方法获取每个信息。
在“(首次:##)”中,您可以指定“首次##个”。使用API最多可获取100个。
可以设置各种限制,如“最后:##”,“之后:‘$$$’”等等。
这次,我们将获取前10个问题。

    • タイトル

 

    • issueID

 

    • closedされているか(Boolean)

 

    • createdAt(timestamp iso 8601 “YYYY-MM-DDTHH:MM:SSZ”)

 

    closedAt(timestamp iso 8601 “YYYY-MM-DDTHH:MM:SSZ”)

这是获取的查询。


{
    repository(owner:"facebook",name:"react"){
        issues(first:10) {
            totalCount
            edges {
                node {
                    title
                    number
                    closed
                    createdAt
                    closedAt
                }
            }
        }
    }
}
以下是响应:{
“data”: {
“repository”: {
“issues”: {
“totalCount”: 9486,
“edges”: [
{
“node”: {
“title”: “无法 require() react-tools 模块”,
“number”: 10,
“closed”: true,
“createdAt”: “2013-05-30T03:46:02Z”,
“closedAt”: “2013-05-30T12:14:18Z”
}
},
{
“node”: {
“title”: “为 react-tools 模块编写测试”,
“number”: 12,
“closed”: true,
“createdAt”: “2013-05-30T04:32:10Z”,
“closedAt”: “2013-05-31T14:39:43Z”
}
},
{
“node”: {
“title”: “必须为 JSX 添加注释吗?”,
“number”: 16,
“closed”: true,
“createdAt”: “2013-05-30T12:46:11Z”,
“closedAt”: “2013-07-21T17:08:03Z”
}
},
{
“node”: {
“title”: “对 Bower 命令进行小更新”,
“number”: 21,
“closed”: true,
“createdAt”: “2013-05-30T16:01:55Z”,
“closedAt”: “2013-05-30T18:54:41Z”
}
},
{
“node”: {
“title”: “修正文档中 Rake 的 \”update_version\” 命令以去除尾随空格”,
“number”: 24,
“closed”: true,
“createdAt”: “2013-05-30T18:09:21Z”,
“closedAt”: “2013-07-21T17:08:47Z”
}
},
{
“node”: {
“title”: “创建有效的 npm 发布”,
“number”: 26,
“closed”: true,
“createdAt”: “2013-05-30T18:55:49Z”,
“closedAt”: “2013-05-30T19:23:46Z”
}
},
{
“node”: {
“title”: “React 在 RequireJS 中使用?”,
“number”: 28,
“closed”: true,
“createdAt”: “2013-05-30T20:51:32Z”,
“closedAt”: “2014-01-06T21:20:52Z”
}
},
{
“node”: {
“title”: “文档甚至未提及调和!”,
“number”: 37,
“closed”: true,
“createdAt”: “2013-06-01T20:01:11Z”,
“closedAt”: “2013-07-21T17:05:49Z”
}
},
{
“node”: {
“title”: “在 IE8 中需要 es5-sham 吗?”,
“number”: 39,
“closed”: true,
“createdAt”: “2013-06-02T09:08:10Z”,
“closedAt”: “2013-07-24T20:12:30Z”
}
},
{
“node”: {
“title”: “Uncaught SyntaxError: Unexpected token < “,
“number”: 40,
“closed”: true,
“createdAt”: “2013-06-02T13:27:44Z”,
“closedAt”: “2013-06-03T14:05:11Z”
}
}
]
}
}
}
}

3. 最后

POSTMAN非常适合于获取明确的信息和验证GraphQL的语法等方面非常有用。但是,我认为它不适合大规模信息收集。由于GraphQL可以获取Github API中的详细信息,所以我认为它适合用于数据分析的收集步骤。

广告
将在 10 秒后关闭
bannerAds