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