【发布时间】:2017-05-05 10:14:13
【问题描述】:
我想提供一个 GraphQL 服务,该服务在单个事务中运行整个突变操作(全部或全部更改)。
顶级字段在单个事务中连续处理并相应地更改数据库。只有在执行过程中没有错误时,才应将更改提交到数据库,否则应全部回滚。
现在我有两个问题:
根据 GraphQL 规范,顶级字段的串行执行意味着每个顶级字段将填充一个反映其修改后状态的值,然后才知道后面的字段是否会导致错误。当更高的顶级字段导致回滚事务的错误时,这是否不是该字段的实际值?
如果顶级字段的突变失败,则执行以下顶级字段没有意义,因为事务可能处于阻止进一步处理的状态,并且无论如何都将回滚所有更改。根据 GraphQL 语义,是否可以跳过这些字段的执行(返回 null 并且可能返回错误列表的条目)?
【问题讨论】:
-
这一切都取决于你的后端实现,它与 GraphQL 无关。 GraphQL 只是你如何与后端交互的接口。
-
是的,好的,但这也是最佳实践/API 用户期望的问题。
标签: graphql