中继突变被定义为"写入数据存储,然后提取任何更改的字段的操作"。那么日志之类的操作呢?我还没有找到突变与查询的正式定义,就像在RESTPOST与GET与PUT协议中一样。当希望修改和返回数据时,我会使用突变,但如果我只需要更新一些东西,那么标准查询就可以了,这是对的吗?还有一些情况下,我可以获取数据,但更新一些不需要返回的内容。
中继突变被定义为"写入数据存储,然后提取任何更改的字段的操作"。那么日志之类的操作呢?
如果我正确理解您对日志记录的困惑,那么您希望在服务器中记录一些内容,但客户端上没有任何更新内容。如果您想使用GraphQL和Relay进行日志记录,则应该将此日志记录操作建模为突变。查询实际上是一个只读操作。
如果日志记录是一个拼写错误,而您实际上是指登录,那么在Relay和GraphQL领域中,以前有很多关于身份验证的答案。查看以下SO和博客文章:
- Relayjs Graphql用户身份验证
- javascript-Relay/GraphQL上的身份验证和权限
- api-如何使用GraphQL构建经过身份验证的查询
- node.js-在GraphQL服务器中实现访问控制的好模式是什么
- graphql-带中继的身份验证和访问控制
- node.js-如何在GraphQL查询中检查权限和其他条件
- relayjs-如何告诉用户使用relay登录
- GraphQL中的身份验证指南--构建Apollo-Medium
- 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没有任何特定的操作类型可以在不获取数据的情况下进行更新。