Javascript 带JS的GraphQL请求

Javascript 带JS的GraphQL请求,javascript,graphql,Javascript,Graphql,这是我第一次使用GraphQL,一般来说,我对API有点陌生。 因此,我很难从他们文档上的一个开始示例开始,对GraphQL进行测试请求,以了解它是如何工作的 首先,我使用npm install graphql--save安装了GrapgQL(不确定是否需要这样做,可能只针对服务器,我不清楚) 然后,这是我要请求的代码: 这将返回一个未定义的响应 我想知道我错过了什么或做错了什么? 谢谢你的回答 编辑: 我最初认为他们的文档是指为测试而创建的现有端点,但我不再确定,因此我在Github V4

这是我第一次使用GraphQL,一般来说,我对API有点陌生。 因此,我很难从他们文档上的一个开始示例开始,对GraphQL进行测试请求,以了解它是如何工作的

  • 首先,我使用npm install graphql--save安装了GrapgQL(不确定是否需要这样做,可能只针对服务器,我不清楚)
  • 然后,这是我要请求的代码:
这将返回一个未定义的响应

我想知道我错过了什么或做错了什么? 谢谢你的回答

编辑: 我最初认为他们的文档是指为测试而创建的现有端点,但我不再确定,因此我在Github V4 API上进行了测试,而在他们的explorer上我得到了一个空响应。这是我的新代码

My console.log返回
Promise{}
我得到的这个错误
主体已经用于:https://api.github.com/graphql


我是否没有正确定义或使用正文?

标题中缺少行
'Content-Type':'application/json',
,这使得HTTP POST正文内容被视为GraphQL查询字符串

所以我的代码是这样的:

const response = await fetch(`https://api.github.com/graphql`, {
method: "POST",
headers: {
    Authorization: `Token ${token}`,
    Accept: 'application/vnd.github.starfox-preview+json',
   'Content-Type': 'application/json'
},
body: JSON.stringify({query:
        '{' +
        '  repository(name: "myrepo", owner: "myowner") {' +
        '    issues(last: 100) {' +
        '      nodes {' +
        '        number' +
        '        title' +
        '        timelineItems(itemTypes: MOVED_COLUMNS_IN_PROJECT_EVENT, last: 10) {' +
        '          nodes {' +
        '            ... on AddedToProjectEvent {' +
        '              createdAt' +
        '            }' +
        '            ... on MovedColumnsInProjectEvent {' +
        '              createdAt' +
        '            }' +
        '          }' +
        '        }' +
        '      }' +
        '    }' +
        '  }' +
        '}'
})
})
log(response.json())

这是一个浏览器环境,对吗
.json()
返回一个承诺。您可以使用
.then()
-@JonathanRosa不,实际上不是,它是一个node.js Rest API,我正在从中调用一个GraphQL API。您的评论一定意味着我偏离了轨道……不,我只是假设浏览器是因为
fetch()
是本地的,但不是在节点上。尝试查看fetch实现的文档。是否启动了graphql服务器?@Xesenix I首先,尽管graphql的服务器用于测试端点,但您的评论使我意识到我可能错了,所以我编辑了我的问题。
const response = await fetch(`https://api.github.com/graphql`, {
    method: "POST",
    headers: {
        Authorization: `Token ${token}`,
        Accept: 'application/vnd.github.starfox-preview+json',
    },
    body: JSON.stringify({query:
            '{' +
            '  repository(name: "myrepo", owner: "myowner") {' +
            '    issues(last: 100) {' +
            '      nodes {' +
            '        number' +
            '        title' +
            '        timelineItems(itemTypes: MOVED_COLUMNS_IN_PROJECT_EVENT, last: 10) {' +
            '          nodes {' +
            '            ... on AddedToProjectEvent {' +
            '              createdAt' +
            '            }' +
            '            ... on MovedColumnsInProjectEvent {' +
            '              createdAt' +
            '            }' +
            '          }' +
            '        }' +
            '      }' +
            '    }' +
            '  }' +
            '}'
    })
})
console.log(response.json());
const response = await fetch(`https://api.github.com/graphql`, {
method: "POST",
headers: {
    Authorization: `Token ${token}`,
    Accept: 'application/vnd.github.starfox-preview+json',
   'Content-Type': 'application/json'
},
body: JSON.stringify({query:
        '{' +
        '  repository(name: "myrepo", owner: "myowner") {' +
        '    issues(last: 100) {' +
        '      nodes {' +
        '        number' +
        '        title' +
        '        timelineItems(itemTypes: MOVED_COLUMNS_IN_PROJECT_EVENT, last: 10) {' +
        '          nodes {' +
        '            ... on AddedToProjectEvent {' +
        '              createdAt' +
        '            }' +
        '            ... on MovedColumnsInProjectEvent {' +
        '              createdAt' +
        '            }' +
        '          }' +
        '        }' +
        '      }' +
        '    }' +
        '  }' +
        '}'
})