在下面的示例代码中,我尝试使用 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 不起作用,但我是新来的,我无法找到一种方法来传递多行字符串块“查询”内的变量值,该块以 `.
开头和结尾您可以像使用 fmt.printf 一样使用 fmt.Sprintf (我相信您仍然可以定义一个以 ` 开头/结尾的多行字符串)。