如何在字符串块中传递变量?

问题描述 投票:0回答:1

在下面的示例代码中,我尝试使用 graphql 查询,并且必须传递从查询中的命令行参数获取的字符串值:

package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "io/ioutil"
    "net/http"
    "time"
    "os"
)

func main() {
    input := os.Args[1]
    jsonData := map[string]string{
        "query": `
           mutation manager($input: managerinput!) {
              manager(input: $input) {
                 name {
                  
                  }
               error {
                 ...SystemError
                }
               }
            }

        `,
    }
    jsonValue, _ := json.Marshal(jsonData)
    request, err := http.NewRequest("POST", "https://<GRAPHQL_API_HERE>", bytes.NewBuffer(jsonValue))
    client := &http.Client{Timeout: time.Second * 10}
    response, err := client.Do(request)
    defer response.Body.Close()
    if err != nil {
        fmt.Printf("The HTTP request failed with error %s\n", err)
    }
    data, _ := ioutil.ReadAll(response.Body)
    fmt.Println(string(data))
}

如何在查询块中传递input的值? $input 不起作用,但我是新来的,我无法找到一种方法来传递多行字符串块“查询”内的变量值,该块以 `.

开头和结尾
string go graphql formatting
1个回答
0
投票

您可以像使用 fmt.printf 一样使用 fmt.Sprintf (我相信您仍然可以定义一个以 ` 开头/结尾的多行字符串)。

© www.soinside.com 2019 - 2024. All rights reserved.