curlコマンドを知らなくてもIntelliJ IDEAでAPI、gRPCの動作確認が簡単にできる

これはアソビューAdvent Calendar 2023の9日目です。🎄 今年のアドベントカレンダーは2面公開なので、ぜひそちらも御覧ください!

こんにちは、バックエンドエンジニアの近藤です。

今回、IntelliJ IDEAのHTTPクライアントを用いて、API、gRPCの動作確認が簡単にできることを紹介します。 また、このブログに記載された手順を用いれば、同様のリクエストを実現するためのcurlコマンドも取得できますので、必要に応じて適宜ご活用ください。 APIやgRPCを動作確認する環境構築については割愛させていただきます。 ブログでは、Java(Spring Boot)を用いてコードを書いています。

アソビューでは、IntelliJ IDEA Ultimateを使用しており、ブログを書いた時点ではHTTPクライアントはUltimateでのみ利用できる機能となっております。 pleiades.io

~ 目次 ~

HTTPクライアント

API動作確認

例えば、以下のRestControllerを用意します。

@RestController
public class HelloController {

    @GetMapping("/{name}")
    public String hello(@PathVariable("name") String name,
                        @RequestParam("message") String message) {
        return "Hello " + name + " " + message;
    }
}

エンドポイントツールウィンドウを確認します。

エンドポイントツールウィンドウで「/{name}」と入力し、Enterキーを押下することで絞り込みもできます。

動作確認したいControllerを選択し、右クリック「HTTPクライアントでリクエストを生成」をクリックします。

下図のようなフォーマットが表示されます。

今回は、パスパラメータの「name」に「kondo」、リクエストパラメータの「message」に「test」を設定し、左側にある▶️ボタン(HTTPリクエスト実行)をクリックします。

動作結果を確認できます。

作業依頼などでcurlコマンドが必要となった場合は、httpリクエストの文字列をクリックした状態で、「cURL に変換してコピー」ボタンをクリックするとcurlコマンドを取得することができます。

参考:取得したcurlコマンド

curl -X GET --location "http://localhost:8080/kondo?message=test"

gRPC動作確認

例えば、以下のgRPCサービスを用意します。

@GRpcService
public class GreeterService extends GreeterGrpc.GreeterImplBase {

    /**
     * gRPCのサンプルサービス
     *
     * @param request リクエスト
     * @param responseObserver
     */
    @Override
    public void sayHello(GreeterOuterClass.HelloRequest request, StreamObserver<GreeterOuterClass.HelloReply> responseObserver) {
        var replyBuilder = GreeterOuterClass.HelloReply.newBuilder().setMessage("Hello " + request.getName());
        responseObserver.onNext(replyBuilder.build());
        responseObserver.onCompleted();
    }
}

エンドポイントツールウィンドウからgreeter.protoのSayHelloをダブルクリックします。

対象ファイルが開かれるため、左側にある「HTTPクライアントでリクエストを生成」をクリックします。

下図のようなフォーマットが表示されます。

今回は、リクエスト先を「localhost:6565」に修正し、リクエストパラメータを「"name": "kondo"」と記載します。 3行目に空行があるのですが、この空行がないとリクエストパラメータが渡されません。 左側にある▶️ボタン(HTTPリクエスト実行)をクリックするとリクエストします。

動作結果を確認できます。

作業依頼などでcurlコマンドが必要となった場合は、httpリクエストの文字列をクリックした状態で、「cURL に変換してコピー」ボタンをクリックするとcurlコマンドを取得することができます。

参考:取得したcurlコマンド

curl -X GRPC "localhost:6565/Greeter/SayHello" \
    -d "{
  \"name\": \"kondo\"
}"

まとめ

若手の方はcurlコマンドを難しく感じることがあると思いますが、IntelliJ IDEAを活用することで簡単にAPI、gRPCの動作確認ができ、curlコマンドを取得することもできます。

私も若手の頃は、curlコマンドって何?どうやって書けばいいの?と思っていた時期もありました。この便利機能を知っていれば、作業の効率化ができたなぁ。と思いましたので紹介しました!

今回の記事が、若手のエンジニアや、curlコマンドに悩んでいた方の参考になると幸いです。

その他にもIntelliJ IDEAには、様々な便利機能があります。 以前ご紹介させていただいた記事も参考になると思います。 こちらのでもHTTPクライアントについて記載されていますが、今回は実践編として記載しております。 tech.asoview.co.jp

最後に

アソビューでは「生きるに、遊びを。」をミッションに、一緒に働くメンバーを募集しています! ご興味がありましたら、まずはカジュアル面談からご応募いただければと思います!

www.asoview.com

アソビュー!の技術情報を発信する公式アカウントもありますのでぜひフォローお願いします! https://twitter.com/Asoview_dev