我正在尝试使用GraphQL,需要帮助了解如何知道在即将执行突变时要提供的根值.
具体示例:您要更新当前登录用户的用户名.突变看起来像这样:
mutation TestMutation {
updateMyUsername(newName: "CoolName") {
username }
}
Run Code Online (Sandbox Code Playgroud)
这里提供的根对象是当前用户.但是当你收到变异而没有解析它并看到它的名字时,你怎么知道这个?基于URL无法做出决定,因为只存在一个端点.解析字符串只是为了将它再发送到将被解析的地方听起来最好浪费.
通常的做法是在URL或请求体中提供一些额外的参数来为应用程序提供更多的上下文吗?
在URL中包含更多数据并不常见,但由于每个变异都由函数支持,因此您无需解析其名称,您只需在函数中定义它即可.
由于突变始终处于顶级,因此它们的根对象将始终是顶级根对象.如果需要访问其他对象,则需要确保已提供足够的信息来检索它
要跟踪当前登录的用户,请查看context运行GraphQL查询的初始参数之一,并在每个分辨率函数中提供.上下文经常用于跟踪登录用户.
既然你有一个定义"changeMyUsername"的函数,你有登录用户,并且你有新用户名提供的参数,你应该拥有实现该函数体所需的一切.
| 归档时间: |
|
| 查看次数: |
1196 次 |
| 最近记录: |