当前位置: 首页 > 知识库问答 >
问题:

如何在vue-apollo客户端中定义GraphQL输入类型

阮星火
2023-03-14

我使用laravel-graphql作为后端GraphQL服务,使用vue-apollo作为前端客户端。

在我的Vue组件中,我有一个gql查询,如下所示:(关系:一首歌有更多的歌曲部分)

const getSong = gql`
    query FetchSong ($id:Int!){
        song(id: $id) {
            id,
            name,
            authors_lyrics,
            authors_music
            song_parts{
                type
                lyrics
            }
        }
    }`;

现在有一个突变,我想用它来更新给定的歌曲:

const updateSong = gql`
    mutation updateSongMutation ($id:Int!,$name:String,$authors_lyrics:String,$authors_music:String, $song_parts: [SongPart]) {
        updateSongMutation(id: $id, name: $name, authors_lyrics: $authors_lyrics, authors_music: $authors_music, song_parts: $song_parts) {
            id
        }
    }`;
methods: {
            save: function(){
                this.$apollo.mutate({
                    mutation: updateSong,
                    variables: this.songData,
                }).then((result) => {
                    console.log(result);
                }).catch((error) => {
                    console.log(error);
                })
            }
        },
input SongPart{
    id: Int!
    lyrics: String
}

共有1个答案

充星腾
2023-03-14

您的输入类型仍然应该在服务器上的架构中定义。我对laravel还不是很熟悉,但是查看laravel-graphql的文档,在定义输入时看起来就像定义常规类型一样,只需将$inputobject属性设置为true即可。请参见这里的示例。我想您会将它们与常规类型一起添加到config/graphql.php中的类型中。

我还建议将输入重命名为SongPartInput,这样如果您也有SongPart类型,就不会感到困惑。

 类似资料:
  • 问题内容: 对于IE,我需要使用jsonp-polling,对于Firefox,则需要使用xhr-polling,因此我尝试在客户端定义传输类型,如下所示: 我在Firefox上进行了测试,并在socket.io-client lib上添加了日志记录。在 https://github.com/LearnBoost/socket.io- client/blob/master/dist/socket.

  • 如何转换react查询以适应自定义类型?? 注意:我在前端使用的是JavaScipt,而不是Typescript

  • 我正在学习Apollo和graphQL,并将其集成到我的一个项目中。到目前为止一切正常,但现在我正在尝试一些突变,我正在努力处理输入类型和查询类型。我觉得事情比实际情况要复杂得多,因此我正在寻求如何处理我的情况的建议。我在网上找到的示例都是非常基本的模式,但现实总是更加复杂,因为我的模式非常大,如下所示(我只复制一部分): 然后定义输入和负载,依此类推... 为此,我需要一个变异来保存“计算”,因

  • 我有一个例子,其中我有一个,它在graphql中定义了不同的实现。我可能无法共享确切的代码。但情况似乎是这样的: 有一个查询返回或类型作为响应。 响应可能包含以下内容: 或 我在客户端使用Apollo Client 3来查询数据,并有如下片段: 我查询的数据为: 由于这是的情况,正如Apollo client 3文档中所定义的,我们需要使用,以便在这种情况下匹配片段。出于缓存目的,我在Memory

  • 我已经用graphql-go实现了一个graphql服务器,我在前端使用Apollo。不带参数的简单查询和使用输入对象类型的突变可以很好地工作,但出于某种原因,在查询中传递标量类型参数将返回错误: 我的使用再简单不过了;在客户端,我的查询是: 它在后端解析为此字段: 我尝试过传递输入对象、字符串等,但似乎没有查询参数、标量或其他参数在后端得到满足。我已经尝试了GraphQL-Go的master和V

  • Boilerplate Vue + Vuex + Vuetify + Apollo Client + GraphQL + Express + MongoDB + HTTP/2 Just a simple way of starting your projects with these marvelous technologies! Installing Download or clone the