fun*_*ial 6 javascript node.js graphql
我一直在使用 graphql-js 在 Node 服务器中使用 GraphQL,并且 GraphQL 已被证明是一个非常有价值的抽象,但我遇到了一个问题。
我经常发现自己需要将大型结构化对象作为参数传递给 GraphQL 突变,使用GraphQLInputObjectType. 这很好,但 GraphQL 不支持使用 JSON 表示法 :(。所以我最终只发送一个包含 JSON 的字符串,供服务器处理。
const objectStr = JSON.stringify(object).replace(new RegExp("\"", "g"), "'")
graphQLClient(`{
user: updateUser(someDataObject: "${objectStr}") {...}
}`)
Run Code Online (Sandbox Code Playgroud)
但是现在我根本没有从 GraphQL 中受益!
我有一种感觉,我在这里做错了。GraphQL 将注册表单数据发送到突变的方式是什么?
执行此操作的最佳方法是使用输入对象。
基本上你的请求看起来像:
/* Query */
mutation Update($input: UpdateUserInput!) {
updateUser(input: $input) {
changedUser {
id
username
}
}
}
/* Variables (as JSON) */
{
"input": {
"username": "elon@spacex.com",
"password": "SuperSecretPassword"
}
}
Run Code Online (Sandbox Code Playgroud)
您可以将其传递到 POST 请求中有效负载的内容正文中,如下所示:
{
"query": <GraphQL query from above as a string>,
"variables": <JSON object from above>
}
Run Code Online (Sandbox Code Playgroud)
如果您想要更深入的解释,您可以查看Scaphold 的文档来更新数据,以帮助您构建 API。
希望这可以帮助!
| 归档时间: |
|
| 查看次数: |
3545 次 |
| 最近记录: |