VimでGraphQL
初めに
最近denops-gh.vimという、VimでGitHubのissueを作ったり、編集したりというプラグインを作っています。
このプラグインはGitHubのGraphQLのAPIを使っていて、開発する際は実際にクエリを書いてGraphQLのAPIをたたいています。
これまでGraphiQLというアプリケーションを使っていたんですが、
Vimとアプリケーションを行き来するのは面倒だったので、Vimから直接GraphQLのAPIをたたけるプラグインdenops-graphql.vimを作りました。
本記事はこのプラグインの紹介をしていきます。
プラグインについて
クエリを実行すると次のように、レスポンスの結果がバッファに出力されます。
GraphiQLと同様、変数を編集したりできます。
プラグインで提供しているコマンドは次になっています。
-
:GraphQLSetEndpoint
GraphQLのエンドポイントを設定
クエリ実行前にエンドポイントを設定する必要がある -
:GraphQLExecute
現在のバッファをクエリとして実行 -
:GraphQLEdit
変数とレスポンスのバッファを開く
変数を使用したい場合は実行する必要がある -
:GraphQLEditHttpHeader
HTTPヘッダを編集バッファを開く
注意点
本プラグインを使っていく上で、少し注意点があります。
認証
:GraphQLEditHttpHeader
は認証ヘッダなどが必要なエンドポイントの場合、ヘッダの値を設定する必要があります。
設定ファイルは $XDG_CONFIG_HOME/denops_graphql/config.json
に保存されます。
一例ですが、GitHubの場合は次のように設定をします。
[
{
"endpoint": "https://api.github.com/graphql",
"headers": {
"Authorization": "bearer token"
}
}
]
エンドポイントの設定
:GraphQLSetEndpoint
で設定したエンドポイントは現在開いている*.graphql
ファイルと紐付いています。
つまり、他のgraphqlファイルを実行する場合は再度エンドポイントを設定する必要があります。
これはPOST先の誤爆を防ぐために、あえてこの仕様にしていますが、使っているうちに面倒くさいと感じたら仕様を変えるかもしれません。
さいごに
このプラグインでいくぶんGraphQLの実行が楽になりました。
すべてVimで完結するのはやはりよいことですね。
みなさんも興味あったらぜひ使ってみてください。
Discussion