如何在github graphql api上检索多个问题(使用javascript)?

时间:2017-10-03 14:23:09

标签: javascript api github graphql

我想要实现的目标是使用javascript阅读并稍后在github存储库中编写问题标签

到目前为止,我已经能够对存储库进行身份验证并检索一些数据,但我找不到在单个数据库或一组问题上检索数据的方法。

这是我正在使用的代码。

var request = require("request");

var url = 'https://api.github.com/graphql';
var headers = {
    Authorization:'token XXXXXXXXXXXXXXXXXXXXXXXXXXX',
    Accept: 'application/json',
    'User-Agent': 'request',
    'Content-Type': 'application/json'
};

var options = {
  method: 'post',
  body: undefined,
  json: true,
  url: url,
  headers: headers
};


function makeRequest(options){ 
    request(options, function (error, response, body) {
      if (error) {
        console.error('error posting json: ', error);
        throw error;
      }
      var responseHeaders = response.headers;
      var statusCode = response.statusCode;
      console.log('Status code: ', statusCode);
      console.log('Body: ', body);
    });
};

options.body = {
query: '{repository(owner:"TonyEdelweiss", name:"hello-world") {createdAt name projectsUrl}}'
};
makeRequest(options);

options.body = {
query: '{repository(owner:"TonyEdelweiss", name:"hello-world"){issues(first: 2){edges{cursor node{id}}}}}'
};
makeRequest(options);

在第一个makeRequest()上,我得到以下内容,这没关系:

  

状态代码:200 Body:{data:{repository:         {createdAt:'2017-09-29T17:01:25Z',           名字:'你好世界',           projectsUrl:'https://github.com/TonyEdelweiss/hello-world/projects'}}}

在第二个我只得到'[对象]') - :

  

状态代码:200正文:{data:{repository:{issues:[Object]}}   }

任何人都可以提示吗?

此外,我在github API v4文档中发现了这一点:“所有GraphQL操作必须将其选择指定为返回标量值的字段,以确保明确形状的响应。”这可能解释了为什么我没有得到数据,但没有提供进一步的指导。

1 个答案:

答案 0 :(得分:0)

您的请求实际上工作正常。但是您可以使用console.log查看的最大深度默认为2.您可以使用constraint进行更改,将深度设置为null以查看完整对象:

const util = require('util');

.....

console.log('Body: ', util.inspect(body, {depth: null}));