进行一次GraphQL查询并使用查询结果通过调用后续查询来获取更多(嵌套)信息是否正确?

时间:2018-11-07 14:04:07

标签: graphql github-api github-graphql

这是专门针对GitHub的GraphQL API的。我对GraphQL的理解是,由于它具有图结构,因此可以一次性获得任何想要的东西。 但是,我不知道如何为存储库中的所有提交获取blobs(最好是已更改的文件)。 我现在所拥有的是我随后使用的3个不同的查询。

获取提交以及树形符号-

query {
  repository(name: "disradicator", owner: "armsp") {
    name
    defaultBranchRef {
      target {
        ... on Commit {
          history(first:10){
            nodes{
              message
              oid
              tree{
                oid
              }
            }
          }
        }
      }
    }
  }
}

使用树中的oid来获取tree entries -

query {
  repository(name: "disradicator", owner: "armsp") {
    treeDetails: object(oid: "554221f86bce59a7fe269be6c69dcccf9f9b1364"){
      ... on Tree {
        oid
        entries{
          name
          type
          oid
        }
      }
    }
  }
}

使用oid中每个元素的entries来获取blob -

query {
  repository(name: "disradicator", owner: "armsp") {
    description
    name
    blobDetails: object(oid: "f288702d2fa16d3cdf0035b15a9fcbc552cd88e7") {
      ... on Blob {
        commitUrl
        commitResourcePath
        text
        oid
      }
    }
  }
}

不能将它们组合成一个查询吗?

是否可以仅获取已更改文件或类似于GitHub REST API v3中patch的内容(包含父提交与当前提交之间的差异)的blob?

0 个答案:

没有答案