AWS AppSync允许在这样的架构中定义default values
type Foo {
bar(
arg: Int = 20
): Bar!
}
或者那个
type Foo {
bar(
arg: Int! = 20
): Bar!
}
但是,无论哪种方式,当未明确定义值时,默认值都不会传递给解析器。
我应该选择启用激活默认值的方法吗?这是一个AWS错误吗?如果是这样,是否有解决方法?
PS:在GraphQL specs
中如果未为定义的输入对象字段提供任何值,并且该字段定义提供了默认值,则应使用默认值。如果未提供默认值,并且输入对象字段的类型为非null,则将引发错误。否则,如果不需要该字段,则不会将任何条目添加到强制无序映射中。
答案 0 :(得分:3)
默认参数当前是一个已知问题,解决这些问题的最佳方法是使用$util.defaultIfNull()
速度帮助器函数。例如,您可以为limit和next令牌设置默认参数,例如:
{
"version": "2017-02-28",
"operation": "Scan",
"limit": $util.defaultIfNull($ctx.args.first, 20),
"nextToken": $util.toJson($util.defaultIfNullOrEmpty($ctx.args.after, null)),
}