Как получить несколько проблем на github graphql api (используя javascript)?

1

Цель, которую я хочу достичь, - прочитать и позже написать проблемы и метки в репозитории github с помощью javascript.

До сих пор мне удалось получить аутентификацию и получить некоторые данные в репозитории, но я не нашел способ получить данные ни по одному, ни по набору проблем.

Это код, который я использую.

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 Тело: {данные: {репозиторий: {createdAt: '2017-09-29T17: 01: 25Z', имя: 'hello-world', projectsUrl: ' https://github.com/TonyEdelweiss/hello- world/projects '}}}

На второй я получаю только "[Object]") -:

Код состояния: 200 Тело: {данные: {репозиторий: {issues: [Object]}}}

Может кто подскажет?

Также я нашел это в документации github API v4: "Все операции GraphQL должны указывать их выбор до полей, возвращающих скалярные значения, чтобы обеспечить однозначный ответ". Это может объяснить, почему я не получаю данные, но не дает никаких дальнейших указаний.

Теги:
github
graphql

1 ответ

0
Лучший ответ

Ваш запрос действительно работает нормально. Но максимальная глубина, которую вы можете просмотреть, используя console.log умолчанию - 2. Вы можете использовать util.inspect для ее изменения, установите глубину в null для просмотра полного объекта:

const util = require('util');

.....

console.log('Body: ', util.inspect(body, {depth: null}));
  • 0
    Большое спасибо, Бертран, что решил мою проблему.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню