我正在寻找Laravel Lighthouse的文档,并且看到两种类型的突变。
input:
(found here) mutation {
createPost(input: { # <-- the "input:" I'm talking about
title: "My new Post"
author: {
connect: 123
}
}){
id
author {
name
}
}
}
另一个没有input:
(found here)
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:
时,graphql-playground抱怨:“必须输入类型为 CreateTaskInput 的字段 createTask 自变量 input 但未提供”
现在,我尝试将模式更改为此:
type Mutation {
createTask(CreateTaskInput! @spread): Task! @create
}
但是随后服务器给出了ParseException
。
我确实更喜欢不带input:
的语法,因为它的重复性要低得多。
有人可以帮忙吗?
答案 0 :(得分:1)
如果您要编写不带input
的变体,也请省略@spread
指令。所以:
type Mutation {
createTask(
id: ID
name: String
): Task! @create
}
但是我认为将其包含在input
中是“最佳实践”。当然,您可以做任何想做的事。