php小編百草為您介紹如何解析 GraphQL 查詢以取得 Go 中的操作名稱。 GraphQL是一種查詢語言,用於取得和修改資料。在Go語言中,我們可以使用一些函式庫來解析GraphQL查詢,並提取出操作名稱。具體的步驟是,先解析GraphQL查詢字串,然後取得根節點,接著遍歷根節點的子節點,判斷節點類型是否為操作類型,如果是,則取得操作名稱。透過這種方式,我們可以輕鬆地從GraphQL查詢中提取Go中的操作名稱,以便進行後續的處理和操作。
我正在使用這個go函式庫來解析graphql查詢字串:github.com/graphql-go/graphql/language/parser
。
我有以下程式碼:
query := "subscription event {event(on: "xxxx") {msg __typename }}" p, err := parser.Parse(parser.ParseParams{Source: query})
傳回的p
是*ast.document
的實例。 p
有一個 definitions
字段,它是一個 ast.node[] 數組。
但我不知道如何從查詢中取得操作名稱。在本例中,它應該是 subscription
。
因為 p.definitions 是 node 的一部分,而 node 是由 ast.operationdefinition 實作的介面。
因此,為了提取operationdefinition節點的數據,您需要執行斷言。
for _, d := range p.Definitions { if oper, ok := d.(*ast.OperationDefinition); ok { fmt.Println(oper.Operation) } }
以上是如何解析 graphql 查詢以取得 go 中的操作名稱?的詳細內容。更多資訊請關注PHP中文網其他相關文章!