首頁 > 後端開發 > Golang > 主體

如何解析 graphql 查詢以取得 go 中的操作名稱?

PHPz
發布: 2024-02-09 13:57:08
轉載
995 人瀏覽過

如何解析 graphql 查询以获取 go 中的操作名称?

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中文網其他相關文章!

相關標籤:
來源:stackoverflow.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!