GraphQL突变中的条件参数?

时间:2018-03-21 14:35:22

标签: graphql apollo

我们说mutation有一个type arg。根据{{​​1}}的值,我可以让type接受另一个mutation作为输入类型,或者在没有它的情况下调用arg

如何在mutation中实施?我知道,对于查询,有graphql@skip指令(对于字段,而不是对于args)。 @include有类似的东西吗?或者我应该将附加arg指定为可选,然后在服务器上进行验证?

1 个答案:

答案 0 :(得分:1)

对此会有一系列意见。主要问题是因为您无法为输入类型定义联合,因此无法在架构级别对输入进行详尽的建模。我的意思是,如果你需要更深层次的验证,而不仅仅是需要/不需要,GraphQL的类型系统对你没有帮助。

目前,我倾向于处理突变功能本身的所有复杂验证。基本上将所有输入参数标记为不需要,并让它落入您选择的验证方法。

对于简单的突变,例如do_foo_with_bar(bar_id: Int!),我仍然让架构处理验证。但对于更复杂的事情(如精心制作的表格),如果你在代码中做事,你将会有更轻松的时间。