登录
首页 >  Golang >  Go问答

HTTP 请求:带有 graphQL 的 golang?

来源:stackoverflow

时间:2024-02-27 19:57:25 196浏览 收藏

在Golang实战开发的过程中,我们经常会遇到一些这样那样的问题,然后要卡好半天,等问题解决了才发现原来一些细节知识点还是没有掌握好。今天golang学习网就整理分享《HTTP 请求:带有 graphQL 的 golang?》,聊聊,希望可以帮助到正在努力赚钱的你。

问题内容

我们正在使用斜杠 graphql,我可以编写基本查询,例如:

query{
    queryuser{
      user{
         username}
      }
}

jsondata := `{
        query: 
            { 
                queryuser {
                    username
                }
            }
    }`

request, err := http.newrequest("post", "https://", []byte(jsondata))

但我不知道如何编写这种查询。

mutation addAuthor($author: [AddAuthorInput!]!) {
  addAuthor(input: $author) {
    author {
      id
      name
    }
  }
}

有任何帮助吗?


正确答案


您可以使用此包github.com/machinebox/graphql。只需以字符串形式提供您的查询即可。

// create a client (safe to share across requests)
client := graphql.newclient("https://")

// make a request
req := graphql.newrequest(`
    query ($key: string!) {
        items (id:$key) {
            field1
            field2
            field3
        }
    }
`)

// set any variables
req.var("key", "value")

// run it and capture the response
var respdata responsestruct
if err := client.run(ctx, req, &respdata); err != nil {
    log.fatal(err)
}

[注意]代码借自文档。

对于您的案例请求,必须是

req := graphql.NewRequest(fmt.Sprintf(`
mutation addAuthor($author: [%s!]!) {
  addAuthor(input: $author) {
    author {
      id
      name
     }
    }
   }
 `,stringAuthorInput))

本篇关于《HTTP 请求:带有 graphQL 的 golang?》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>