🗒️

gRPCクライアントツールEvansを利用して公開サーバーにリクエストを送る

2024/12/21に公開

たまに使うと毎回忘れているため、備忘用メモ

gRPCのクライアントツールにはいくつか種類がありますが、Evansがターミナルから実行できお気に入りです。

詳細は以下の記事を参考にしてください。

gRPC と gRPC クライアントツール Evans | メルカリエンジニアリング

Web上のEvansの実行サンプルでは、ローカルで起動したgRPCサーバーに対するリクエスト例は多くあるのですが、公開サーバーに対するリクエスト例は少ないです。

一般公開されているgRPCサーバーに対してリクエストを送信する機会があり、実行コマンドを備忘のためにメモしておきます。

ポイント

以下二つをオプションで指定すること

  • port
  • tls

コマンド

※evansのinstall手順は割愛します

gRPCサーバが提供しているservice一覧取得

# list services
$ evans -r cli list --host sample-api.example.com --port 443 --tls
com.example.sample.protobuf.test.TestService
grpc.health.v1.Health
grpc.reflection.v1alpha.ServerReflection

gRPCサーバーに対してのリクエスト実行

$ echo '{ "username": "test"}' | evans -r cli call --host sample-api.example.com --port 443 --tls com.example.sample.protobuf.test.TestService.GetTest
{
  "message": "test"
}

--verbose optionをつけると、header情報なども出力し、debugに役に立ちます

Discussion