これはアソビュー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
最後に
アソビューでは「生きるに、遊びを。」をミッションに、一緒に働くメンバーを募集しています! ご興味がありましたら、まずはカジュアル面談からご応募いただければと思います!
アソビュー!の技術情報を発信する公式アカウントもありますのでぜひフォローお願いします! https://twitter.com/Asoview_dev