如何确定什么根值用于GraphQL突变

如何确定什么根值用于GraphQL突变

问题描述:

我正在尝试使用GraphQL,并需要帮助了解如何知道在即将执行突变时提供的根值。如何确定什么根值用于GraphQL突变

具体示例:您想要更新当前登录用户的用户名。突变如下所示:

mutation TestMutation { 
     updateMyUsername(newName: "CoolName") { 
         username } 
} 

此处提供的根对象是当前用户。但是,如果你没有解析并看到它的名字,你怎么知道这一点?由于只有一个端点存在,因此不能根据URL做出任何决定。而解析字符串只是为了将它发送到更进一步解析的地方,听起来很浪费。

在URL或请求主体中提供一些额外的参数来为应用程序提供更多的上下文可能是常见做法吗?

在URL中包含更多数据并不常见,但由于每个变体都有一个函数支持,所以不需要解析其名称,只需在函数中定义它即可。

由于突变永远是*别的,它们的根对象将永远是*别的根对象。如果您需要访问不同的对象,则需要确保您提供了足够的信息来检索它

要跟踪当前登录的用户,请查看context,运行GraphQL的初始参数之一查询并在每个解析函数中提供。上下文通常用于跟踪登录的用户。

既然你有一个定义“changeMyUsername”的函数,你有登录的用户,并且你提供了新用户名的参数,你应该拥有实现该函数主体所需的一切。