Я пытаюсь получить некоторые данные из Github GraphQL API, используя библиотеку graphql.js.
var graph = graphql("https://api.github.com/graphql", {
method: "POST",
headers: {
"Authorization": "Bearer <my-token-here>",
"Content-Type": "application/json"
},
fragments: {
rateLimitInfo: "on RateLimit {cost,remaining,resetAt}"
}
});
graph(`
query repo($name: String!, $owner: String!){
repository(name:$name, owner:$owner){
id
}
}
`,{
name: "freeCodeCamp",
owner: "freeCodeCamp"
}).then(function(response){
console.log(response);
}).catch(function(error){
console.log(error);
});
Мое обещание не выполняется и всегда терпит неудачу. Я получаю ответ HTTP с кодом 400 (неверный запрос), а аргумент error
функции catch
гласит:
{
message: "Problems parsing JSON",
documentation_url: "https://developer.github.com/v3"
}
Я уже пробовал передавать переменные как JSON, например:
{
"name": "freeCodeCamp",
"owner": "freeCodeCamp"
}
Но это не помогло. У меня такой же плохой запрос.
Глядя на вкладку «Сеть» инспектора Chrome, я вижу, что такое полезная нагрузка запроса. Добавление его здесь на случай, если он даст какие-либо подсказки или помощь.
query=query%20repo(%24name%3A%20String!%2C%20%24owner%3A%20String!)%7Brepository(name%3A%24name%2C%20owner%3A%24owner)%7Bid%7D%7D&variables=%7B%22name%22%3A%22freeCodeCamp%22%2C%22owner%22%3A%22freeCodeCamp%22%7D
Что я делаю не так?