使用请求承诺将数据发布到graphql服务器
我正在使用该库向graphql服务器发出http请求。要实现查询,我将执行以下操作:使用请求承诺将数据发布到graphql服务器,graphql,request-promise,Graphql,Request Promise,我正在使用该库向graphql服务器发出http请求。要实现查询,我将执行以下操作: const query = ` { user(id:"123173361311") { _id name email } } ` const options = { uri: "http://localhost:5000/graphql", qs: { query }, json: true } return await reque
const query = `
{
user(id:"123173361311") {
_id
name
email
}
}
`
const options = {
uri: "http://localhost:5000/graphql",
qs: { query },
json: true
}
return await request(options)
上面的代码运行良好。但是,我对如何进行突变感到困惑,因为我需要指定实际的突变和输入数据,如下所示:
// Input
{
name: "lomse"
email: "lomse@lomse.com"
}
const mutation = `
mutation addUser($input: AddUserInput!){
addUser(input: $input) {
_id
name
email
}
}
`
const option = {
uri: "http://localhost:5000/graphql",
formData: {mutation},
json: true,
// how to pass the actual data input
}
request.post(option)
或者是库不是为这个用例而设计的 该库似乎完成了我需要请求-承诺库完成的任务
import { request } from 'graphql-request'
const variables = {
name: "lomse",
email: "lomse@lomse.com"
}
const mutation = `
mutation addUser($input: AddUserInput!){
addUser(input: $input) {
_id
name
email
}
}
`
response = await request(uri, mutation, {input: variables})
图书馆似乎做了我所需要的,请求-承诺图书馆要做的
import { request } from 'graphql-request'
const variables = {
name: "lomse",
email: "lomse@lomse.com"
}
const mutation = `
mutation addUser($input: AddUserInput!){
addUser(input: $input) {
_id
name
email
}
}
`
response = await request(uri, mutation, {input: variables})
使用
body
,而不是formData
。你的身体应该由三个属性组成:
:正在发送的GraphQL文档。即使操作是一个变异,该属性仍然命名为queryquery
:序列化为JSON对象的变量值的映射。仅当您的操作使用变量时才需要变量
:指定要执行的操作。仅当文档包含多个操作时才需要operationName
使用
body
,而不是formData
。你的身体应该由三个属性组成:
:正在发送的GraphQL文档。即使操作是一个变异,该属性仍然命名为queryquery
:序列化为JSON对象的变量值的映射。仅当您的操作使用变量时才需要变量
:指定要执行的操作。仅当文档包含多个操作时才需要operationName
查询也可以包含变量。。。查看浏览器网络请求以了解一些graphiql Playground中的详细信息有趣的是,网络选项卡没有记录任何变异请求Socket通信可用于搜索
变异后的,例如,研究显示如何从前端执行变异,这不是我试图完成的。在我的例子中,我有两个需要相互通信的服务器查询也可以包含变量。。。查看浏览器网络请求以了解一些graphiql Playground中的详细信息有趣的是,网络选项卡没有记录任何变异请求Socket通信可用于搜索变异后的,例如,研究显示如何从前端执行变异,这不是我试图完成的。在我的例子中,我有两台服务器需要相互通信!正是我想要的。他们的文档中是否提到了这一点?您从何处获得此信息?由于GraphQL与传输无关,因此它本身没有指定应如何处理HTTP请求。以上大部分只是惯例。官方网站,我一定错过了。再次谢谢你!正是我想要的。他们的文档中是否提到了这一点?您从何处获得此信息?由于GraphQL与传输无关,因此它本身没有指定应如何处理HTTP请求。以上大部分只是惯例。官方网站,我一定错过了。再次感谢