sách gpt4 ăn đã đi

http - Golang,如何使用结构通过 HTTP 编写 JSON 响应?

In lại 作者:数据小太阳 更新时间:2023-10-29 03:23:55 28 4
mua khóa gpt4 giày nike

目标:

使用 github.com/neelance/graphql-go starwars 示例,我正在尝试向我的 ReactJS 客户端编写 JSON 响应。结构的东西对我来说是全新的,顺便说一句,Golang 也是如此。

câu hỏi:

为了获得对以下示例 GraphQL 查询的适当响应,dữ liệu 变量应该是什么?

query clientQuery {
character(id: 1000) {
tên
appearsIn
}
}

附加信息:

根据我在这里和那里阅读的内容,dữ liệu 一定是某种结构。我在示例中有很多可用的结构(请参阅下面的 starwars.go)。

需要修改的代码(main.go):

gói chính

nhập khẩu (
"encoding/json"
"log"
"mạng/http"

"github.com/neelance/graphql-go"
"github.com/neelance/graphql-go/example/starwars"
"github.com/neelance/graphql-go/relay"
)

var schema *graphql.Schema

hàm init() {
schema = graphql.MustParseSchema(starwars.Schema, &starwars.Resolver{})
}

hàm main() {

port := ":8080"
log.Printf(`GraphQL server starting up on http://localhost%v`, port)

http.Handle("/query", &relay.Handler{Schema: schema})

http.HandleFunc("/graphql", func(w http.ResponseWriter, r *http.Request) {

// THIS IS SUPER WRONG, data should be something
// like data := starwars.Resolver{} or so?
data := `{"data":{"character":{"name":"Luke Skywalker","appearsIn":["NEWHOPE","EMPIRE","JEDI"]}}}`

w.Header().Set("Content-Type", "application/json")
w.WriteHeader(http.StatusCreated)
json.NewEncoder(w).Encode(data)
})

log.Fatal(http.ListenAndServe(port, nil))
}

引用文献 1 - starwars.go

引用文献 2 - relay.go

câu trả lời hay nhất

你的问题有点困惑。 您询问的是 JSON,但您想要的响应不是有效的 JSON 格式: 您似乎添加了不相关的 GraphQL 信息。

我不确定这是关于 GraphQL 还是 JSON 的问题。无论如何,我会尽力回答。

您的示例 dữ liệu 如下所示,因此我假设这是您要生成的结果:

data := `{"data":{"character":{"name":"Luke Skywalker","appearsIn":["NEWHOPE","EMPIRE","JEDI"]}}}`

让 Go 生成正确的 JSON 的一种简洁方法是创建包含数据的结构:

type Response struct {
Data Data `json:"data"`
}

type Data struct {
Character Character `json:"characer"`
}

type Character struct {
Name string `json:"name"`
AppearsIn []string `json:"appearsIn"`
}

然后你可以这样定义数据:

    data := Response{
Data: Data{
Character: Character{
Name: "Luke Skywalker",
AppearsIn: []string{"NEWHOPE", "EMPIRE", "JEDI"},
},
},
}

也许这个问题不是关于 JSON 而不是 GraphQL。在这种情况下,您需要澄清您的问题。

引用资料

关于http - Golang,如何使用结构通过 HTTP 编写 JSON 响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47485360/

28 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress