REST ClientのInsomniaがGraphQLにも対応していて便利

はじめに

AWS AppSyncを使ってGraphQL APIの開発をしています。動作確認などでAWSコンソールにあるQueries(GraphiQLベース)を使用していたのですが、開発ツールとして使用するには機能不足でした。他のGraphQL ClientもGraphiQLベースで作られているものがほとんどで、欲しい機能がなかったり、AppSyncの認証を通すのが大変だったり、果ては自分でもReact.jsを勉強してGraphiQLベースでClientを作ったりしていたのですが。

最近見つけたInsomniaというREST ClientがGraphQLにも対応していてとても便利だったので紹介したいと思います。

Insomniaについて

Insomnia はOSSで開発されているElectron製のREST Clientです。機能としては、モダンなREST Clientがサポートする機能はだいたい備わっているに加えて、プラグイン機能や、有料でオンラインでのデータ同期やTeamコラボレーションもあります。

GraphQL Clientとしての使い方

以降の説明に登場するGraphQL Schemaは、AppSyncのsample projectにあるEvent Appを使用しています。認証タイプはAPI keyです。

ドキュメント: GraphQL Queries - Insomnia

リクエストを作る

New Requestにて、MethodをPOST、BodyをGraphQLを選択します。

URLを入力することで、Schemaがfetchされて、Control + Spaceでサジェストが表示されるようになります。

認証タイプがAPI Keyの場合は、Headerに x-api-key:APIキー を設定します。なお、以下の例ではAPIキーを apiKey という環境変数として設定しています。

認証タイプがIAMの場合は、AuthタブからAWS IAM v4が選択できます。

認証タイプがAmazon Cognito User PoolやOpenID Connectの場合は未検証なので、検証したら追記したいと思います。

環境変数はRequest Bodyに埋め込むこともできます。

おわりに

簡単ですがInsomniaを使ったGraphQLのリクエスト方法を紹介しました。モダンなREST Clientの機能を使えるところがとても便利ですね。テスト機能はないのですが、作成したリクエストをCurlでエクスポートして、結果を検証するスクリプトを書けば自動テストにすることもできそうです。