Graphql 将变量传递给'mutation'HQL服务器
我试图通过apollo的javascript客户端将变量传递给Graphql 将变量传递给'mutation'HQL服务器,graphql,apollo,react-apollo,strapi,Graphql,Apollo,React Apollo,Strapi,我试图通过apollo的javascript客户端将变量传递给mutation,但是,它总是返回400错误:[错误:响应未成功:收到状态代码400],这表明我的查询有问题 以下是我的疑问: const SET_ADDRESS_LASTUSED = gql` mutation UpdateAddress($phone: String!, $name: String!) { updateAddress(input: { where: { phone: $pho
mutation
,但是,它总是返回400错误:[错误:响应未成功:收到状态代码400]
,这表明我的查询有问题
以下是我的疑问:
const SET_ADDRESS_LASTUSED = gql`
mutation UpdateAddress($phone: String!, $name: String!) {
updateAddress(input: {
where: {
phone: $phone
},
data: {
name: $name
}
}) {
address {
name
phone
}
}
}
`;
我这样称呼突变:
const [updateLastUsed, updateLastUsedResult] = useMutation(SET_ADDRESS_LASTUSED);
// sometime later,
updateLastUsed({
variables: {
phone: "+12345678910",
name: "WhyICanNotChangeMyName?",
},
});
有什么我没有注意到的错误吗?如果我像这样硬编码变量,我可以成功地进行变异,但当然,我不能这样做
const SET_ADDRESS_LASTUSED = gql`
mutation {
updateAddress(input: {
where: {
phone: "+12345678910"
},
data: {
name: "ICanChangeMyName!"
}
}) {
address {
name
phone
}
}
}
`;
请帮忙。我已经毫无意义地调试了几个小时。。。我始终可以使用类似的方式将变量传递给query
:(
顺便说一句,我使用的是Strapi服务器
提前谢谢
参考:
您需要确保您的查询(包括变异)与SDL中所述的相同(具有相同的变量)
如果您使用的是Strapi,则会出现一个错误,
ID
类型的参数必须指定为$ID
不能是其他的,不确定它是如何变成这样的,但是如果您发现400个错误,请尝试检查是否有任何ID
类型声明与$ID
不完全相同,希望它能帮助某人您可以使用“查询变量”在graphiql中测试突变……在js中准备完整的input
,并作为变量传递谢谢!但是如何声明input
param?($input:JSON!)
似乎不起作用..相同的400错误?阅读API规范,必须匹配声明Hey@xadm非常感谢您的指导!!即使最初不清楚,因为我是新手,您的评论真的很有帮助!我从来没有想过它会像SDL中所述的那样。UpdatedDressInput
如果API输入id中的类型是id!
那么这个id必须声明为$id:id!
,而不是$id:id
@xadm您知道为什么它必须是$id:id!
而不是$addressId:id!
,这太奇怪了,应该只是参数名,但它会导致它崩溃?…它应该像$startedNameVariableCanBeAnything
只是va的名称一样工作变量,动态部分,仅在解析步骤(shopify特定要求?)定义字典元素“consumed”…输入名称(someInputId:$someVariableId的左侧部分)必须与查询“body”中“consuming part”上的(API定义的输入名称)匹配