我想要实现的目标是使用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操作必须将其选择指定为返回标量值的字段,以确保明确形状的响应。”这可能解释了为什么我没有得到数据,但没有提供进一步的指导。
答案 0 :(得分:0)
您的请求实际上工作正常。但是您可以使用console.log
查看的最大深度默认为2.您可以使用constraint进行更改,将深度设置为null
以查看完整对象:
const util = require('util');
.....
console.log('Body: ', util.inspect(body, {depth: null}));