Как делать неаутентифицированные запросы к API GitHub GraphQL - PullRequest
1 голос
/ 12 июня 2019

Я пытаюсь использовать github graph api, чтобы делать запросы и получать только те детали, которые мне нужны, т.е. количество звезд в публичном репо. Неаутентифицированный запрос на получение информации о репо с использованием API V3 (REST) ​​работает нормально, но он содержит миллион деталей репо, которые мне не нужны, мне просто нужно количество звезд на репо.

Когда я делаю следующий запрос:

query {
  repository(owner: "facebook", name: "react") {
    stargazers {
      totalCount
    }
  }
}

В javascript с использованием fetch он отвечает 401 Unauthorized

fetch('https://api.github.com/graphql', {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({ query: '{ repository(owner: "facebook", name: "react") { stargazers(last: 10) { totalCount } } }' })
})
.then(res => res.json())
.then(res => console.log(res));

Мне нужно показать данные на общедоступном веб-сайте, чтобы я не мог использовать токен из своей учетной записи на github для аутентификации.
Есть ли способ сделать запросы без проверки подлинности, возможно, есть обходной путь. Или это невозможно?

1 Ответ

0 голосов
/ 13 июня 2019

GitHub GraphQL API требует проверки подлинности для отправки запросов.

Вы можете либо сделать эквивалентный вызов REST API, и отбросить ненужную информацию, либо с помощью серверного кода сделать запрос с помощьюсоответствующий токен API и прокси эту информацию для вашего кода внешнего интерфейса.

Обратите внимание, что если вы ожидаете, что ваше приложение отправит большое количество запросов к API GitHub, вы, вероятно, захотите пойти по последнему пути и реализоватькэширование.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...