我正在寻找Laravel灯塔的留档,我看到了两种类型的突变。
input的突变:
(在此处找到)mutation {
createPost(input: { # <-- the "input:" I'm talking about
title: "My new Post"
author: {
connect: 123
}
}){
id
author {
name
}
}
}
另一个没有输入的突变:
(在这里找到)
mutation CreateTaskWithNotes {
createTask( # <-- no "input:" here
id: 45
name: "Do something"
notes: [
{
content: "Foo bar",
link: "http://foo.bar"
},
{
content: "Awesome note"
}
]
) {
id
}
}
我的问题是:如何在没有input:
的情况下使突变工作?
我尝试从留档中复制(修改)示例。但是如果我写这样的突变:
type Mutation {
createTask(input: CreateTaskInput! @spread): Task! @create
}
当我尝试省略input:
时,graph ql-playground抱怨:“CreateTaskInput类型的Field createTask参数输入是必需的,但未提供”
现在我尝试将模式更改为:
type Mutation {
createTask(CreateTaskInput! @spread): Task! @create
}
但是然后服务器给出了一个ParseException
。
我确实更喜欢没有输入的语法:
因为它的重复性要少得多。有人能帮忙吗?
如果您想在没有输入
的情况下编写突变,也可以省略@传播
指令。所以:
type Mutation {
createTask(
id: ID
name: String
): Task! @create
}
但我认为在输入
中包含它是一种“最佳实践”。当然,您可以做任何您想做的事情。
试试这个
type Mutation {
createTask: Task! @create
}
https://newbedev.com/index.php/graphql-mutations-without-arguments