我正在尝试使用 GraphQL 对 GitHub 进行 API 调用,我已经能够使用静态 graphQL 调用成功地调用数据,但是我在调用中添加变量(var 条目)时遇到问题,以便我可以基于更改调用用户在网络应用程序中提供的输入。
我使用 AJAX 来传递授权令牌。此外,除非查询是 JSON 字符串化的,否则调用不起作用(否则会收到 400 错误)。
JSON Stringify 似乎将变量“superQuery”的名称转换为字符串,而不是将“superQuery”的值转换为字符串。
如何发送带有可根据用户输入更改的变量的 graphQL 查询?
附:相对网络开发新手来说,对于任何非常明显的错误表示歉意。
这是我到目前为止所拥有的:
var entry = $('#entry').val()
var superQuery = `{
repository(name: entry, owner: "******") {
pullRequests(last: 100) {
nodes {
state
headRepository {
owner {
login
}
}
}
}
}
}`
.ajax({
method: "POST",
url: "https://api.github.com/graphql",
contentType: "application/json",
headers: {
Authorization: "bearer **********************************"
},
data: JSON.stringify({
query: superQuery
})
})
对于遇到同样问题的人来说,当我最终让它工作时,代码如下所示:
$('button').click(function() {
event.preventDefault();
var entry = $('#entry').val()
console.log(entry);
$.ajax({
method: "POST",
url: "https://api.github.com/graphql",
contentType: "application/json",
headers: {
Authorization: "bearer ***********"
},
data: JSON.stringify({
query: `
query ($entry: String!) {
repository(name: $entry, owner: "*******") {
pullRequests(last: 100) {
nodes {
state
headRepository {
owner {
login
}
}
}
}
}
}
`,
variables: { "entry": $('#entry').val() },
}),
})
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)