假设我有一个createPost插入新帖子的变异。在典型的应用中,该突变可以:
Post。我要实现的是一个中间场景,在该场景中,突变成功(返回Post);而且还会以某种方式向用户返回警告(例如Your post is similar to post XYZ,类似的警告)。
实现此目的的一个好的GraphQL模式是什么?warning在Post类型中添加字段似乎有点怪异,但是我又不确定如何在相同的突变中同时返回a Post和a Warning?有任何想法吗?
(请注意,我以这种情况为例,我对返回额外的突变后数据的通用模式感兴趣,而不是专门查找类似的帖子)
我所有的变异都返回一个包装的有效载荷类型,而不是单个值类型(例如,Post在您的情况下),除非有真正的系统错误,否则我也绝不会抛出GraphQL -如果这是用户输入的结果或其他预期的结果情况下,我将其建模为返回类型。
返回包装有效载荷通常被认为是最佳做法,因为a)您的突变应返回图表中可能已更改的所有内容的入口点(不仅是新帖子),b)您可以轻松地向其中添加新字段稍后的返回类型。
请记住,变异本质上是一个函数,它吸收一些输入数据和当前图形,并返回一个新图形。考虑类似REST的CRUD操作通常是一个错误。
type CreatePostError = {
// Whatever you want
}
type CreatePostSuccess = {
post: Post!
warning: String
}
union CreatePostPayload = CreatePostSuccess | CreatePostError
mutation {
// Other mutations
createPost(/* args /*): CreatePostPayload
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
642 次 |
| 最近记录: |