亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我的一些go-graphql查詢的字段返回null,而其他字段恢復正常,其他類似的查詢一起工作

我的一些go-graphql查詢的字段返回null,而其他字段恢復正常,其他類似的查詢一起工作

Go
aluckdog 2022-08-01 10:58:50
我一直在嘗試go-grapqhql,并且我已經能夠成功地創建一些架構,如下所示:type Artist struct {    ID   string `json:"id,omitempty"`    Name string `json:"name"`    Type string `json:"type"`    Instrument []Instrument `json:"instrument"`}type Instrument struct{    Name string `json:"name"`}var artists = []Artist{    {        ID:   "1",        Name: "Taylor Swift",        Type: "artist",        Instrument: []Instrument{            {Name:"violin"},        },    },}var instrumentType = graphql.NewObject(graphql.ObjectConfig{    Name: "Instrument",    Fields: graphql.Fields{        "name": &graphql.Field{            Type: graphql.String,        },    },})var artistType = graphql.NewObject(graphql.ObjectConfig{    Name: "Artist",    Fields: graphql.Fields{        "id": &graphql.Field{            Type: graphql.String,        },        "name": &graphql.Field{            Type: graphql.String,        },        "type": &graphql.Field{            Type: graphql.String,        },        "instrument": &graphql.Field{            Type: graphql.NewList(instrumentType),        },    },})但是,當我嘗試用類似的結構做同樣的事情時......type Blk struct {    Header Header `json:"header,omitempty"`    Payload []Payload `json:"payload,omitempty"`}type Header struct {    Parent string `json:"parent,omitempty"`    Number int `json:"number,omitempty"`    Nonce int `json:"nonce,omitempty"`    Time int `json:"time,omitempty"`    Miner string `json:"miner,omitempty"`}type Payloads []Payloadstype Payload struct {    From string `json:"from,omitempty"`    To string `json:"to,omitempty"`    Value int `json:"value,omitempty"`    Nonce int `json:"nonce,omitempty"`    Data string `json:"data,omitempty"`    Time int `json:"time,omitempty"`    Signature string `json:"signature,omitempty"`}var blk = []Blk{    {Header: Header{        Parent: "0000000000000000000000000000000000000000000000000000000000000000",        Number: 0,        Nonce:  1548399560,        Time:   1609374088,        Miner:  "0x699ecb24665b9734c420db0f75ed9677a8615eb1",
查看完整描述

1 回答

?
米琪卡哇伊

TA貢獻1998條經驗 獲得超6個贊

所以,我把 graphql 模式改成了:


var blockType = graphql.NewObject(

    graphql.ObjectConfig{

        Name: "block",

        Fields: graphql.Fields{

            "header" :&graphql.Field{

                Type: headerType,

            },

            "payload": &graphql.Field{

                Type: graphql.NewList(payloadType),

            },

        },

    })


var payloadType = graphql.NewObject(

    graphql.ObjectConfig{

        Name: "payload",

        Fields: graphql.Fields{

            "from": &graphql.Field{

                Type: graphql.String,

            },

            "to": &graphql.Field{

                Type: graphql.String,

            },

            "value": &graphql.Field{

                Type: graphql.Int,

            },

            "nonce": &graphql.Field{

                Type: graphql.Int,

            },

            "data": &graphql.Field{

                Type: graphql.String,

            },

            "time": &graphql.Field{

                Type: graphql.Int,

            },

            "signature": &graphql.Field{

                Type: graphql.String,

            },

        },

    })


var headerType = graphql.NewObject(

    graphql.ObjectConfig{

        Name: "header",

        Fields: graphql.Fields{

            "parent": &graphql.Field{

                Type: graphql.String,

            },

            "number": &graphql.Field{

                Type: graphql.Int,

            },

            "nonce": &graphql.Field{

                Type: graphql.Int,

            },

            "time": &graphql.Field{

                Type: graphql.Int,

            },

            "miner": &graphql.Field{

                Type: graphql.String,

            },

        },

    },

)

現在,一切都按預期工作??磥磉@句話是罪魁禍首:


     "payload": &graphql.Field{

                Type: graphql.NewList(transactionType),

            },

出于某種原因,如果你嘗試做這種類型的嵌套go-graphql(或者graphql不知道該怎么做)。FWI:現在我的查詢看起來像這樣:


query{

    blocks{header{parent,number,nonce,time,miner},payload{from,to,value,nonce,data,time,signature}}

}

并且它們會產生所需的結果。


查看完整回答
反對 回復 2022-08-01
  • 1 回答
  • 0 關注
  • 121 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號