ホームページ  >  記事  >  バックエンド開発  >  goで操作名を取得するためにgraphqlクエリを解析するにはどうすればよいですか?

goで操作名を取得するためにgraphqlクエリを解析するにはどうすればよいですか?

PHPz
PHPz転載
2024-02-09 13:57:081000ブラウズ

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

php エディタ Baicao では、GraphQL クエリを解析して Go でオペレーション名を取得する方法を紹介します。 GraphQL は、データの取得と変更に使用されるクエリ言語です。 Go 言語では、いくつかのライブラリを使用して GraphQL クエリを解析し、オペレーション名を抽出できます。具体的な手順としては、まず GraphQL クエリ文字列を解析し、次にルート ノードを取得し、次にルート ノードの子ノードを走査してノード タイプがオペレーション タイプであるかどうかを判断し、そうであればオペレーション名を取得します。このようにして、後続の処理と操作のために、Go で GraphQL クエリから操作名を簡単に抽出できます。

質問の内容

私はこの go ライブラリを使用して、graphql クエリ文字列を解析しています: github.com/graphql-go/graphql/ language/parser

次のコードがあります:

リーリー

返された p*ast.document のインスタンスです。 p definitions フィールドがあり、これは ast.node[] 配列です。

しかし、クエリから操作名を取得する方法がわかりません。この場合、subscription になります。

解決策

p.settings はノードの一部であり、ノードは ast.operationdefinition によって実装されるインターフェイスであるためです。

したがって、操作定義ノードのデータを抽出するには、アサーションを実行する必要があります。

リーリー

以上がgoで操作名を取得するためにgraphqlクエリを解析するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。