Javascript 如何使用queryParams字符串化嵌套对象以发出graphql/GET请求?
我需要从节点服务器向GraphQLAPI发出请求。我使用的GraphQLAPI将查询作为URL的查询参数,而不是在请求体中。它也不接受POST请求。我有一个问题,比如说Javascript 如何使用queryParams字符串化嵌套对象以发出graphql/GET请求?,javascript,node.js,graphql,Javascript,Node.js,Graphql,我需要从节点服务器向GraphQLAPI发出请求。我使用的GraphQLAPI将查询作为URL的查询参数,而不是在请求体中。它也不接受POST请求。我有一个问题,比如说 const query = { student(id: studentId) { personal { address grade etc {morestuff} } } } 如何将其字符串化以queryParams的形式发送?我尝试
const query = {
student(id: studentId) {
personal {
address
grade
etc {morestuff}
}
}
}
如何将其字符串化以queryParams的形式发送?我尝试过querystring模块querystring Query,但它返回类似student=的内容,仅此而已。我尝试了JSON.stringify,但也没有成功。我需要上面的,看起来像:
query=%7B%0A%20%20%20%20student(id%3A%20studentId)%20%7B%0A%20%20%20%20%20%20personal%20%7B%0A%20%20%20%20%20%20%20%20address%0A%20%20%20%20%20%20%20%20grade%0A%20%20%20%20%20%20%20%20etc%20%7Bmorestuff%7D%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D
我用了一个在线编码器/解码器
我知道有GraphQL客户端库,但我不确定它们是否用于服务器到服务器,我看到它们是从浏览器/客户端使用的。如果我应该使用一个客户机库,你能推荐一个轻量级的更好地支持GET请求的库吗?上一个我没有尝试过的库叫做Prisma
感谢您的帮助:这对我很有用,创建了一个函数:
function encode(query) {
return encodeURIComponent(query).replace(/'/g, "%27").replace(/"/g, "%22");
}
通过:
const query = {
student(id: studentId) {
personal {
address
grade
etc {morestuff}
}
}
}
返回所需的结果。希望这对别人有帮助