Api GraphQL:建模演化类型/状态转换
这是一个我们已经多次遇到的问题。。。非常期待别人的意见Api GraphQL:建模演化类型/状态转换,api,graphql,api-design,state-machine,Api,Graphql,Api Design,State Machine,这是一个我们已经多次遇到的问题。。。非常期待别人的意见 场景描述(用于说明): 有人访问我们的网站,也许他们填写了一些表格,随便什么。对我们来说,此人是潜在客户/潜在客户。他们尚未完全成为客户;他们只是一个潜在的未来客户 可以对这些潜在客户执行某些操作,例如将某些数据添加到他们的配置文件中。让我们称之为add\u foobar\u data。当然,如果他们成为真正的客户(使用我们服务的人),我们仍然需要能够从他们的帐户中添加/删除所述数据 场景(tl;dr): 潜在客户可以成为客户 突变添
场景描述(用于说明): 有人访问我们的网站,也许他们填写了一些表格,随便什么。对我们来说,此人是潜在客户/潜在客户。他们尚未完全成为客户;他们只是一个潜在的未来客户 可以对这些
潜在客户执行某些操作,例如将某些数据添加到他们的配置文件中。让我们称之为add\u foobar\u data
。当然,如果他们成为真正的客户(使用我们服务的人),我们仍然需要能够从他们的帐户中添加/删除所述数据
场景(tl;dr):
潜在客户
可以成为客户
- 突变
添加foobar\u数据
概念上适用于潜在客户
和客户
潜在客户
只有客户
的一部分数据(他们是真正的子集;目前客户
有很多不可为空的字段潜在客户
没有)
选项:
创建联合类型,例如,可定制的
add\u foobar\u data
将返回一个customable
(或返回到customable
)而不是特定类型
为修改潜在客户
和客户
(向潜在客户添加foobar数据
,向客户添加foobar数据
)
每个人都是客户
!将Customer
上所有不在Prospect
中的不可空字段设置为空,并添加一个名为isProspect
的新标志(或isDraft
,如果我们想改变对流程的看法)
也许是我没有想到的其他方法
有没有人想过什么是解决这种情况的最佳方法以及原因?最终使用了一个,因为潜在客户
是客户
的直接子集,而不是巧合