gpt4 book ai didi

javascript - 将复杂参数传递给 GraphQL 突变

转载 作者:搜寻专家 更新时间:2023-10-31 23:15:57 29 4
gpt4 key购买 nike

我一直在使用 graphql-js 的 Node 服务器中使用 GraphQL,并且 GraphQL 已被证明是一个非常有值(value)的抽象,但我遇到了一个问题。

我经常发现自己需要使用 GraphQLInputObjectType 将大型结构化对象作为参数传递给 GraphQL 突变。这很好,但是 GraphQL 不支持使用 JSON 符号 :(。所以我最终只发送了一个包含 JSON 的字符串,供服务器处理。

const objectStr = JSON.stringify(object).replace(new RegExp("\"", "g"), "'")

graphQLClient(`{
user: updateUser(someDataObject: "${objectStr}") {...}
}`)

但现在我根本没有从 GraphQL 中受益!

我觉得我在这里做错了什么。 GraphQL 发送注册表单数据到突变的方式是什么?

最佳答案

最好的方法是使用输入对象。

基本上你的请求看起来像:

/* Query */
mutation Update($input: UpdateUserInput!) {
updateUser(input: $input) {
changedUser {
id
username
}
}
}

/* Variables (as JSON) */
{
"input": {
"username": "elon@spacex.com",
"password": "SuperSecretPassword"
}
}

您可以像这样将其传递到 POST 请求中有效负载的内容主体中:

{
"query": <GraphQL query from above as a string>,
"variables": <JSON object from above>
}

如果想要更深入的解释,可以查看Scaphold's Docs for updating data帮助您构建 API。

希望这对您有所帮助!

关于javascript - 将复杂参数传递给 GraphQL 突变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43603182/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com