Javascript 即使缺少所需架构的部分,GraphQL POST也会传递
我的突变定义如下:Javascript 即使缺少所需架构的部分,GraphQL POST也会传递,javascript,ecmascript-6,graphql,Javascript,Ecmascript 6,Graphql,我的突变定义如下: # POST a new Translation createTranslation( name: String! options: [OptionInput!]! ): Translation 据我所知,使用[OptionInput!]的两个引号 但是,从我的客户端,我可以在选项数组中没有任何对象的情况下成功发布: const createTranslation = gql` mutation createTranslation
# POST a new Translation
createTranslation(
name: String!
options: [OptionInput!]!
): Translation
据我所知,使用[OptionInput!]的两个引号代码>
但是,从我的客户端,我可以在选项数组中没有任何对象的情况下成功发布:
const createTranslation = gql`
mutation createTranslation(
$name: String!,
$options: [OptionInput!]!
) {
createTranslation(
name: $name,
options: $options
) {
_id
}
}
`;
尽管我预计会出现开箱即用的验证错误(示例响应):
确保使用对象数组的子字段不包含任何空值的正确方法是什么
PS:这是我的输入选项输入
input OptionInput {
text: String!
value: String!
}
根据单据状态,如果列表中的类型为非空:
这意味着列表本身可以为null,但不能有任何值
空成员
这意味着空数组仍然有效,但任何项本身为null的数组都无效
[OptionInput]
表示所有这些都是有效的:
- 空的
- [{},空]
- [{},{}]
- []
[OptionInput!]
表示所有这些都是有效的:
- 空的
- [{},{}]
- []
[OptionInput]代码>表示所有这些都有效:
- [{},空]
- [{},{}]
- []
[OptionInput代码>表示所有这些都有效:
- [{},{}]
- []
如果需要阻止客户端提供空数组,则需要检查解析程序中的参数是否为空数组,然后抛出一个错误
input OptionInput {
text: String!
value: String!
}