
[英]GraphQL mutation that accepts an array of dynamic size and common scalar types in one request
[英]Error: @default only accepts scalar types, which might be why the array lints badly
我正在尝试amplify push
我更新的amplify/backend/api/<myAPIName>/schema.graphql
文件。 我收到以下错误:
An error occurred during the push operation: /
Schema validation failed.
Expected type String, found ["Admins", "Users"].
canRead: [String] @default(value: ["Admins", "Users"])
Expected type String, found ["Admins", "Users"].
schema.graphql
中的违规代码:
type Card {
...
canRead: [String] @default(value: ["Admins", "Users"])
}
如您所见,我正在尝试在我的卡 object 上设置一个字段“canRead”。 该字段应该是一个字符串数组。 我希望默认值为["Admins", "Users"]
,但 Amplify/graphql 仅接受标量类型作为默认值。
GraphQL 文档将整数和字符串等内容列为标量类型,但随后令人困惑地表示“appearsIn”将在提供的示例中解析为标量:
{ "data": { "hero": { "name": "R2-D2", "appearsIn": [ "NEWHOPE", "EMPIRE", "JEDI" ] } }
我的意思是字符串数组也可能被视为标量,但显然不是,否则我的代码可能会工作?
该文档继续戏弄以下内容:
在大多数 GraphQL 服务实现中,还有一种方法可以指定自定义标量类型。 例如,我们可以定义一个 Date 类型:
scalar Date
然后由我们的实现来定义应该如何序列化、反序列化和验证该类型。 例如,您可以指定应始终将 Date 类型序列化为 integer 时间戳,并且您的客户端应该知道任何日期字段都需要该格式。
但它没有描述如何做到这一点,以及限制是什么。 谁能建议是否/如何定义默认的字符串数组?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.