我可以在不提取的情况下使用GraphQL/Rerelay查询来修改数据吗



中继突变被定义为"写入数据存储,然后提取任何更改的字段的操作"。那么日志之类的操作呢?我还没有找到突变与查询的正式定义,就像在RESTPOST与GET与PUT协议中一样。当希望修改和返回数据时,我会使用突变,但如果我只需要更新一些东西,那么标准查询就可以了,这是对的吗?还有一些情况下,我可以获取数据,但更新一些不需要返回的内容。

中继突变被定义为"写入数据存储,然后提取任何更改的字段的操作"。那么日志之类的操作呢?

如果我正确理解您对日志记录的困惑,那么您希望在服务器中记录一些内容,但客户端上没有任何更新内容。如果您想使用GraphQL和Relay进行日志记录,则应该将此日志记录操作建模为突变。查询实际上是一个只读操作。

如果日志记录是一个拼写错误,而您实际上是指登录,那么在Relay和GraphQL领域中,以前有很多关于身份验证的答案。查看以下SO和博客文章:

  1. Relayjs Graphql用户身份验证
  2. javascript-Relay/GraphQL上的身份验证和权限
  3. api-如何使用GraphQL构建经过身份验证的查询
  4. node.js-在GraphQL服务器中实现访问控制的好模式是什么
  5. graphql-带中继的身份验证和访问控制
  6. node.js-如何在GraphQL查询中检查权限和其他条件
  7. relayjs-如何告诉用户使用relay登录
  8. GraphQL中的身份验证指南--构建Apollo-Medium
  9. GraphQL中的Auth——第2部分——构建Apollo——Medium

我还没有找到突变与查询的正式定义,就像在RESTPOST与GET与PUT协议中一样。

来自GraphQL规范草案:

There are two types of operations that GraphQL models:
* query – a read‐only fetch.
* mutation – a write followed by a fetch.

当希望修改和返回数据时,我会使用突变,但如果我只需要更新一些东西,那么标准查询就可以了,这是对的吗?

不,这是不正确的。突变是一种操作,你应该使用它来修改你的数据。如果更新后不需要获取任何数据,那么在fat查询中就不需要包含任何内容。到目前为止,GraphQL没有任何特定的操作类型可以在不获取数据的情况下进行更新。

相关内容

  • 没有找到相关文章

最新更新