【ジーアールピーシーカール】

grpcurl とは?

公開:
💡 gRPCの世界にcurlの手軽さを持ち込むツール
📌 このページのポイント
grpcurl — gRPC のコマンドラインクライアント grpcurl CLIクライアント gRPC Request Protocol Buffers gRPC Server リフレクション対応 or .proto指定 JSON Response 主な使い方 サービス一覧 grpcurl localhost:50051 list メソッド詳細 grpcurl localhost:50051 describe Svc リクエスト grpcurl -d '{"id":1}' host:50051 Svc/Get .proto 定義 スキーマから 型を自動認識 curl のように gRPC サービスをコマンドラインでテスト
grpcurl のリクエストフローのイメージ
ひよこ ひよこ
gRPCAPIをテストしたいけど、curlだとバイナリプロトコルだから使えないんだよね…
ペンギン先生 ペンギン先生
grpcurlを使えばcurlみたいな手軽さでgRPCサーバーにリクエストを送れるよ。JSONでリクエストを書いて、レスポンスもJSONで返ってくるんだ
ひよこ ひよこ
.protoファイルが必要なの?
ペンギン先生 ペンギン先生
サーバーがリフレクションを有効にしてれば.protoファイルなしでもOKだよ。`grpcurl localhost:50051 list`でサービス一覧、`describe`でメソッドの詳細が見えるんだ
ひよこ ひよこ
実際のリクエストはどう書くの?
ペンギン先生 ペンギン先生
`grpcurl -d '{"name": "world"}' localhost:50051 greeter.Greeter/SayHello`みたいに書くよ。-dオプションでJSONのリクエストボディを指定するんだ
ひよこ ひよこ
ストリーミングRPCもテストできる?
ペンギン先生 ペンギン先生
サーバーストリーミングもクライアントストリーミングも対応してるよ。双方向ストリーミングのテストもできるから、gRPCの全機能をコマンドラインから試せるんだ
ひよこ ひよこ
CIでの自動テストにも使える?
ペンギン先生 ペンギン先生
もちろん。gRPCサーバーヘルスチェックや簡易的なE2Eテストシェルスクリプトで書けるよ。jqと組み合わせてレスポンスの検証もできるから、CI/CDパイプラインにも組み込みやすいんだ
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「grpcurl」って出てきたら「gRPC版のcurl、コマンドラインgRPCを叩けるツール」と思えればだいたいOK!
📖 おまけ:英語の意味
「gRPC + curl」 = gRPC版のcurl
💬 curlがHTTPリクエストを送るツールなら、grpcurlはgRPCリクエストを送るツール。名前もそのままだよ
← 用語集にもどる