.protoファイル
gRPCサービスの.protoファイルをワークスペースで管理し、ライブのアウトラインで編集し、そのメソッドからリクエストを作成します。
.protoファイルは、gRPCサービスを記述します。サービスのメソッドと、それらが受け取って返すメッセージです。
ワークスペースに置いておけば、gRPCリクエストはサーバに問い合わせずに、メッセージの作成と読み取りにそれを使います。
仕様ページでは、.protoファイルがOpenAPIドキュメントと並んで表示され、専用のエディタとアウトラインを使えます。
Alpenglowの例には、alpenglow.inventory.v1.Inventoryサービスを持つinventory.protoが1つあります。

ファイルを追加する
仕様のサイドバーで、仕様ヘッダーの+をクリックします。
- 新規Protoファイルは、小さなサンプルサービス
Greeterを持つspecs/service.protoを作成します。これを自分のものに置き換えてください。 - Protoファイルを追加…は、Macから
.protoファイルをspecsフォルダにコピーします。ほかのファイルをインポートしている場合は、それらもspecsにコピーしてください。Googleのwell-known types(google/protobuf/timestamp.protoなど)は組み込まれています。
ファイルは、サイドバーのProtoファイルに一覧表示されます。右クリックすると、Finderに表示と削除…を選べます。 削除する前に確認が表示され、ファイルはゴミ箱に入ります。そのファイルを使っていたgRPCリクエストには、別のファイルかサーバのリフレクションが必要になります。
編集
ファイルをクリックして開きます。左にソースがシンタックスハイライト付きで表示されます。上のバーには、ファイル、Protocol Buffers、そして問題なし、またはパーサが見つけた最初の問題(inventory.proto:12: expected “;”など)が表示されます。
右のアウトラインには、ファイルが宣言している内容が表示され、入力に合わせて更新されます。
- 各サービスとそのメソッド。各メソッドに、種類(
unary、server streamingなど)と、入力および出力のメッセージが表示されます。 - メッセージとそのフィールドおよび型。
- 列挙型。
解析できないファイルでは、ファイルを解析できるとアウトラインが表示されます。と表示されます。
Echolotは、変更のたびに少し待ってからファイルを保存し、別のファイルを開いたときやページを離れたときにも保存します。書き込めない場合は、Protoファイルを保存できませんでしたと表示され、再試行、コピーを保存…、変更内容を破棄、編集を続けるを選べます。 仕様の場合と同じです。編集内容は、保存されるまでエディタに保持されます。
仕様ページで同時に開けるファイルは1つで、.protoファイルかOpenAPI仕様のどちらかです。一方を開くと、もう一方は保存されて閉じます。
メソッドからリクエストを作成する
アウトラインでメソッドの横の+をクリックすると、そのメソッドのgRPCリクエストが作成されます。
リクエストはこの.protoファイルを使い、そのサービスとメソッドを呼び出し、すべてのフィールドにサンプル値を入れたメッセージから始まります。URLを自分のサーバに向けて送信します。
gRPCでは、送信、ストリーミングメソッド、ファイルの代わりにサーバのリフレクションからメソッドを取得する方法を説明しています。
コマンドラインから
echolot grpc describe --proto api.protoは、ファイルのサービス、メソッド、フィールドを一覧表示し、echolot grpc callはメソッドを呼び出します。echolot grpcを参照してください。
